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

#include <CommandObjectExpression.h>

Inheritance diagram for lldb_private::CommandObjectExpression:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::CommandObjectExpression:
Collaboration graph
[legend]

Classes

class  CommandOptions
 

Public Member Functions

 CommandObjectExpression (CommandInterpreter &interpreter)
 
 ~CommandObjectExpression () 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. More...
 
- Public Member Functions inherited from lldb_private::CommandObjectRaw
 CommandObjectRaw (CommandInterpreter &interpreter, llvm::StringRef name, llvm::StringRef help="", llvm::StringRef syntax="", uint32_t flags=0)
 
 ~CommandObjectRaw () override=default
 
bool 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 ()
 
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 ()
 
virtual CommandObjectMultiwordGetAsMultiwordCommand ()
 
virtual bool IsAlias ()
 
virtual bool IsDashDashCommand ()
 
virtual lldb::CommandObjectSP GetSubcommandSP (llvm::StringRef sub_cmd, StringList *matches=nullptr)
 
virtual CommandObjectGetSubcommandObject (llvm::StringRef sub_cmd, StringList *matches=nullptr)
 
virtual void AproposAllSubCommands (llvm::StringRef prefix, llvm::StringRef search_word, StringList &commands_found, StringList &commands_help)
 
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 bool WantsCompletion ()
 
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...
 
virtual const char * GetRepeatCommand (Args &current_command_args, uint32_t index)
 Get the command that appropriate for a "repeat" of the current command. 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)
 
- Public Member Functions inherited from lldb_private::IOHandlerDelegate
 IOHandlerDelegate (Completion completion=Completion::None)
 
virtual ~IOHandlerDelegate ()=default
 
virtual void IOHandlerActivated (IOHandler &io_handler, bool interactive)
 
virtual void IOHandlerDeactivated (IOHandler &io_handler)
 
virtual llvm::Optional< std::stringIOHandlerSuggestion (IOHandler &io_handler, llvm::StringRef line)
 
virtual void IOHandlerComplete (IOHandler &io_handler, CompletionRequest &request)
 
virtual const char * IOHandlerGetFixIndentationCharacters ()
 
virtual int IOHandlerFixIndentation (IOHandler &io_handler, const StringList &lines, int cursor_position)
 Called when a new line is created or one of an identified set of indentation characters is typed. More...
 
virtual void IOHandlerInputInterrupted (IOHandler &io_handler, std::string &data)
 
virtual ConstString IOHandlerGetControlSequence (char ch)
 
virtual const char * IOHandlerGetCommandPrefix ()
 
virtual const char * IOHandlerGetHelpPrologue ()
 
virtual bool IOHandlerInterrupt (IOHandler &io_handler)
 

Protected Member Functions

void IOHandlerInputComplete (IOHandler &io_handler, std::string &line) override
 Called when a line or lines have been retrieved. More...
 
bool IOHandlerIsInputComplete (IOHandler &io_handler, StringList &lines) override
 Called to determine whether typing enter after the last line in lines should end input. More...
 
bool DoExecute (llvm::StringRef command, CommandReturnObject &result) override
 
EvaluateExpressionOptions GetEvalOptions (const Target &target)
 Return the appropriate expression options used for evaluating the expression in the given target. More...
 
bool EvaluateExpression (llvm::StringRef expr, Stream &output_stream, Stream &error_stream, CommandReturnObject &result)
 Evaluates the given expression. More...
 
void GetMultilineExpression ()
 
- Protected Member Functions inherited from lldb_private::CommandObjectRaw
bool WantsRawCommandString () override
 
- 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

OptionGroupOptions m_option_group
 
OptionGroupFormat m_format_options
 
OptionGroupValueObjectDisplay m_varobj_options
 
OptionGroupBoolean m_repl_option
 
CommandOptions m_command_options
 
uint32_t m_expr_line_count
 
std::string m_expr_lines
 
std::string m_fixed_expression
 
- 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
 
- Protected Attributes inherited from lldb_private::IOHandlerDelegate
Completion m_completion
 

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
 
- Public Types inherited from lldb_private::IOHandlerDelegate
enum  Completion { Completion::None, Completion::LLDBCommand, Completion::Expression }
 
- 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 22 of file CommandObjectExpression.h.

Constructor & Destructor Documentation

◆ CommandObjectExpression()

CommandObjectExpression::CommandObjectExpression ( CommandInterpreter interpreter)

◆ ~CommandObjectExpression()

