LLDB  mainline
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
lldb_private::CommandObjectMultiword Class Reference

#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, CommandObjectRenderScriptRuntime, CommandObjectRenderScriptRuntimeAllocation, CommandObjectRenderScriptRuntimeContext, CommandObjectRenderScriptRuntimeKernel, CommandObjectRenderScriptRuntimeKernelBreakpoint, CommandObjectRenderScriptRuntimeModule, CommandObjectRenderScriptRuntimeReduction, CommandObjectRenderScriptRuntimeReductionBreakpoint, CommandObjectRenderScriptScriptGroup, CommandObjectRenderScriptScriptGroupBreakpoint, CommandObjectTargetDump, CommandObjectTargetModules, CommandObjectTargetModulesDump, CommandObjectTargetModulesImageSearchPaths, CommandObjectTargetSymbols, CommandObjectTraceExport, CommandObjectWatchpointSet, lldb_private::CommandObjectBreakpointCommand, 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::CommandObjectReproducer, lldb_private::CommandObjectSession, lldb_private::CommandObjectStats, lldb_private::CommandObjectTrace, lldb_private::CommandObjectType, lldb_private::CommandObjectWatchpointCommand, and sddarwinlog_private::BaseCommand.

Collaboration diagram for lldb_private::CommandObjectMultiword:
Collaboration graph
[legend]

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
 
CommandObjectMultiwordGetAsMultiwordCommand () 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
 
CommandObjectGetSubcommandObject (llvm::StringRef sub_cmd, StringList *matches=nullptr) override
 
void AproposAllSubCommands (llvm::StringRef prefix, llvm::StringRef search_word, StringList &commands_found, StringList &commands_help) 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. More...
 
const char * GetRepeatCommand (Args &current_command_args, uint32_t index) override
 Get the command that appropriate for a "repeat" of the current command. More...
 
bool 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
 
CommandInterpreterGetCommandInterpreter ()
 
DebuggerGetDebugger ()
 
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)
 
bool IsUserCommand ()
 
void SetIsUserCommand (bool is_user)
 
virtual bool IsAlias ()
 
virtual bool IsDashDashCommand ()
 
void FormatLongHelpText (Stream &output_strm, llvm::StringRef long_help)
 
void GenerateHelpText (CommandReturnObject &result)
 
virtual bool WantsCompletion ()
 
virtual OptionsGetOptions ()
 
int GetNumArgumentEntries ()
 
