LLDB mainline
|
#include <CommandObjectDisassemble.h>
Classes | |
class | CommandOptions |
Public Member Functions | |
CommandObjectDisassemble (CommandInterpreter &interpreter) | |
~CommandObjectDisassemble () override | |
Options * | GetOptions () override |
Public Member Functions inherited from lldb_private::CommandObjectParsed | |
CommandObjectParsed (CommandInterpreter &interpreter, const char *name, const char *help=nullptr, const char *syntax=nullptr, uint32_t flags=0) | |
~CommandObjectParsed () override=default | |
void | Execute (const char *args_string, CommandReturnObject &result) override |
Public Member Functions inherited from lldb_private::CommandObject | |
CommandObject (CommandInterpreter &interpreter, llvm::StringRef name, llvm::StringRef help="", llvm::StringRef syntax="", uint32_t flags=0) | |
virtual | ~CommandObject ()=default |
CommandInterpreter & | GetCommandInterpreter () |
Debugger & | GetDebugger () |
virtual llvm::StringRef | GetHelp () |
virtual llvm::StringRef | GetHelpLong () |
virtual llvm::StringRef | GetSyntax () |
llvm::StringRef | GetCommandName () const |
virtual void | SetHelp (llvm::StringRef str) |
virtual void | SetHelpLong (llvm::StringRef str) |
void | SetSyntax (llvm::StringRef str) |
virtual bool | IsRemovable () const |
virtual bool | IsMultiwordObject () |
bool | IsUserCommand () |
void | SetIsUserCommand (bool is_user) |
virtual CommandObjectMultiword * | GetAsMultiwordCommand () |
virtual bool | IsAlias () |
virtual bool | IsDashDashCommand () |
virtual lldb::CommandObjectSP | GetSubcommandSP (llvm::StringRef sub_cmd, StringList *matches=nullptr) |
virtual lldb::CommandObjectSP | GetSubcommandSPExact (llvm::StringRef sub_cmd) |
virtual CommandObject * | GetSubcommandObject (llvm::StringRef sub_cmd, StringList *matches=nullptr) |
void | FormatLongHelpText (Stream &output_strm, llvm::StringRef long_help) |
void | GenerateHelpText (CommandReturnObject &result) |
virtual void | GenerateHelpText (Stream &result) |
virtual bool | LoadSubCommand (llvm::StringRef cmd_name, const lldb::CommandObjectSP &command_obj) |
virtual llvm::Error | LoadUserSubcommand (llvm::StringRef cmd_name, const lldb::CommandObjectSP &command_obj, bool can_replace) |
virtual bool | WantsRawCommandString ()=0 |
virtual bool | WantsCompletion () |
virtual Options * | GetOptions () |
void | AddSimpleArgumentList (lldb::CommandArgumentType arg_type, ArgumentRepetitionType repetition_type=eArgRepeatPlain) |
void | AddIDsArgumentData (IDType type) |
int | GetNumArgumentEntries () |
CommandArgumentEntry * | GetArgumentEntryAtIndex (int idx) |
void | GetFormattedCommandArguments (Stream &str, uint32_t opt_set_mask=LLDB_OPT_SET_ALL) |
bool | ParseOptions (Args &args, CommandReturnObject &result) |
void | SetCommandName (llvm::StringRef name) |
virtual void | HandleCompletion (CompletionRequest &request) |
This default version handles calling option argument completions and then calls HandleArgumentCompletion if the cursor is on an argument, not an option. | |
virtual void | HandleArgumentCompletion (CompletionRequest &request, OptionElementVector &opt_element_vector) |
The default version handles argument definitions that have only one argument type, and use one of the argument types that have an entry in the CommonCompletions. | |
bool | HelpTextContainsWord (llvm::StringRef search_word, bool search_short_help=true, bool search_long_help=true, bool search_syntax=true, bool search_options=true) |
Flags & | GetFlags () |
The flags accessor. | |
const Flags & | GetFlags () const |
The flags const accessor. | |
virtual std::optional< std::string > | GetRepeatCommand (Args ¤t_command_args, uint32_t index) |
Get the command that appropriate for a "repeat" of the current command. | |
bool | HasOverrideCallback () const |
void | SetOverrideCallback (lldb::CommandOverrideCallback callback, void *baton) |
void | SetOverrideCallback (lldb_private::CommandOverrideCallbackWithResult callback, void *baton) |
bool | InvokeOverrideCallback (const char **argv, CommandReturnObject &result) |
void | SetOriginalCommandString (std::string s) |
Set the command input as it appeared in the terminal. | |
virtual void | Execute (const char *args_string, CommandReturnObject &result)=0 |
Protected Member Functions | |
void | DoExecute (Args &command, CommandReturnObject &result) override |
llvm::Expected< std::vector< AddressRange > > | GetRangesForSelectedMode (CommandReturnObject &result) |
llvm::Expected< std::vector< AddressRange > > | GetContainingAddressRanges () |
llvm::Expected< std::vector< AddressRange > > | GetCurrentFunctionRanges () |
llvm::Expected< std::vector< AddressRange > > | GetCurrentLineRanges () |
llvm::Expected< std::vector< AddressRange > > | GetNameRanges (CommandReturnObject &result) |
llvm::Expected< std::vector< AddressRange > > | GetPCRanges () |
llvm::Expected< std::vector< AddressRange > > | GetStartEndAddressRanges () |
llvm::Error | CheckRangeSize (const AddressRange &range, llvm::StringRef what) |
Protected Member Functions inherited from lldb_private::CommandObjectParsed | |
virtual void | DoExecute (Args &command, CommandReturnObject &result)=0 |
bool | WantsRawCommandString () override |
Protected Member Functions inherited from lldb_private::CommandObject | |
bool | ParseOptionsAndNotify (Args &args, CommandReturnObject &result, OptionGroupOptions &group_options, ExecutionContext &exe_ctx) |
virtual const char * | GetInvalidTargetDescription () |
virtual const char * | GetInvalidProcessDescription () |
virtual const char * | GetInvalidThreadDescription () |
virtual const char * | GetInvalidFrameDescription () |
virtual const char * | GetInvalidRegContextDescription () |
Target & | GetDummyTarget () |
Target & | GetTarget () |
Thread * | GetDefaultThread () |
bool | CheckRequirements (CommandReturnObject &result) |
Check the command to make sure anything required by this command is available. | |
void | Cleanup () |
Protected Attributes | |
CommandOptions | m_options |
Protected Attributes inherited from lldb_private::CommandObject | |
CommandInterpreter & | m_interpreter |
ExecutionContext | m_exe_ctx |
std::unique_lock< std::recursive_mutex > | m_api_locker |
std::string | m_cmd_name |
std::string | m_cmd_help_short |
std::string | m_cmd_help_long |
std::string | m_cmd_syntax |
std::string | m_original_command |
Flags | m_flags |
std::vector< CommandArgumentEntry > | m_arguments |
lldb::CommandOverrideCallback | m_deprecated_command_override_callback |
lldb_private::CommandOverrideCallbackWithResult | m_command_override_callback |
void * | m_command_override_baton |
bool | m_is_user_command = false |
Definition at line 20 of file CommandObjectDisassemble.h.
CommandObjectDisassemble::CommandObjectDisassemble | ( | CommandInterpreter & | interpreter | ) |
Definition at line 228 of file CommandObjectDisassemble.cpp.
|
overridedefault |
|
protected |
Definition at line 239 of file CommandObjectDisassemble.cpp.
References lldb_private::AddressRange::Dump(), lldb_private::Address::DumpStyleFileAddress, lldb_private::Address::DumpStyleLoadAddress, lldb_private::CommandObjectDisassemble::CommandOptions::force, lldb_private::AddressRange::GetByteSize(), lldb_private::CommandObject::GetDebugger(), lldb_private::StreamString::GetString(), lldb_private::CommandObject::GetTarget(), m_options, and lldb_private::CommandObjectDisassemble::CommandOptions::num_instructions.
Referenced by GetContainingAddressRanges(), GetCurrentFunctionRanges(), and GetNameRanges().
|
overrideprotectedvirtual |
Implements lldb_private::CommandObjectParsed.
Definition at line 456 of file CommandObjectDisassemble.cpp.
References lldb_private::CommandReturnObject::AppendError(), lldb_private::CommandReturnObject::AppendErrorWithFormat(), lldb_private::CommandReturnObject::AppendWarningWithFormat(), lldb_private::CommandObjectDisassemble::CommandOptions::arch, lldb_private::Disassembler::Limit::Bytes, default_disasm_byte_size, lldb_private::Disassembler::Disassemble(), lldb_private::Args::empty(), lldb_private::Disassembler::eOptionMarkPCAddress, lldb_private::Disassembler::eOptionMarkPCSourceLine, lldb_private::Disassembler::eOptionRawOuput, lldb_private::Disassembler::eOptionShowBytes, lldb_private::Disassembler::eOptionShowControlFlowKind, lldb::eReturnStatusSuccessFinishResult, lldb_private::Disassembler::FindPlugin(), lldb_private::Options::GenerateOptionUsage(), lldb_private::Target::GetArchitecture(), lldb_private::ArchSpec::GetArchitectureName(), lldb_private::CommandObject::GetCommandInterpreter(), lldb_private::CommandObjectDisassemble::CommandOptions::GetCPUString(), lldb_private::CommandInterpreter::GetDebugger(), lldb_private::CommandObject::GetDebugger(), lldb_private::CommandReturnObject::GetErrorStream(), lldb_private::CommandObjectDisassemble::CommandOptions::GetFeaturesString(), lldb_private::CommandObjectDisassemble::CommandOptions::GetFlavorString(), GetOptions(), lldb_private::CommandReturnObject::GetOutputStream(), lldb_private::CommandObjectDisassemble::CommandOptions::GetPluginName(), GetRangesForSelectedMode(), lldb_private::CommandObject::GetTarget(), lldb_private::Debugger::GetTerminalWidth(), lldb_private::Disassembler::Limit::Instructions, lldb_private::ArchSpec::IsValid(), LLDB_INVALID_ADDRESS, lldb_private::CommandObject::m_exe_ctx, m_options, lldb_private::CommandObjectDisassemble::CommandOptions::num_instructions, lldb_private::CommandObjectDisassemble::CommandOptions::num_lines_context, lldb_private::CommandObjectDisassemble::CommandOptions::raw, lldb_private::CommandReturnObject::SetStatus(), lldb_private::CommandObjectDisassemble::CommandOptions::show_bytes, lldb_private::CommandObjectDisassemble::CommandOptions::show_control_flow_kind, lldb_private::CommandObjectDisassemble::CommandOptions::show_mixed, lldb_private::CommandObjectDisassemble::CommandOptions::symbol_containing_addr, lldb_private::toString(), and lldb_private::Disassembler::Limit::value.
|
protected |
Definition at line 255 of file CommandObjectDisassemble.cpp.
References CheckRangeSize(), lldb_private::SymbolContext::function, lldb_private::SymbolContext::GetAddressRange(), lldb_private::Target::GetImages(), lldb_private::Target::GetSectionLoadList(), lldb_private::CommandObject::GetTarget(), lldb_private::SectionLoadList::IsEmpty(), m_options, lldb_private::ModuleList::Modules(), lldb_private::SectionLoadList::ResolveLoadAddress(), lldb_private::SymbolContext::symbol, and lldb_private::CommandObjectDisassemble::CommandOptions::symbol_containing_addr.
Referenced by GetRangesForSelectedMode().
|
protected |
Definition at line 301 of file CommandObjectDisassemble.cpp.
References CheckRangeSize(), default_disasm_byte_size, lldb_private::SymbolContext::function, lldb_private::Symbol::GetAddress(), lldb_private::Function::GetAddressRange(), lldb_private::Symbol::GetByteSize(), lldb_private::StackFrame::GetFrameCodeAddress(), lldb_private::ExecutionContext::GetFramePtr(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::StackFrame::GetSymbolContext(), lldb_private::CommandObject::m_exe_ctx, lldb_private::SymbolContext::symbol, and lldb_private::Symbol::ValueIsAddress().
Referenced by GetRangesForSelectedMode().
|
protected |
Definition at line 333 of file CommandObjectDisassemble.cpp.
References lldb_private::ExecutionContext::GetFramePtr(), GetPCRanges(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::StackFrame::GetSymbolContext(), lldb_private::LineEntry::IsValid(), lldb_private::SymbolContext::line_entry, lldb_private::CommandObject::m_exe_ctx, m_options, lldb_private::LineEntry::range, and lldb_private::CommandObjectDisassemble::CommandOptions::show_mixed.
Referenced by GetRangesForSelectedMode().
|
protected |
Definition at line 361 of file CommandObjectDisassemble.cpp.
References lldb_private::CommandReturnObject::AppendWarning(), CheckRangeSize(), lldb_private::ModuleList::FindFunctions(), lldb_private::CommandObjectDisassemble::CommandOptions::func_name, lldb_private::ConstString::GetCString(), lldb_private::Target::GetImages(), lldb_private::CommandObject::GetTarget(), lldb_private::ModuleFunctionSearchOptions::include_inlines, lldb_private::ModuleFunctionSearchOptions::include_symbols, m_options, lldb_private::SymbolContextList::SymbolContexts(), and lldb_private::toString().
Referenced by GetRangesForSelectedMode().
|
inlineoverridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 87 of file CommandObjectDisassemble.h.
References m_options.
Referenced by DoExecute().
|
protected |
Definition at line 402 of file CommandObjectDisassemble.cpp.
References default_disasm_num_ins, lldb_private::StackFrame::GetFrameCodeAddress(), lldb_private::ExecutionContext::GetFramePtr(), lldb_private::ExecutionContext::GetProcessPtr(), lldb_private::CommandObject::m_exe_ctx, m_options, and lldb_private::CommandObjectDisassemble::CommandOptions::num_instructions.
Referenced by GetCurrentLineRanges(), and GetRangesForSelectedMode().
|
protected |
Definition at line 441 of file CommandObjectDisassemble.cpp.
References lldb_private::CommandObjectDisassemble::CommandOptions::current_function, lldb_private::CommandObjectDisassemble::CommandOptions::frame_line, lldb_private::CommandObjectDisassemble::CommandOptions::func_name, GetContainingAddressRanges(), GetCurrentFunctionRanges(), GetCurrentLineRanges(), GetNameRanges(), GetPCRanges(), GetStartEndAddressRanges(), LLDB_INVALID_ADDRESS, m_options, lldb_private::CommandObjectDisassemble::CommandOptions::start_addr, and lldb_private::CommandObjectDisassemble::CommandOptions::symbol_containing_addr.
Referenced by DoExecute().
|
protected |
Definition at line 428 of file CommandObjectDisassemble.cpp.
References lldb_private::CommandObjectDisassemble::CommandOptions::end_addr, LLDB_INVALID_ADDRESS, m_options, and lldb_private::CommandObjectDisassemble::CommandOptions::start_addr.
Referenced by GetRangesForSelectedMode().
|
protected |
Definition at line 105 of file CommandObjectDisassemble.h.
Referenced by CheckRangeSize(), DoExecute(), GetContainingAddressRanges(), GetCurrentLineRanges(), GetNameRanges(), GetOptions(), GetPCRanges(), GetRangesForSelectedMode(), and GetStartEndAddressRanges().