CommandObjectExpression::~CommandObjectExpression ( )
overridedefault

Member Function Documentation

◆ DoExecute()

bool CommandObjectExpression::DoExecute ( llvm::StringRef  command,
CommandReturnObject result 
)
overrideprotectedvirtual

◆ EvaluateExpression()

bool CommandObjectExpression::EvaluateExpression ( llvm::StringRef  expr,
Stream output_stream,
Stream error_stream,
CommandReturnObject result 
)
protected

Evaluates the given expression.

Parameters
output_streamThe stream to which the evaluation result will be printed.
error_streamContains error messages that should be displayed to the user in case the evaluation fails.
resultA CommandReturnObject which status will be set to the appropriate value depending on evaluation success and whether the expression produced any result.
Returns
Returns true iff the expression was successfully evaluated, executed and the result could be printed to the output stream.

Definition at line 375 of file CommandObjectExpression.cpp.

◆ GetEvalOptions()

EvaluateExpressionOptions CommandObjectExpression::GetEvalOptions ( const Target target)
protected

Return the appropriate expression options used for evaluating the expression in the given target.

Definition at line 335 of file CommandObjectExpression.cpp.

◆ GetMultilineExpression()

void CommandObjectExpression::GetMultilineExpression ( )
protected

Definition at line 496 of file CommandObjectExpression.cpp.

◆ GetOptions()

Options * CommandObjectExpression::GetOptions ( )
overridevirtual

Reimplemented from lldb_private::CommandObject.

Definition at line 263 of file CommandObjectExpression.cpp.

◆ HandleCompletion()

void CommandObjectExpression::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 265 of file CommandObjectExpression.cpp.

◆ IOHandlerInputComplete()

void CommandObjectExpression::IOHandlerInputComplete ( IOHandler io_handler,
std::string data 
)
overrideprotectedvirtual

Called when a line or lines have been retrieved.

This function can handle the current line and possibly call IOHandler::SetIsDone(true) when the IO handler is done like when "quit" is entered as a command, of when an empty line is received. It is up to the delegate to determine when a line should cause a IOHandler to exit.

Implements lldb_private::IOHandlerDelegate.

Definition at line 465 of file CommandObjectExpression.cpp.

References lldb_private::Stream::EOL(), lldb_private::Stream::PutCString(), and lldb_private::Stream::Write().

◆ IOHandlerIsInputComplete()

bool CommandObjectExpression::IOHandlerIsInputComplete ( IOHandler io_handler,
StringList lines 
)
overrideprotectedvirtual

Called to determine whether typing enter after the last line in lines should end input.

This function will not be called on IOHandler objects that are getting single lines.

Parameters
[in]io_handlerThe IOHandler that responsible for updating the lines.
[in]linesThe current multi-line content. May be altered to provide alternative input when complete.
Returns
Return an boolean to indicate whether input is complete, true indicates that no additional input is necessary, while false indicates that more input is required.

Reimplemented from lldb_private::IOHandlerDelegate.

Definition at line 483 of file CommandObjectExpression.cpp.

Member Data Documentation

◆ m_command_options

CommandOptions lldb_private::CommandObjectExpression::m_command_options
protected

Definition at line 93 of file CommandObjectExpression.h.

◆ m_expr_line_count

uint32_t lldb_private::CommandObjectExpression::m_expr_line_count
protected

Definition at line 94 of file CommandObjectExpression.h.

◆ m_expr_lines

std::string lldb_private::CommandObjectExpression::m_expr_lines
protected

Definition at line 95 of file CommandObjectExpression.h.

◆ m_fixed_expression

std::string lldb_private::CommandObjectExpression::m_fixed_expression
protected

Definition at line 96 of file CommandObjectExpression.h.

◆ m_format_options

OptionGroupFormat lldb_private::CommandObjectExpression::m_format_options
protected

Definition at line 90 of file CommandObjectExpression.h.

◆ m_option_group

OptionGroupOptions lldb_private::CommandObjectExpression::m_option_group
protected

Definition at line 89 of file CommandObjectExpression.h.

◆ m_repl_option

OptionGroupBoolean lldb_private::CommandObjectExpression::m_repl_option
protected

Definition at line 92 of file CommandObjectExpression.h.

◆ m_varobj_options

OptionGroupValueObjectDisplay lldb_private::CommandObjectExpression::m_varobj_options
protected

Definition at line 91 of file CommandObjectExpression.h.


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