#include "CommandObjectWatchpoint.h"
#include "CommandObjectWatchpointCommand.h"
#include <memory>
#include <vector>
#include "llvm/ADT/StringRef.h"
#include "lldb/Breakpoint/Watchpoint.h"
#include "lldb/Breakpoint/WatchpointList.h"
#include "lldb/Core/ValueObject.h"
#include "lldb/Host/OptionParser.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandOptionArgumentTable.h"
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Symbol/Function.h"
#include "lldb/Symbol/Variable.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/StreamString.h"
usingnamespacelldb;
usingnamespacelldb_private;
static void AddWatchpointDescription(Stream &s, Watchpoint &wp,
lldb::DescriptionLevel level) { … }
static bool CheckTargetForWatchpointOperations(Target &target,
CommandReturnObject &result) { … }
static const char *RSA[4] = …;
static int32_t WithRSAIndex(llvm::StringRef Arg) { … }
bool CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(
Target &target, Args &args, std::vector<uint32_t> &wp_ids) { … }
#pragma mark List::CommandOptions
#define LLDB_OPTIONS_watchpoint_list
#include "CommandOptions.inc"
#pragma mark List
class CommandObjectWatchpointList : public CommandObjectParsed { … };
#pragma mark Enable
class CommandObjectWatchpointEnable : public CommandObjectParsed { … };
#pragma mark Disable
class CommandObjectWatchpointDisable : public CommandObjectParsed { … };
#define LLDB_OPTIONS_watchpoint_delete
#include "CommandOptions.inc"
#pragma mark Delete
class CommandObjectWatchpointDelete : public CommandObjectParsed { … };
#pragma mark Ignore::CommandOptions
#define LLDB_OPTIONS_watchpoint_ignore
#include "CommandOptions.inc"
class CommandObjectWatchpointIgnore : public CommandObjectParsed { … };
#pragma mark Modify::CommandOptions
#define LLDB_OPTIONS_watchpoint_modify
#include "CommandOptions.inc"
#pragma mark Modify
class CommandObjectWatchpointModify : public CommandObjectParsed { … };
#pragma mark SetVariable
class CommandObjectWatchpointSetVariable : public CommandObjectParsed { … };
#pragma mark Set
class CommandObjectWatchpointSetExpression : public CommandObjectRaw { … };
#pragma mark Set
class CommandObjectWatchpointSet : public CommandObjectMultiword { … };
#pragma mark MultiwordWatchpoint
CommandObjectMultiwordWatchpoint::CommandObjectMultiwordWatchpoint(
CommandInterpreter &interpreter)
: … { … }
CommandObjectMultiwordWatchpoint::~CommandObjectMultiwordWatchpoint() = default;