CommandArgumentEntryGetArgumentEntryAtIndex (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 HandleArgumentCompletion (CompletionRequest &request, OptionElementVector &opt_element_vector)
 The input array contains a parsed version of the line. More...
 
bool HelpTextContainsWord (llvm::StringRef search_word, bool search_short_help=true, bool search_long_help=true, bool search_syntax=true, bool search_options=true)
 
FlagsGetFlags ()
 The flags accessor. More...
 
const FlagsGetFlags () const
 The flags const accessor. More...
 
bool HasOverrideCallback () const
 
void SetOverrideCallback (lldb::CommandOverrideCallback callback, void *baton)
 
void SetOverrideCallback (lldb::CommandOverrideCallbackWithResult callback, void *baton)
 
bool InvokeOverrideCallback (const char **argv, CommandReturnObject &result)
 

Protected Member Functions

CommandObject::CommandMapGetSubcommandDictionary ()
 
- 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 ()
 
TargetGetSelectedOrDummyTarget (bool prefer_dummy=false)
 
TargetGetSelectedTarget ()
 
TargetGetDummyTarget ()
 
ThreadGetDefaultThread ()
 
bool CheckRequirements (CommandReturnObject &result)
 Check the command to make sure anything required by this command is available. More...
 
void Cleanup ()
 

Protected Attributes

CommandObject::CommandMap m_subcommand_dict
 
bool m_can_be_removed
 
- Protected Attributes inherited from lldb_private::CommandObject
CommandInterpreterm_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< CommandArgumentEntrym_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
 

Additional Inherited Members

- Public Types inherited from lldb_private::CommandObject
typedef llvm::StringRef() ArgumentHelpCallbackFunction()
 
typedef std::vector< CommandArgumentDataCommandArgumentEntry
 
typedef std::map< std::string, lldb::CommandObjectSP > CommandMap
 
- Static Public Member Functions inherited from lldb_private::CommandObject
static const char * GetArgumentTypeAsCString (const lldb::CommandArgumentType arg_type)
 
static const char * GetArgumentDescriptionAsCString (const lldb::CommandArgumentType arg_type)
 
static const ArgumentTableEntryGetArgumentTable ()
 
static lldb::CommandArgumentType LookupArgumentName (llvm::StringRef arg_name)
 
static const ArgumentTableEntryFindArgumentDataByType (lldb::CommandArgumentType arg_type)
 
static void GetArgumentHelp (Stream &str, lldb::CommandArgumentType arg_type, CommandInterpreter &interpreter)
 
static const char * GetArgumentName (lldb::CommandArgumentType arg_type)
 
- Static Public Attributes inherited from lldb_private::CommandObject
static ArgumentTableEntry g_arguments_data [lldb::eArgTypeLastArg]
 
- Static Protected Member Functions inherited from lldb_private::CommandObject
static void AddIDsArgumentData (CommandArgumentEntry &arg, lldb::CommandArgumentType ID, lldb::CommandArgumentType IDRange)
 

Detailed Description

Definition at line 19 of file CommandObjectMultiword.h.

Constructor & Destructor Documentation

◆ CommandObjectMultiword()

CommandObjectMultiword::CommandObjectMultiword ( CommandInterpreter interpreter,
const char *  name,
const char *  help = nullptr,
const char *  syntax = nullptr,
uint32_t  flags = 0 
)

Definition at line 19 of file CommandObjectMultiword.cpp.

◆ ~CommandObjectMultiword()

CommandObjectMultiword::~CommandObjectMultiword ( )
overridedefault

Member Function Documentation

◆ AproposAllSubCommands()

void CommandObjectMultiword::AproposAllSubCommands ( llvm::StringRef  prefix,
llvm::StringRef  search_word,
StringList commands_found,
StringList commands_help 
)
overridevirtual

◆ Execute()

bool CommandObjectMultiword::Execute ( const char *  args_string,
CommandReturnObject result 
)
overridevirtual

◆ GenerateHelpText()

void CommandObjectMultiword::GenerateHelpText ( Stream output_stream)
overridevirtual

◆ GetAsMultiwordCommand()

CommandObjectMultiword* lldb_private::CommandObjectMultiword::GetAsMultiwordCommand ( )
inlineoverridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 33 of file CommandObjectMultiword.h.

◆ GetRepeatCommand()

const char * CommandObjectMultiword::GetRepeatCommand ( Args current_command_args,
uint32_t  index 
)
overridevirtual

Get the command that appropriate for a "repeat" of the current command.

Parameters
[in]current_command_argsThe command arguments.
Returns
nullptr if there is no special repeat command - it will use the current command line. Otherwise a pointer to the command to be repeated. If the returned string is the empty string, the command won't be repeated.

Reimplemented from lldb_private::CommandObject.

Definition at line 293 of file CommandObjectMultiword.cpp.

References lldb_private::Args::GetArgumentCount(), lldb_private::CommandObject::GetRepeatCommand(), and GetSubcommandObject().

◆ GetSubcommandDictionary()

CommandObject::CommandMap& lldb_private::CommandObjectMultiword::GetSubcommandDictionary ( )
inlineprotected

Definition at line 73 of file CommandObjectMultiword.h.

References m_subcommand_dict.

◆ GetSubcommandObject()

CommandObject * CommandObjectMultiword::GetSubcommandObject ( llvm::StringRef  sub_cmd,
StringList matches = nullptr 
)
overridevirtual

◆ GetSubcommandSP()

CommandObjectSP CommandObjectMultiword::GetSubcommandSP ( llvm::StringRef  sub_cmd,
StringList matches = nullptr 
)
overridevirtual

◆ GetSubcommandSPExact()

CommandObjectSP CommandObjectMultiword::GetSubcommandSPExact ( llvm::StringRef  sub_cmd)
overridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 30 of file CommandObjectMultiword.cpp.

References m_subcommand_dict, and string().

Referenced by GetSubcommandSP().

◆ HandleCompletion()

void CommandObjectMultiword::HandleCompletion ( CompletionRequest request)
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.

Parameters
[in,out]requestThe completion request that needs to be answered.

Reimplemented from lldb_private::CommandObject.

Definition at line 255 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().

◆ IsMultiwordObject()

bool lldb_private::CommandObjectMultiword::IsMultiwordObject ( )
inlineoverridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 31 of file CommandObjectMultiword.h.

◆ IsRemovable()

bool lldb_private::CommandObjectMultiword::IsRemovable ( ) const
inlineoverridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 68 of file CommandObjectMultiword.h.

References m_can_be_removed.

◆ LoadSubCommand()

bool CommandObjectMultiword::LoadSubCommand ( llvm::StringRef  cmd_name,
const lldb::CommandObjectSP &  command_obj 
)
overridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 80 of file CommandObjectMultiword.cpp.

References lldb_private::CommandObject::GetCommandInterpreter(), lldbassert, m_subcommand_dict, and string().

Referenced by lldb_private::CommandObjectBreakpointCommand::CommandObjectBreakpointCommand(), lldb_private::CommandObjectLog::CommandObjectLog(), lldb_private::CommandObjectMemory::CommandObjectMemory(), lldb_private::CommandObjectMemoryTag::CommandObjectMemoryTag(), lldb_private::CommandObjectMultiwordBreakpoint::CommandObjectMultiwordBreakpoint(), lldb_private::CommandObjectMultiwordCommands::CommandObjectMultiwordCommands(), lldb_private::CommandObjectMultiwordFrame::CommandObjectMultiwordFrame(), lldb_private::CommandObjectMultiwordProcess::CommandObjectMultiwordProcess(), CommandObjectMultiwordProcessKDP::CommandObjectMultiwordProcessKDP(), lldb_private::CommandObjectMultiwordSettings::CommandObjectMultiwordSettings(), lldb_private::CommandObjectMultiwordSource::CommandObjectMultiwordSource(), lldb_private::CommandObjectMultiwordTarget::CommandObjectMultiwordTarget(), lldb_private::CommandObjectMultiwordThread::CommandObjectMultiwordThread(), lldb_private::CommandObjectMultiwordWatchpoint::CommandObjectMultiwordWatchpoint(), lldb_private::CommandObjectPlatform::CommandObjectPlatform(), lldb_private::CommandObjectPlugin::CommandObjectPlugin(), CommandObjectProcessKDPPacket::CommandObjectProcessKDPPacket(), lldb_private::CommandObjectRegister::CommandObjectRegister(), lldb_private::CommandObjectReproducer::CommandObjectReproducer(), lldb_private::CommandObjectSession::CommandObjectSession(), lldb_private::CommandObjectStats::CommandObjectStats(), lldb_private::CommandObjectTrace::CommandObjectTrace(), and lldb_private::CommandObjectWatchpointCommand::CommandObjectWatchpointCommand().

◆ LoadUserSubcommand()

llvm::Error CommandObjectMultiword::LoadUserSubcommand ( llvm::StringRef  cmd_name,
const lldb::CommandObjectSP &  command_obj,
bool  can_replace 
)
overridevirtual

◆ RemoveUserSubcommand()

llvm::Error CommandObjectMultiword::RemoveUserSubcommand ( llvm::StringRef  cmd_name,
bool  multiword_okay 
)

◆ SetRemovable()

void lldb_private::CommandObjectMultiword::SetRemovable ( bool  removable)
inline

Definition at line 70 of file CommandObjectMultiword.h.

References m_can_be_removed.

Referenced by lldb::SBCommand::AddMultiwordCommand().

◆ WantsRawCommandString()

bool lldb_private::CommandObjectMultiword::WantsRawCommandString ( )
inlineoverridevirtual

Implements lldb_private::CommandObject.

Definition at line 59 of file CommandObjectMultiword.h.

Friends And Related Function Documentation

◆ CommandInterpreter

friend class CommandInterpreter
friend

Definition at line 21 of file CommandObjectMultiword.h.

◆ CommandObjectSyntax

friend class CommandObjectSyntax
friend

Definition at line 22 of file CommandObjectMultiword.h.

Member Data Documentation

◆ m_can_be_removed

bool lldb_private::CommandObjectMultiword::m_can_be_removed
protected

Definition at line 78 of file CommandObjectMultiword.h.

Referenced by IsRemovable(), and SetRemovable().

◆ m_subcommand_dict

CommandObject::CommandMap lldb_private::CommandObjectMultiword::m_subcommand_dict
protected

The documentation for this class was generated from the following files: