LLDB mainline
|
Implements dwim-print
, a printing command that chooses the most direct, efficient, and resilient means of printing a given expression.
More...
#include <CommandObjectDWIMPrint.h>
Public Member Functions | |
CommandObjectDWIMPrint (CommandInterpreter &interpreter) | |
~CommandObjectDWIMPrint () override=default | |
Options * | GetOptions () override |
bool | WantsCompletion () override |
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 | |
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 |
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 |
Private Member Functions | |
void | DoExecute (llvm::StringRef command, CommandReturnObject &result) override |
Implements dwim-print
, a printing command that chooses the most direct, efficient, and resilient means of printing a given expression.
DWIM is an acronym for Do What I Mean. From Wikipedia, DWIM is described as:
attempt to anticipate what users intend to do, correcting trivial errors automatically rather than blindly executing users' explicit but potentially incorrect input
The dwim-print
command serves as a single print command for users who don't yet know, or perfer not to know, the various lldb commands that can be used to print, and when to use them.
Definition at line 32 of file CommandObjectDWIMPrint.h.
CommandObjectDWIMPrint::CommandObjectDWIMPrint | ( | CommandInterpreter & | interpreter | ) |
Definition at line 33 of file CommandObjectDWIMPrint.cpp.
References lldb_private::CommandObject::AddSimpleArgumentList(), lldb_private::OptionGroupOptions::Append(), lldb::eArgTypeVarName, lldb_private::OptionGroupOptions::Finalize(), LLDB_OPT_SET_1, LLDB_OPT_SET_ALL, m_expr_options, m_format_options, m_option_group, m_varobj_options, lldb_private::OptionGroupFormat::OPTION_GROUP_FORMAT, and lldb_private::OptionGroupFormat::OPTION_GROUP_GDB_FMT.
|
overridedefault |
|
overrideprivatevirtual |
Implements lldb_private::CommandObjectRaw.
Definition at line 53 of file CommandObjectDWIMPrint.cpp.
References lldb_private::CommandReturnObject::AppendError(), lldb_private::CommandReturnObject::AppendErrorWithFormatv(), lldb_private::CommandReturnObject::AppendMessageWithFormatv(), lldb_private::SourceLanguage::AsLanguageType(), lldb::eDWIMPrintVerbosityFull, lldb::eDWIMPrintVerbosityNone, lldb::eExpressionCompleted, lldb::eLanguageTypeObjC, lldb::eLanguageTypeSwift, lldb::eLanguageTypeUnknown, lldb_private::eLazyBoolCalculate, lldb_private::eLazyBoolYes, lldb::eReturnStatusSuccessFinishResult, error(), lldb_private::Target::EvaluateExpression(), lldb_private::StackFrame::FindVariable(), lldb_private::OptionGroupValueObjectDisplay::GetAsDumpOptions(), lldb_private::ExecutionContext::GetBestExecutionContextScope(), lldb_private::CommandObject::GetDebugger(), lldb_private::CommandObject::GetDummyTarget(), lldb_private::Debugger::GetDWIMPrintVerbosity(), lldb_private::TargetProperties::GetEnableNotifyAboutFixIts(), lldb_private::CommandReturnObject::GetErrorStream(), lldb_private::CommandObjectExpression::CommandOptions::GetEvaluateExpressionOptions(), lldb_private::OptionGroupFormat::GetFormat(), lldb_private::ExecutionContext::GetFramePtr(), lldb_private::CommandReturnObject::GetOutputStream(), lldb_private::Target::GetPersistentExpressionStateForLanguage(), lldb_private::Target::GetPersistentVariable(), lldb_private::OptionsWithRaw::GetRawPart(), lldb_private::StreamString::GetString(), lldb_private::ExecutionContext::GetTargetPtr(), lldb_private::StackFrame::GuessLanguage(), lldb_private::UserExpression::kNoResult, lldb_private::CommandObjectExpression::CommandOptions::language, lldb_private::CommandObject::m_cmd_name, lldb_private::CommandObject::m_exe_ctx, m_expr_options, m_format_options, m_option_group, m_varobj_options, lldb_private::CommandObjectExpression::CommandOptions::m_verbosity, lldb_private::Options::NotifyOptionParsingStarting(), lldb_private::CommandObject::ParseOptionsAndNotify(), lldb_private::CommandReturnObject::SetError(), lldb_private::DumpValueObjectOptions::SetHideRootName(), lldb_private::CommandReturnObject::SetStatus(), lldb_private::EvaluateExpressionOptions::SetSuppressPersistentResult(), lldb_private::CommandObjectExpression::CommandOptions::ShouldSuppressResult(), lldb_private::CommandObjectExpression::CommandOptions::suppress_persistent_result, lldb_private::toString(), and lldb_private::OptionGroupValueObjectDisplay::use_objc.
|
overridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 51 of file CommandObjectDWIMPrint.cpp.
References m_option_group.
|
inlineoverridevirtual |
Reimplemented from lldb_private::CommandObject.
Definition at line 40 of file CommandObjectDWIMPrint.h.
|
private |
Definition at line 48 of file CommandObjectDWIMPrint.h.
Referenced by CommandObjectDWIMPrint(), and DoExecute().
|
private |
Definition at line 46 of file CommandObjectDWIMPrint.h.
Referenced by CommandObjectDWIMPrint(), and DoExecute().
|
private |
Definition at line 45 of file CommandObjectDWIMPrint.h.
Referenced by CommandObjectDWIMPrint(), DoExecute(), and GetOptions().
|
private |
Definition at line 47 of file CommandObjectDWIMPrint.h.
Referenced by CommandObjectDWIMPrint(), and DoExecute().