LLDB mainline
lldb_private::CommandObjectProxy Class Referenceabstract

#include <CommandObjectMultiword.h>

Inheritance diagram for lldb_private::CommandObjectProxy:
[legend]

Public Member Functions

 CommandObjectProxy (CommandInterpreter &interpreter, const char *name, const char *help=nullptr, const char *syntax=nullptr, uint32_t flags=0)
 ~CommandObjectProxy () override
virtual CommandObjectGetProxyCommandObject ()=0
llvm::StringRef GetSyntax () override
llvm::StringRef GetHelp () override
llvm::StringRef GetHelpLong () override
bool IsRemovable () const override
bool IsMultiwordObject () override
CommandObjectMultiwordGetAsMultiwordCommand () override
void GenerateHelpText (Stream &result) override
lldb::CommandObjectSP GetSubcommandSP (llvm::StringRef sub_cmd, StringList *matches=nullptr) override
CommandObjectGetSubcommandObject (llvm::StringRef sub_cmd, StringList *matches=nullptr) override
bool LoadSubCommand (llvm::StringRef cmd_name, const lldb::CommandObjectSP &command_obj) override
bool WantsRawCommandString () override
bool WantsCompletion () override
OptionsGetOptions () 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.
void HandleArgumentCompletion (CompletionRequest &request, OptionElementVector &opt_element_vector) override
 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.
std::optional< std::string > GetRepeatCommand (Args &current_command_args, uint32_t index) override
 Get the command that appropriate for a "repeat" of the current command.
virtual llvm::StringRef GetUnsupportedError ()
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
CommandInterpreterGetCommandInterpreter ()
DebuggerGetDebugger ()
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 ()
virtual lldb::CommandObjectSP GetSubcommandSPExact (llvm::StringRef sub_cmd)
void FormatLongHelpText (Stream &output_strm, llvm::StringRef long_help)
void GenerateHelpText (CommandReturnObject &result)
virtual llvm::Error LoadUserSubcommand (llvm::StringRef cmd_name, const lldb::CommandObjectSP &command_obj, bool can_replace)
void AddSimpleArgumentList (lldb::CommandArgumentType arg_type, ArgumentRepetitionType repetition_type=eArgRepeatPlain)
void AddIDsArgumentData (IDType type)
int GetNumArgumentEntries ()
CommandArgumentEntryGetArgumentEntryAtIndex (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)
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.
const FlagsGetFlags () const
 The flags const accessor.
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.

Friends

class CommandInterpreter
class CommandObjectSyntax

Additional Inherited Members

Public Types inherited from lldb_private::CommandObject
enum  IDType { eBreakpointArgs = 0 , eWatchpointArgs = 1 }
typedef llvm::StringRef ArgumentHelpCallbackFunction()
typedef std::vector< CommandArgumentDataCommandArgumentEntry
typedef std::map< std::string, lldb::CommandObjectSP, std::less<> > 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 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 bool IsPairType (ArgumentRepetitionType arg_repeat_type)
static std::optional< ArgumentRepetitionTypeArgRepetitionFromString (llvm::StringRef string)
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 ()
TargetGetDummyTarget ()
TargetGetTarget ()
ThreadGetDefaultThread ()
bool CheckRequirements (CommandReturnObject &result)
 Check the command to make sure anything required by this command is available.
void Cleanup ()
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
std::string m_original_command
Flags m_flags
std::vector< CommandArgumentEntrym_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

Detailed Description

Definition at line 79 of file CommandObjectMultiword.h.

Constructor & Destructor Documentation

◆ CommandObjectProxy()

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

◆ ~CommandObjectProxy()

CommandObjectProxy::~CommandObjectProxy ( )
overridedefault

Member Function Documentation

◆ Execute()

void CommandObjectProxy::Execute ( const char * args_string,
CommandReturnObject & result )
overridevirtual
Parameters
offset_in_commandis on what column args_string appears, if applicable. This enables diagnostics that refer back to the user input.

