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, CommandObjectMultiwordScriptingExtension, CommandObjectMultiwordTargetStopHooks, CommandObjectMultiwordThreadPlan, CommandObjectMultiwordTrace, CommandObjectMultiwordTraceDump, CommandObjectPlatformFile, CommandObjectPlatformProcess, CommandObjectProcessGDBRemotePacket, CommandObjectProcessKDPPacket, CommandObjectSourceCache, CommandObjectTargetDump, CommandObjectTargetModules, CommandObjectTargetModulesDump, CommandObjectTargetModulesImageSearchPaths, CommandObjectTargetSymbols, CommandObjectTraceExport, CommandObjectTypeCategory, CommandObjectTypeFilter, CommandObjectTypeFormat, CommandObjectTypeSummary, CommandObjectTypeSynth, 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::CommandObjectMultiwordScripting, 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. | |
void | Execute (const char *args_string, CommandReturnObject &result) override |
bool | IsRemovable () const override |
void | SetRemovable (bool removable) |
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) |
virtual void | Execute (const char *args_string, CommandReturnObject &result)=0 |
Protected Member Functions | |
CommandObject::CommandMap & | GetSubcommandDictionary () |
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 | |
CommandObject::CommandMap | m_subcommand_dict |
bool | m_can_be_removed |
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 |
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 |
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, and lldb_private::Args::Shift().
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 219 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. |
[in] | index | This is for internal use - it is how the completion request is tracked in CommandObjectMultiword, and should otherwise be ignored. |
Reimplemented from lldb_private::CommandObject.
Definition at line 289 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 250 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::CommandObjectMultiwordScripting::CommandObjectMultiwordScripting(), CommandObjectMultiwordScriptingExtension::CommandObjectMultiwordScriptingExtension(), 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(), CommandObjectSourceCache::CommandObjectSourceCache(), lldb_private::CommandObjectStats::CommandObjectStats(), CommandObjectTargetDump::CommandObjectTargetDump(), CommandObjectTargetModules::CommandObjectTargetModules(), CommandObjectTargetModulesDump::CommandObjectTargetModulesDump(), CommandObjectTargetModulesImageSearchPaths::CommandObjectTargetModulesImageSearchPaths(), CommandObjectTargetSymbols::CommandObjectTargetSymbols(), lldb_private::CommandObjectTrace::CommandObjectTrace(), CommandObjectTraceExport::CommandObjectTraceExport(), lldb_private::CommandObjectWatchpointCommand::CommandObjectWatchpointCommand(), 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().