LLDB mainline
|
#include <CommandObjectMultiword.h>
Inherits lldb_private::CommandObject.
Inherited by CommandObjectBreakpointName, CommandObjectCommandContainer, CommandObjectFrameRecognizer, CommandObjectLogTimer, CommandObjectMultiwordCommandsScript, CommandObjectMultiwordItaniumABI, CommandObjectMultiwordObjC, CommandObjectMultiwordObjC_ClassTable, CommandObjectMultiwordObjC_TaggedPointer, CommandObjectMultiwordProcessGDBRemote, CommandObjectMultiwordProcessKDP, CommandObjectMultiwordProcessMinidump, CommandObjectMultiwordProcessTrace, CommandObjectMultiwordTargetStopHooks, CommandObjectMultiwordThreadPlan, CommandObjectMultiwordTrace, CommandObjectMultiwordTraceDump, CommandObjectPlatformFile, CommandObjectPlatformProcess, CommandObjectProcessGDBRemotePacket, CommandObjectProcessKDPPacket, CommandObjectTargetDump, CommandObjectTargetModules, CommandObjectTargetModulesDump, CommandObjectTargetModulesImageSearchPaths, CommandObjectTargetSymbols, CommandObjectTraceExport, CommandObjectTypeCategory, CommandObjectTypeFilter, CommandObjectTypeFormat, CommandObjectTypeSummary, CommandObjectWatchpointSet, lldb_private::CommandObjectBreakpointCommand, lldb_private::CommandObjectDiagnostics, lldb_private::CommandObjectLanguage, lldb_private::CommandObjectLog, lldb_private::CommandObjectMemory, lldb_private::CommandObjectMemoryTag, lldb_private::CommandObjectMultiwordBreakpoint, lldb_private::CommandObjectMultiwordCommands, lldb_private::CommandObjectMultiwordFrame, lldb_private::CommandObjectMultiwordProcess, lldb_private::CommandObjectMultiwordSettings, lldb_private::CommandObjectMultiwordSource, lldb_private::CommandObjectMultiwordTarget, lldb_private::CommandObjectMultiwordThread, lldb_private::CommandObjectMultiwordWatchpoint, lldb_private::CommandObjectPlatform, lldb_private::CommandObjectPlugin, lldb_private::CommandObjectRegister, lldb_private::CommandObjectSession, lldb_private::CommandObjectStats, lldb_private::CommandObjectTrace, lldb_private::CommandObjectType, lldb_private::CommandObjectWatchpointCommand, and sddarwinlog_private::BaseCommand.
Public Member Functions | |
CommandObjectMultiword (CommandInterpreter &interpreter, const char *name, const char *help=nullptr, const char *syntax=nullptr, uint32_t flags=0) | |
~CommandObjectMultiword () override | |
bool | IsMultiwordObject () override |
CommandObjectMultiword * | GetAsMultiwordCommand () override |
bool | LoadSubCommand (llvm::StringRef cmd_name, const lldb::CommandObjectSP &command_obj) override |
llvm::Error | LoadUserSubcommand (llvm::StringRef cmd_name, const lldb::CommandObjectSP &command_obj, bool can_replace) override |
llvm::Error | RemoveUserSubcommand (llvm::StringRef cmd_name, bool multiword_okay) |
void | GenerateHelpText (Stream &output_stream) override |
lldb::CommandObjectSP | GetSubcommandSP (llvm::StringRef sub_cmd, StringList *matches=nullptr) override |
lldb::CommandObjectSP | GetSubcommandSPExact (llvm::StringRef sub_cmd) override |
CommandObject * | GetSubcommandObject (llvm::StringRef sub_cmd, StringList *matches=nullptr) override |
bool | WantsRawCommandString () override |
void | HandleCompletion (CompletionRequest &request) override |
This default version handles calling option argument completions and then calls HandleArgumentCompletion if the cursor is on an argument, not an option. | |
std::optional< std::string > | GetRepeatCommand (Args ¤t_command_args, uint32_t index) override |
Get the command that appropriate for a "repeat" of the current command. | |
bool | Execute (const char *args_string, CommandReturnObject &result) override |
bool | IsRemovable () const override |
void | SetRemovable (bool removable) |
![]() | |
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 () |
int | GetNumArgumentEntries () |
CommandArgumentEntry * | GetArgumentEntryAtIndex (int idx) |
void | GetFormattedCommandArguments (Stream &str, uint32_t opt_set_mask=LLDB_OPT_SET_ALL) |
bool | IsPairType (ArgumentRepetitionType arg_repeat_type) |
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 input array contains a parsed version of the line. | |
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::CommandOverrideCallbackWithResult callback, void *baton) |
bool | InvokeOverrideCallback (const char **argv, CommandReturnObject &result) |
virtual bool | Execute (const char *args_string, CommandReturnObject &result)=0 |
Protected Member Functions | |
CommandObject::CommandMap & | GetSubcommandDictionary () |
![]() | |
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 & | GetSelectedOrDummyTarget (bool prefer_dummy=false) |
Target & | GetSelectedTarget () |
Target & | GetDummyTarget () |
Thread * | GetDefaultThread () |
bool | CheckRequirements (CommandReturnObject &result) |
Check the command to make sure anything required by this command is available. | |
void | Cleanup () |
Protected Attributes | |
CommandObject::CommandMap | m_subcommand_dict |
bool | m_can_be_removed |
![]() | |
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 |
Flags | m_flags |
std::vector< CommandArgumentEntry > | m_arguments |
lldb::CommandOverrideCallback | m_deprecated_command_override_callback |
lldb::CommandOverrideCallbackWithResult | m_command_override_callback |
void * | m_command_override_baton |
bool | m_is_user_command = false |
Friends | |
class | CommandInterpreter |
class | CommandObjectSyntax |
Definition at line 20 of file CommandObjectMultiword.h.
CommandObjectMultiword::CommandObjectMultiword | ( | CommandInterpreter & | interpreter, |
const char * | name, | ||
const char * | help = nullptr , |
||
const char * | syntax = nullptr , |
||
uint32_t | flags = 0 |
||
) |
Definition at line 20 of file CommandObjectMultiword.cpp.
|
overridedefault |
|
overridevirtual |
Implements lldb_private::CommandObject.
Definition at line 162 of file CommandObjectMultiword.cpp.
References lldb_private::CommandReturnObject::AppendError(), lldb_private::CommandReturnObject::AppendErrorWithFormat(), lldb_private::CommandReturnObject::AppendRawError(), lldb_private::CommandObject::Execute(), lldb_private::CommandObject::GenerateHelpText(), lldb_private::Args::GetArgumentCount(), lldb_private::CommandObject::GetCommandName(), lldb_private::StringList::GetSize(), GetSubcommandObject(), m_subcommand_dict, lldb_private::Args::Shift(), and lldb_private::CommandReturnObject::Succeeded().
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 220 of file CommandObjectMultiword.cpp.
References lldb_private::FindLongestCommandWord(), lldb_private::CommandObject::GenerateHelpText(), lldb_private::CommandObject::m_interpreter, m_subcommand_dict, lldb_private::CommandInterpreter::OutputFormattedHelpText(), and lldb_private::Stream::PutCString().
|
inlineoverridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 34 of file CommandObjectMultiword.h.
Referenced by lldb_private::CommandInterpreter::VerifyUserMultiwordCmdPath().
|
overridevirtual |
Get the command that appropriate for a "repeat" of the current command.
[in] | current_command_args | The command arguments. |
Reimplemented from lldb_private::CommandObject.
Definition at line 290 of file CommandObjectMultiword.cpp.
References lldb_private::Args::GetArgumentCount(), lldb_private::CommandObject::GetRepeatCommand(), and GetSubcommandObject().
|
inlineprotected |
Definition at line 69 of file CommandObjectMultiword.h.
References m_subcommand_dict.
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 76 of file CommandObjectMultiword.cpp.
References GetSubcommandSP().
Referenced by lldb_private::CommandCompletions::CompleteModifiableCmdPathArgs(), Execute(), GetRepeatCommand(), and HandleCompletion().
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 42 of file CommandObjectMultiword.cpp.
References lldb_private::AddNamesMatchingPartialString(), lldb_private::StringList::AppendString(), lldb_private::StringList::GetStringAtIndex(), GetSubcommandSPExact(), and m_subcommand_dict.
Referenced by GetSubcommandObject().
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 31 of file CommandObjectMultiword.cpp.
References m_subcommand_dict.
Referenced by GetSubcommandSP(), and lldb_private::CommandInterpreter::VerifyUserMultiwordCmdPath().
|
overridevirtual |
This default version handles calling option argument completions and then calls HandleArgumentCompletion if the cursor is on an argument, not an option.
Don't override this method, override HandleArgumentCompletion instead unless you have special reasons.
[in,out] | request | The completion request that needs to be answered. |
Reimplemented from lldb_private::CommandObject.
Definition at line 251 of file CommandObjectMultiword.cpp.
References lldb_private::CompletionRequest::AddCompletions(), lldb_private::AddNamesMatchingPartialString(), lldb_private::CompletionRequest::AppendEmptyArgument(), lldb_private::StringList::DeleteStringAtIndex(), lldb_private::Args::GetArgumentCount(), lldb_private::CompletionRequest::GetCursorIndex(), lldb_private::CompletionRequest::GetParsedLine(), lldb_private::StringList::GetSize(), lldb_private::StringList::GetStringAtIndex(), GetSubcommandObject(), lldb_private::CommandObject::HandleCompletion(), m_subcommand_dict, lldb_private::Args::Shift(), and lldb_private::CompletionRequest::ShiftArguments().
|
inlineoverridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 32 of file CommandObjectMultiword.h.
|
inlineoverridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 64 of file CommandObjectMultiword.h.
References m_can_be_removed.
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 81 of file CommandObjectMultiword.cpp.
References lldb_private::CommandObject::GetCommandInterpreter(), lldbassert, and m_subcommand_dict.
Referenced by sddarwinlog_private::BaseCommand::BaseCommand(), lldb_private::CommandObjectBreakpointCommand::CommandObjectBreakpointCommand(), CommandObjectCommandContainer::CommandObjectCommandContainer(), lldb_private::CommandObjectDiagnostics::CommandObjectDiagnostics(), CommandObjectFrameRecognizer::CommandObjectFrameRecognizer(), lldb_private::CommandObjectLog::CommandObjectLog(), CommandObjectLogTimer::CommandObjectLogTimer(), lldb_private::CommandObjectMemory::CommandObjectMemory(), lldb_private::CommandObjectMemoryTag::CommandObjectMemoryTag(), lldb_private::CommandObjectMultiwordBreakpoint::CommandObjectMultiwordBreakpoint(), lldb_private::CommandObjectMultiwordCommands::CommandObjectMultiwordCommands(), CommandObjectMultiwordCommandsScript::CommandObjectMultiwordCommandsScript(), lldb_private::CommandObjectMultiwordFrame::CommandObjectMultiwordFrame(), lldb_private::CommandObjectMultiwordProcess::CommandObjectMultiwordProcess(), CommandObjectMultiwordProcessKDP::CommandObjectMultiwordProcessKDP(), CommandObjectMultiwordProcessTrace::CommandObjectMultiwordProcessTrace(), lldb_private::CommandObjectMultiwordSettings::CommandObjectMultiwordSettings(), lldb_private::CommandObjectMultiwordSource::CommandObjectMultiwordSource(), lldb_private::CommandObjectMultiwordTarget::CommandObjectMultiwordTarget(), CommandObjectMultiwordTargetStopHooks::CommandObjectMultiwordTargetStopHooks(), lldb_private::CommandObjectMultiwordThread::CommandObjectMultiwordThread(), CommandObjectMultiwordThreadPlan::CommandObjectMultiwordThreadPlan(), CommandObjectMultiwordTrace::CommandObjectMultiwordTrace(), CommandObjectMultiwordTraceDump::CommandObjectMultiwordTraceDump(), lldb_private::CommandObjectMultiwordWatchpoint::CommandObjectMultiwordWatchpoint(), lldb_private::CommandObjectPlatform::CommandObjectPlatform(), CommandObjectPlatformFile::CommandObjectPlatformFile(), CommandObjectPlatformProcess::CommandObjectPlatformProcess(), lldb_private::CommandObjectPlugin::CommandObjectPlugin(), CommandObjectProcessKDPPacket::CommandObjectProcessKDPPacket(), lldb_private::CommandObjectRegister::CommandObjectRegister(), lldb_private::CommandObjectSession::CommandObjectSession(), lldb_private::CommandObjectStats::CommandObjectStats(), CommandObjectTargetDump::CommandObjectTargetDump(), CommandObjectTargetModules::CommandObjectTargetModules(), CommandObjectTargetModulesDump::CommandObjectTargetModulesDump(), CommandObjectTargetModulesImageSearchPaths::CommandObjectTargetModulesImageSearchPaths(), CommandObjectTargetSymbols::CommandObjectTargetSymbols(), lldb_private::CommandObjectTrace::CommandObjectTrace(), CommandObjectTraceExport::CommandObjectTraceExport(), lldb_private::CommandObjectWatchpointCommand::CommandObjectWatchpointCommand(), CommandObjectTypeCategory::~CommandObjectTypeCategory(), and CommandObjectTypeSummary::~CommandObjectTypeSummary().
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 99 of file CommandObjectMultiword.cpp.
References lldb_private::CommandObject::GetCommandInterpreter(), lldb_private::CommandObject::IsUserCommand(), lldbassert, and m_subcommand_dict.
Referenced by CommandObjectCommandsScriptAdd::DoExecute(), CommandObjectCommandsContainerAdd::DoExecute(), and CommandObjectCommandsScriptAdd::IOHandlerInputComplete().
llvm::Error CommandObjectMultiword::RemoveUserSubcommand | ( | llvm::StringRef | cmd_name, |
bool | multiword_okay | ||
) |
Definition at line 133 of file CommandObjectMultiword.cpp.
References m_subcommand_dict.
Referenced by CommandObjectCommandsScriptDelete::DoExecute(), and CommandObjectCommandsContainerDelete::DoExecute().
|
inline |
Definition at line 66 of file CommandObjectMultiword.h.
References m_can_be_removed.
Referenced by lldb::SBCommand::AddMultiwordCommand().
|
inlineoverridevirtual |
Implements lldb_private::CommandObject.
Definition at line 55 of file CommandObjectMultiword.h.
|
friend |
Definition at line 22 of file CommandObjectMultiword.h.
|
friend |
Definition at line 23 of file CommandObjectMultiword.h.
|
protected |
Definition at line 74 of file CommandObjectMultiword.h.
Referenced by IsRemovable(), and SetRemovable().
|
protected |
Definition at line 73 of file CommandObjectMultiword.h.
Referenced by Execute(), GenerateHelpText(), GetSubcommandDictionary(), GetSubcommandSP(), GetSubcommandSPExact(), HandleCompletion(), LoadSubCommand(), LoadUserSubcommand(), and RemoveUserSubcommand().