Implements lldb_private::CommandObject.

Definition at line 446 of file CommandObjectMultiword.cpp.

References lldb_private::CommandReturnObject::AppendError(), lldb_private::CommandObject::CommandObject(), GetProxyCommandObject(), and GetUnsupportedError().

◆ GenerateHelpText()

void CommandObjectProxy::GenerateHelpText ( Stream & result)
overridevirtual

◆ GetAsMultiwordCommand()

CommandObjectMultiword * CommandObjectProxy::GetAsMultiwordCommand ( )
overridevirtual

◆ GetHelp()

llvm::StringRef CommandObjectProxy::GetHelp ( )
overridevirtual

◆ GetHelpLong()

llvm::StringRef CommandObjectProxy::GetHelpLong ( )
overridevirtual

◆ GetOptions()

Options * CommandObjectProxy::GetOptions ( )
overridevirtual

◆ GetProxyCommandObject()

◆ GetRepeatCommand()

std::optional< std::string > CommandObjectProxy::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.
[in]indexThis is for internal use - it is how the completion request is tracked in CommandObjectMultiword, and should otherwise be ignored.
Returns
std::nullopt if there is no special repeat command - it will use the current command line. Otherwise a std::string containing the command to be repeated. If the string is empty, the command won't be allow repeating.

Reimplemented from lldb_private::CommandObject.

Definition at line 434 of file CommandObjectMultiword.cpp.

References lldb_private::CommandObject::CommandObject(), GetProxyCommandObject(), and lldb_private::CommandObject::GetRepeatCommand().

◆ GetSubcommandObject()

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

◆ GetSubcommandSP()

lldb::CommandObjectSP CommandObjectProxy::GetSubcommandSP ( llvm::StringRef sub_cmd,
StringList * matches = nullptr )
overridevirtual

◆ GetSyntax()

llvm::StringRef CommandObjectProxy::GetSyntax ( )
overridevirtual

◆ GetUnsupportedError()

llvm::StringRef CommandObjectProxy::GetUnsupportedError ( )
virtual
Returns
An error message to be displayed when the command is executed (i.e. Execute is called) and GetProxyCommandObject returned null.

Reimplemented in lldb_private::CommandObjectTraceProxy.

Definition at line 442 of file CommandObjectMultiword.cpp.

Referenced by Execute().

◆ HandleArgumentCompletion()

void CommandObjectProxy::HandleArgumentCompletion ( CompletionRequest & request,
OptionElementVector & opt_element_vector )
overridevirtual

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.

Override this if you have a more complex argument setup. FIXME: we should be able to extend this to more complex argument definitions provided we have completers for all the argument types.

The input array contains a parsed version of the line.

We've constructed the map of options and their arguments as well if that is helpful for the completion.

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

Reimplemented from lldb_private::CommandObject.

Definition at line 426 of file CommandObjectMultiword.cpp.

References lldb_private::CommandObject::CommandObject(), GetProxyCommandObject(), and lldb_private::CommandObject::HandleArgumentCompletion().

◆ HandleCompletion()

void CommandObjectProxy::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 420 of file CommandObjectMultiword.cpp.

References lldb_private::CommandObject::CommandObject(), GetProxyCommandObject(), and lldb_private::CommandObject::HandleCompletion().

◆ IsMultiwordObject()

bool CommandObjectProxy::IsMultiwordObject ( )
overridevirtual

◆ IsRemovable()

bool CommandObjectProxy::IsRemovable ( ) const
overridevirtual

◆ LoadSubCommand()

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

◆ WantsCompletion()

bool CommandObjectProxy::WantsCompletion ( )
overridevirtual

◆ WantsRawCommandString()

bool CommandObjectProxy::WantsRawCommandString ( )
overridevirtual

◆ CommandInterpreter

◆ CommandObjectSyntax

friend class CommandObjectSyntax
friend

Definition at line 139 of file CommandObjectMultiword.h.

References CommandObjectSyntax.

Referenced by CommandObjectSyntax.


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