#include "CommandObjectTarget.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/IOHandler.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Section.h"
#include "lldb/Core/ValueObjectVariable.h"
#include "lldb/DataFormatters/ValueObjectPrinter.h"
#include "lldb/Host/OptionParser.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandOptionArgumentTable.h"
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Interpreter/OptionArgParser.h"
#include "lldb/Interpreter/OptionGroupArchitecture.h"
#include "lldb/Interpreter/OptionGroupBoolean.h"
#include "lldb/Interpreter/OptionGroupFile.h"
#include "lldb/Interpreter/OptionGroupFormat.h"
#include "lldb/Interpreter/OptionGroupPlatform.h"
#include "lldb/Interpreter/OptionGroupPythonClassWithDict.h"
#include "lldb/Interpreter/OptionGroupString.h"
#include "lldb/Interpreter/OptionGroupUInt64.h"
#include "lldb/Interpreter/OptionGroupUUID.h"
#include "lldb/Interpreter/OptionGroupValueObjectDisplay.h"
#include "lldb/Interpreter/OptionGroupVariable.h"
#include "lldb/Interpreter/Options.h"
#include "lldb/Symbol/CompileUnit.h"
#include "lldb/Symbol/FuncUnwinders.h"
#include "lldb/Symbol/LineTable.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolFile.h"
#include "lldb/Symbol/UnwindPlan.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/ABI.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/SectionLoadList.h"
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/ThreadSpec.h"
#include "lldb/Utility/Args.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/FileSpec.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/State.h"
#include "lldb/Utility/Stream.h"
#include "lldb/Utility/StructuredData.h"
#include "lldb/Utility/Timer.h"
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-private-enumerations.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/FrontendActions.h"
#include "clang/Serialization/ObjectFilePCHContainerReader.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FormatAdapters.h"
usingnamespacelldb;
usingnamespacelldb_private;
static void DumpTargetInfo(uint32_t target_idx, Target *target,
const char *prefix_cstr,
bool show_stopped_process_status, Stream &strm) { … }
static uint32_t DumpTargetList(TargetList &target_list,
bool show_stopped_process_status, Stream &strm) { … }
#define LLDB_OPTIONS_target_dependents
#include "CommandOptions.inc"
class OptionGroupDependents : public OptionGroup { … };
#pragma mark CommandObjectTargetCreate
class CommandObjectTargetCreate : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetList
class CommandObjectTargetList : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetSelect
class CommandObjectTargetSelect : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetDelete
class CommandObjectTargetDelete : public CommandObjectParsed { … };
class CommandObjectTargetShowLaunchEnvironment : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetVariable
class CommandObjectTargetVariable : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesSearchPathsAdd
class CommandObjectTargetModulesSearchPathsAdd : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesSearchPathsClear
class CommandObjectTargetModulesSearchPathsClear : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesSearchPathsInsert
class CommandObjectTargetModulesSearchPathsInsert : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesSearchPathsList
class CommandObjectTargetModulesSearchPathsList : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesSearchPathsQuery
class CommandObjectTargetModulesSearchPathsQuery : public CommandObjectParsed { … };
static void DumpModuleArchitecture(Stream &strm, Module *module,
bool full_triple, uint32_t width) { … }
static void DumpModuleUUID(Stream &strm, Module *module) { … }
static uint32_t DumpCompileUnitLineTable(CommandInterpreter &interpreter,
Stream &strm, Module *module,
const FileSpec &file_spec,
lldb::DescriptionLevel desc_level) { … }
static void DumpFullpath(Stream &strm, const FileSpec *file_spec_ptr,
uint32_t width) { … }
static void DumpDirectory(Stream &strm, const FileSpec *file_spec_ptr,
uint32_t width) { … }
static void DumpBasename(Stream &strm, const FileSpec *file_spec_ptr,
uint32_t width) { … }
static size_t DumpModuleObjfileHeaders(Stream &strm, ModuleList &module_list) { … }
static void DumpModuleSymtab(CommandInterpreter &interpreter, Stream &strm,
Module *module, SortOrder sort_order,
Mangled::NamePreference name_preference) { … }
static void DumpModuleSections(CommandInterpreter &interpreter, Stream &strm,
Module *module) { … }
static bool DumpModuleSymbolFile(Stream &strm, Module *module) { … }
static bool GetSeparateDebugInfoList(StructuredData::Array &list,
Module *module, bool errors_only) { … }
static void DumpDwoFilesTable(Stream &strm,
StructuredData::Array &dwo_listings) { … }
static void DumpOsoFilesTable(Stream &strm,
StructuredData::Array &oso_listings) { … }
static void
DumpAddress(ExecutionContextScope *exe_scope, const Address &so_addr,
bool verbose, bool all_ranges, Stream &strm,
std::optional<Stream::HighlightSettings> settings = std::nullopt) { … }
static bool LookupAddressInModule(CommandInterpreter &interpreter, Stream &strm,
Module *module, uint32_t resolve_mask,
lldb::addr_t raw_addr, lldb::addr_t offset,
bool verbose, bool all_ranges) { … }
static uint32_t LookupSymbolInModule(CommandInterpreter &interpreter,
Stream &strm, Module *module,
const char *name, bool name_is_regex,
bool verbose, bool all_ranges) { … }
static void DumpSymbolContextList(
ExecutionContextScope *exe_scope, Stream &strm,
const SymbolContextList &sc_list, bool verbose, bool all_ranges,
std::optional<Stream::HighlightSettings> settings = std::nullopt) { … }
static size_t LookupFunctionInModule(CommandInterpreter &interpreter,
Stream &strm, Module *module,
const char *name, bool name_is_regex,
const ModuleFunctionSearchOptions &options,
bool verbose, bool all_ranges) { … }
static size_t LookupTypeInModule(Target *target,
CommandInterpreter &interpreter, Stream &strm,
Module *module, const char *name_cstr,
bool name_is_regex) { … }
static size_t LookupTypeHere(Target *target, CommandInterpreter &interpreter,
Stream &strm, Module &module,
const char *name_cstr, bool name_is_regex) { … }
static uint32_t LookupFileAndLineInModule(CommandInterpreter &interpreter,
Stream &strm, Module *module,
const FileSpec &file_spec,
uint32_t line, bool check_inlines,
bool verbose, bool all_ranges) { … }
static size_t FindModulesByName(Target *target, const char *module_name,
ModuleList &module_list,
bool check_global_list) { … }
#pragma mark CommandObjectTargetModulesModuleAutoComplete
class CommandObjectTargetModulesModuleAutoComplete
: public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesSourceFileAutoComplete
class CommandObjectTargetModulesSourceFileAutoComplete
: public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesDumpObjfile
class CommandObjectTargetModulesDumpObjfile
: public CommandObjectTargetModulesModuleAutoComplete { … };
#define LLDB_OPTIONS_target_modules_dump_symtab
#include "CommandOptions.inc"
class CommandObjectTargetModulesDumpSymtab
: public CommandObjectTargetModulesModuleAutoComplete { … };
#pragma mark CommandObjectTargetModulesDumpSections
class CommandObjectTargetModulesDumpSections
: public CommandObjectTargetModulesModuleAutoComplete { … };
class CommandObjectTargetModulesDumpClangPCMInfo : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesDumpClangAST
class CommandObjectTargetModulesDumpClangAST
: public CommandObjectTargetModulesModuleAutoComplete { … };
#pragma mark CommandObjectTargetModulesDumpSymfile
class CommandObjectTargetModulesDumpSymfile
: public CommandObjectTargetModulesModuleAutoComplete { … };
#pragma mark CommandObjectTargetModulesDumpLineTable
#define LLDB_OPTIONS_target_modules_dump
#include "CommandOptions.inc"
class CommandObjectTargetModulesDumpLineTable
: public CommandObjectTargetModulesSourceFileAutoComplete { … };
#pragma mark CommandObjectTargetModulesDumpSeparateDebugInfoFiles
#define LLDB_OPTIONS_target_modules_dump_separate_debug_info
#include "CommandOptions.inc"
class CommandObjectTargetModulesDumpSeparateDebugInfoFiles
: public CommandObjectTargetModulesModuleAutoComplete { … };
#pragma mark CommandObjectTargetModulesDump
class CommandObjectTargetModulesDump : public CommandObjectMultiword { … };
class CommandObjectTargetModulesAdd : public CommandObjectParsed { … };
class CommandObjectTargetModulesLoad
: public CommandObjectTargetModulesModuleAutoComplete { … };
#pragma mark CommandObjectTargetModulesList
#define LLDB_OPTIONS_target_modules_list
#include "CommandOptions.inc"
class CommandObjectTargetModulesList : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetModulesShowUnwind
#define LLDB_OPTIONS_target_modules_show_unwind
#include "CommandOptions.inc"
class CommandObjectTargetModulesShowUnwind : public CommandObjectParsed { … };
#define LLDB_OPTIONS_target_modules_lookup
#include "CommandOptions.inc"
class CommandObjectTargetModulesLookup : public CommandObjectParsed { … };
#pragma mark CommandObjectMultiwordImageSearchPaths
class CommandObjectTargetModulesImageSearchPaths
: public CommandObjectMultiword { … };
#pragma mark CommandObjectTargetModules
class CommandObjectTargetModules : public CommandObjectMultiword { … };
class CommandObjectTargetSymbolsAdd : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetSymbols
class CommandObjectTargetSymbols : public CommandObjectMultiword { … };
#pragma mark CommandObjectTargetStopHookAdd
#define LLDB_OPTIONS_target_stop_hook_add
#include "CommandOptions.inc"
class CommandObjectTargetStopHookAdd : public CommandObjectParsed,
public IOHandlerDelegateMultiline { … };
#pragma mark CommandObjectTargetStopHookDelete
class CommandObjectTargetStopHookDelete : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetStopHookEnableDisable
class CommandObjectTargetStopHookEnableDisable : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetStopHookList
class CommandObjectTargetStopHookList : public CommandObjectParsed { … };
#pragma mark CommandObjectMultiwordTargetStopHooks
class CommandObjectMultiwordTargetStopHooks : public CommandObjectMultiword { … };
#pragma mark CommandObjectTargetDumpTypesystem
class CommandObjectTargetDumpTypesystem : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetDumpSectionLoadList
class CommandObjectTargetDumpSectionLoadList : public CommandObjectParsed { … };
#pragma mark CommandObjectTargetDump
class CommandObjectTargetDump : public CommandObjectMultiword { … };
#pragma mark CommandObjectMultiwordTarget
CommandObjectMultiwordTarget::CommandObjectMultiwordTarget(
CommandInterpreter &interpreter)
: … { … }
CommandObjectMultiwordTarget::~CommandObjectMultiwordTarget() = default;