LLDB mainline
lldb_private::CommandAlias Class Reference

#include <CommandAlias.h>

Inheritance diagram for lldb_private::CommandAlias:
[legend]

Public Types

typedef std::unique_ptr< CommandAliasUniquePointer
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

Public Member Functions

 CommandAlias (CommandInterpreter &interpreter, lldb::CommandObjectSP cmd_sp, llvm::StringRef options_args, llvm::StringRef name, llvm::StringRef help=llvm::StringRef(), llvm::StringRef syntax=llvm::StringRef(), uint32_t flags=0)
void GetAliasExpansion (StreamString &help_string) const
bool IsValid () const
 operator bool () const
bool WantsRawCommandString () override
bool WantsCompletion () 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.
OptionsGetOptions () override
bool IsAlias () override
bool IsDashDashCommand () override
llvm::StringRef GetHelp () override
llvm::StringRef GetHelpLong () override
void SetHelp (llvm::StringRef str) override
void SetHelpLong (llvm::StringRef str) override
void Execute (const char *args_string, CommandReturnObject &result) override
lldb::CommandObjectSP GetUnderlyingCommand ()
OptionArgVectorSP GetOptionArguments () const
const char * GetOptionString ()
std::pair< lldb::CommandObjectSP, OptionArgVectorSPDesugar ()
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 GetSyntax ()
llvm::StringRef GetCommandName () const
void SetSyntax (llvm::StringRef str)
virtual bool IsRemovable () const
virtual bool IsMultiwordObject ()
bool IsUserCommand ()
void SetIsUserCommand (bool is_user)
virtual CommandObjectMultiwordGetAsMultiwordCommand ()
virtual lldb::CommandObjectSP GetSubcommandSP (llvm::StringRef sub_cmd, StringList *matches=nullptr)
virtual lldb::CommandObjectSP GetSubcommandSPExact (llvm::StringRef sub_cmd)
virtual CommandObjectGetSubcommandObject (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)
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.
virtual std::optional< std::string > GetRepeatCommand (Args &current_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.

Protected Member Functions

bool IsNestedAlias ()
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 ()

Private Attributes

lldb::CommandObjectSP m_underlying_command_sp
std::string m_option_string
OptionArgVectorSP m_option_args_sp
LazyBool m_is_dashdash_alias
bool m_did_set_help: 1
bool m_did_set_help_long: 1

Additional Inherited Members

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 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 20 of file CommandAlias.h.

Member Typedef Documentation

◆ UniquePointer

Definition at line 22 of file CommandAlias.h.

Constructor & Destructor Documentation

◆ CommandAlias()

Member Function Documentation

◆ Desugar()

std::pair< lldb::CommandObjectSP, OptionArgVectorSP > CommandAlias::Desugar ( )

Definition at line 205 of file CommandAlias.cpp.

References CommandAlias(), GetOptionArguments(), and GetUnderlyingCommand().

◆ Execute()

void CommandAlias::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 137 of file CommandAlias.cpp.

◆ GetAliasExpansion()

◆ GetHelp()

llvm::StringRef CommandAlias::GetHelp ( )
overridevirtual

◆ GetHelpLong()

llvm::StringRef CommandAlias::GetHelpLong ( )
overridevirtual

◆ GetOptionArguments()

OptionArgVectorSP lldb_private::CommandAlias::GetOptionArguments ( ) const
inline

◆ GetOptions()

Options * CommandAlias::GetOptions ( )
overridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 131 of file CommandAlias.cpp.

References IsValid(), and m_underlying_command_sp.

◆ GetOptionString()

const char * lldb_private::CommandAlias::GetOptionString ( )
inline

Definition at line 65 of file CommandAlias.h.

References m_option_string.

◆ GetUnderlyingCommand()

lldb::CommandObjectSP lldb_private::CommandAlias::GetUnderlyingCommand ( )
inline

Definition at line 61 of file CommandAlias.h.

References m_underlying_command_sp.

Referenced by CommandAlias(), Desugar(), IsDashDashCommand(), and IsNestedAlias().

◆ HandleArgumentCompletion()

void CommandAlias::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 124 of file CommandAlias.cpp.

References IsValid(), and m_underlying_command_sp.

◆ HandleCompletion()

void CommandAlias::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 119 of file CommandAlias.cpp.

References IsValid(), and m_underlying_command_sp.

◆ IsAlias()

bool lldb_private::CommandAlias::IsAlias ( )
inlineoverridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 47 of file CommandAlias.h.

◆ IsDashDashCommand()

◆ IsNestedAlias()

bool CommandAlias::IsNestedAlias ( )
protected

Definition at line 199 of file CommandAlias.cpp.

References GetUnderlyingCommand().

Referenced by IsDashDashCommand().

◆ IsValid()

◆ operator bool()

lldb_private::CommandAlias::operator bool ( ) const
inlineexplicit

Definition at line 33 of file CommandAlias.h.

References IsValid().

◆ SetHelp()

void CommandAlias::SetHelp ( llvm::StringRef str)
overridevirtual

◆ SetHelpLong()

void CommandAlias::SetHelpLong ( llvm::StringRef str)
overridevirtual

◆ WantsCompletion()

bool CommandAlias::WantsCompletion ( )
overridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 113 of file CommandAlias.cpp.

References IsValid(), and m_underlying_command_sp.

◆ WantsRawCommandString()

bool CommandAlias::WantsRawCommandString ( )
overridevirtual

Implements lldb_private::CommandObject.

Definition at line 107 of file CommandAlias.cpp.

References IsValid(), and m_underlying_command_sp.

Member Data Documentation

◆ m_did_set_help

bool lldb_private::CommandAlias::m_did_set_help
private

Definition at line 79 of file CommandAlias.h.

Referenced by CommandAlias(), GetHelp(), and SetHelp().

◆ m_did_set_help_long

bool lldb_private::CommandAlias::m_did_set_help_long
private

Definition at line 80 of file CommandAlias.h.

Referenced by CommandAlias(), GetHelpLong(), and SetHelpLong().

◆ m_is_dashdash_alias

LazyBool lldb_private::CommandAlias::m_is_dashdash_alias
private

Definition at line 78 of file CommandAlias.h.

Referenced by CommandAlias(), and IsDashDashCommand().

◆ m_option_args_sp

OptionArgVectorSP lldb_private::CommandAlias::m_option_args_sp
private

Definition at line 77 of file CommandAlias.h.

Referenced by CommandAlias(), GetAliasExpansion(), GetOptionArguments(), and IsValid().

◆ m_option_string

std::string lldb_private::CommandAlias::m_option_string
private

Definition at line 76 of file CommandAlias.h.

Referenced by CommandAlias(), and GetOptionString().

◆ m_underlying_command_sp


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