summaryrefslogtreecommitdiffstats
path: root/source/Commands
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-12-30 11:55:28 +0000
committerdim <dim@FreeBSD.org>2015-12-30 11:55:28 +0000
commit66b75430a93929d6fc6ed63db14ca28e3ad5b1f6 (patch)
tree9ed5e1a91f242e2cb5911577356e487a55c01b78 /source/Commands
parent23814158e5384f73c6fa951b66d5f807f9c24a2b (diff)
downloadFreeBSD-src-66b75430a93929d6fc6ed63db14ca28e3ad5b1f6.zip
FreeBSD-src-66b75430a93929d6fc6ed63db14ca28e3ad5b1f6.tar.gz
Vendor import of stripped lldb trunk r256633:
https://llvm.org/svn/llvm-project/lldb/trunk@256633
Diffstat (limited to 'source/Commands')
-rw-r--r--source/Commands/CommandObjectApropos.h13
-rw-r--r--source/Commands/CommandObjectArgs.cpp27
-rw-r--r--source/Commands/CommandObjectArgs.h28
-rw-r--r--source/Commands/CommandObjectBreakpoint.cpp232
-rw-r--r--source/Commands/CommandObjectBreakpoint.h5
-rw-r--r--source/Commands/CommandObjectBreakpointCommand.cpp59
-rw-r--r--source/Commands/CommandObjectBreakpointCommand.h8
-rw-r--r--source/Commands/CommandObjectBugreport.cpp2
-rw-r--r--source/Commands/CommandObjectBugreport.h5
-rw-r--r--source/Commands/CommandObjectCommands.cpp171
-rw-r--r--source/Commands/CommandObjectCommands.h6
-rw-r--r--source/Commands/CommandObjectDisassemble.cpp2
-rw-r--r--source/Commands/CommandObjectDisassemble.h30
-rw-r--r--source/Commands/CommandObjectExpression.cpp100
-rw-r--r--source/Commands/CommandObjectExpression.h46
-rw-r--r--source/Commands/CommandObjectFrame.cpp52
-rw-r--r--source/Commands/CommandObjectFrame.h6
-rw-r--r--source/Commands/CommandObjectGUI.h12
-rw-r--r--source/Commands/CommandObjectHelp.h43
-rw-r--r--source/Commands/CommandObjectLanguage.cpp5
-rw-r--r--source/Commands/CommandObjectLanguage.h10
-rw-r--r--source/Commands/CommandObjectLog.cpp41
-rw-r--r--source/Commands/CommandObjectLog.h5
-rw-r--r--source/Commands/CommandObjectMemory.cpp181
-rw-r--r--source/Commands/CommandObjectMemory.h6
-rw-r--r--source/Commands/CommandObjectMultiword.cpp8
-rw-r--r--source/Commands/CommandObjectPlatform.cpp274
-rw-r--r--source/Commands/CommandObjectPlatform.h7
-rw-r--r--source/Commands/CommandObjectPlugin.cpp6
-rw-r--r--source/Commands/CommandObjectPlugin.h6
-rw-r--r--source/Commands/CommandObjectProcess.cpp315
-rw-r--r--source/Commands/CommandObjectProcess.h6
-rw-r--r--source/Commands/CommandObjectQuit.h12
-rw-r--r--source/Commands/CommandObjectRegister.cpp35
-rw-r--r--source/Commands/CommandObjectRegister.h5
-rw-r--r--source/Commands/CommandObjectSettings.cpp134
-rw-r--r--source/Commands/CommandObjectSettings.h6
-rw-r--r--source/Commands/CommandObjectSource.cpp32
-rw-r--r--source/Commands/CommandObjectSource.h6
-rw-r--r--source/Commands/CommandObjectSyntax.h13
-rw-r--r--source/Commands/CommandObjectTarget.cpp332
-rw-r--r--source/Commands/CommandObjectTarget.h7
-rw-r--r--source/Commands/CommandObjectThread.cpp182
-rw-r--r--source/Commands/CommandObjectThread.h6
-rw-r--r--source/Commands/CommandObjectType.cpp2507
-rw-r--r--source/Commands/CommandObjectType.h6
-rw-r--r--source/Commands/CommandObjectVersion.h12
-rw-r--r--source/Commands/CommandObjectWatchpoint.cpp128
-rw-r--r--source/Commands/CommandObjectWatchpoint.h6
-rw-r--r--source/Commands/CommandObjectWatchpointCommand.cpp45
-rw-r--r--source/Commands/CommandObjectWatchpointCommand.h7
51 files changed, 2206 insertions, 2992 deletions
diff --git a/source/Commands/CommandObjectApropos.h b/source/Commands/CommandObjectApropos.h
index f515417..d04620b 100644
--- a/source/Commands/CommandObjectApropos.h
+++ b/source/Commands/CommandObjectApropos.h
@@ -28,17 +28,14 @@ public:
CommandObjectApropos (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectApropos ();
+ ~CommandObjectApropos() override;
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result);
-
-
+ bool
+ DoExecute(Args& command,
+ CommandReturnObject &result) override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectApropos_h_
+#endif // liblldb_CommandObjectApropos_h_
diff --git a/source/Commands/CommandObjectArgs.cpp b/source/Commands/CommandObjectArgs.cpp
index cf32d10..9f22bba 100644
--- a/source/Commands/CommandObjectArgs.cpp
+++ b/source/Commands/CommandObjectArgs.cpp
@@ -17,9 +17,7 @@
#include "lldb/Core/Debugger.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/Value.h"
-#include "lldb/Expression/ClangExpression.h"
-#include "lldb/Expression/ClangExpressionVariable.h"
-#include "lldb/Expression/ClangFunction.h"
+#include "Plugins/ExpressionParser/Clang/ClangExpressionVariable.h"
#include "lldb/Host/Host.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandReturnObject.h"
@@ -148,8 +146,14 @@ CommandObjectArgs::DoExecute (Args& args, CommandReturnObject &result)
result.SetStatus (eReturnStatusFailed);
return false;
}
-
- ClangASTContext &ast_context = thread_module_sp->GetClangASTContext();
+
+ TypeSystem *type_system = thread_module_sp->GetTypeSystemForLanguage(eLanguageTypeC);
+ if (type_system == nullptr)
+ {
+ result.AppendError ("Unable to create C type system.");
+ result.SetStatus (eReturnStatusFailed);
+ return false;
+ }
ValueList value_list;
@@ -158,7 +162,7 @@ CommandObjectArgs::DoExecute (Args& args, CommandReturnObject &result)
const char *arg_type_cstr = args.GetArgumentAtIndex(arg_index);
Value value;
value.SetValueType(Value::eValueTypeScalar);
- ClangASTType clang_type;
+ CompilerType compiler_type;
char *int_pos;
if ((int_pos = strstr (const_cast<char*>(arg_type_cstr), "int")))
@@ -200,10 +204,9 @@ CommandObjectArgs::DoExecute (Args& args, CommandReturnObject &result)
result.SetStatus (eReturnStatusFailed);
return false;
}
+ compiler_type = type_system->GetBuiltinTypeForEncodingAndBitSize(encoding, width);
- clang_type = ast_context.GetBuiltinTypeForEncodingAndBitSize(encoding, width);
-
- if (!clang_type.IsValid())
+ if (!compiler_type.IsValid())
{
result.AppendErrorWithFormat ("Couldn't get Clang type for format %s (%s integer, width %d).\n",
arg_type_cstr,
@@ -217,9 +220,9 @@ CommandObjectArgs::DoExecute (Args& args, CommandReturnObject &result)
else if (strchr (arg_type_cstr, '*'))
{
if (!strcmp (arg_type_cstr, "void*"))
- clang_type = ast_context.GetBasicType(eBasicTypeVoid).GetPointerType();
+ compiler_type = type_system->GetBasicTypeFromAST(eBasicTypeVoid).GetPointerType();
else if (!strcmp (arg_type_cstr, "char*"))
- clang_type = ast_context.GetCStringType (false);
+ compiler_type = type_system->GetBasicTypeFromAST(eBasicTypeChar).GetPointerType();
else
{
result.AppendErrorWithFormat ("Invalid format: %s.\n", arg_type_cstr);
@@ -234,7 +237,7 @@ CommandObjectArgs::DoExecute (Args& args, CommandReturnObject &result)
return false;
}
- value.SetClangType (clang_type);
+ value.SetCompilerType (compiler_type);
value_list.PushValue(value);
}
diff --git a/source/Commands/CommandObjectArgs.h b/source/Commands/CommandObjectArgs.h
index 6691283..4a4e1c3 100644
--- a/source/Commands/CommandObjectArgs.h
+++ b/source/Commands/CommandObjectArgs.h
@@ -16,7 +16,6 @@
// Project includes
#include "lldb/Interpreter/CommandObject.h"
#include "lldb/Interpreter/Options.h"
-#include "lldb/Core/Language.h"
namespace lldb_private {
@@ -30,17 +29,16 @@ namespace lldb_private {
CommandOptions (CommandInterpreter &interpreter);
- virtual
- ~CommandOptions ();
+ ~CommandOptions() override;
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg);
+ Error
+ SetOptionValue(uint32_t option_idx, const char *option_arg) override;
void
- OptionParsingStarting ();
+ OptionParsingStarting() override;
const OptionDefinition*
- GetDefinitions ();
+ GetDefinitions() override;
// Options table: Required for subclasses of Options.
@@ -49,24 +47,20 @@ namespace lldb_private {
CommandObjectArgs (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectArgs ();
+ ~CommandObjectArgs() override;
- virtual
Options *
- GetOptions ();
-
+ GetOptions() override;
protected:
CommandOptions m_options;
- virtual bool
- DoExecute ( Args& command,
- CommandReturnObject &result);
-
+ bool
+ DoExecute(Args& command,
+ CommandReturnObject &result) override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectArgs_h_
+#endif // liblldb_CommandObjectArgs_h_
diff --git a/source/Commands/CommandObjectBreakpoint.cpp b/source/Commands/CommandObjectBreakpoint.cpp
index 162bfb4..bb59e1f 100644
--- a/source/Commands/CommandObjectBreakpoint.cpp
+++ b/source/Commands/CommandObjectBreakpoint.cpp
@@ -26,7 +26,7 @@
#include "lldb/Core/StreamString.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandReturnObject.h"
-#include "lldb/Target/LanguageRuntime.h"
+#include "lldb/Target/Language.h"
#include "lldb/Target/Target.h"
#include "lldb/Interpreter/CommandCompletions.h"
#include "lldb/Target/StackFrame.h"
@@ -77,11 +77,10 @@ public:
}
- virtual
- ~CommandObjectBreakpointSet () {}
+ ~CommandObjectBreakpointSet () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -111,6 +110,7 @@ public:
m_throw_bp (true),
m_hardware (false),
m_exception_language (eLanguageTypeUnknown),
+ m_language (lldb::eLanguageTypeUnknown),
m_skip_prologue (eLazyBoolCalculate),
m_one_shot (false),
m_all_files (false),
@@ -119,11 +119,10 @@ public:
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -164,7 +163,7 @@ public:
case 'E':
{
- LanguageType language = LanguageRuntime::GetLanguageTypeFromString (option_arg);
+ LanguageType language = Language::GetLanguageTypeFromString (option_arg);
switch (language)
{
@@ -249,6 +248,12 @@ public:
break;
}
+ case 'L':
+ m_language = Language::GetLanguageTypeFromString (option_arg);
+ if (m_language == eLanguageTypeUnknown)
+ error.SetErrorStringWithFormat ("Unknown language type: '%s' for breakpoint", option_arg);
+ break;
+
case 'm':
{
bool success;
@@ -349,7 +354,7 @@ public:
return error;
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_condition.clear();
m_filenames.Clear();
@@ -370,6 +375,7 @@ public:
m_throw_bp = true;
m_hardware = false;
m_exception_language = eLanguageTypeUnknown;
+ m_language = lldb::eLanguageTypeUnknown;
m_skip_prologue = eLazyBoolCalculate;
m_one_shot = false;
m_use_dummy = false;
@@ -380,7 +386,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -411,6 +417,7 @@ public:
bool m_throw_bp;
bool m_hardware; // Request to use hardware breakpoints
lldb::LanguageType m_exception_language;
+ lldb::LanguageType m_language;
LazyBool m_skip_prologue;
bool m_one_shot;
bool m_use_dummy;
@@ -421,9 +428,9 @@ public:
};
protected:
- virtual bool
+ bool
DoExecute (Args& command,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_options.m_use_dummy);
@@ -500,11 +507,32 @@ protected:
break;
case eSetTypeAddress: // Breakpoint by address
- bp = target->CreateBreakpoint (m_options.m_load_addr,
- internal,
- m_options.m_hardware).get();
+ {
+ // If a shared library has been specified, make an lldb_private::Address with the library, and
+ // use that. That way the address breakpoint will track the load location of the library.
+ size_t num_modules_specified = m_options.m_modules.GetSize();
+ if (num_modules_specified == 1)
+ {
+ const FileSpec *file_spec = m_options.m_modules.GetFileSpecPointerAtIndex(0);
+ bp = target->CreateAddressInModuleBreakpoint (m_options.m_load_addr,
+ internal,
+ file_spec,
+ m_options.m_hardware).get();
+ }
+ else if (num_modules_specified == 0)
+ {
+ bp = target->CreateBreakpoint (m_options.m_load_addr,
+ internal,
+ m_options.m_hardware).get();
+ }
+ else
+ {
+ result.AppendError("Only one shared library can be specified for address breakpoints.");
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
break;
-
+ }
case eSetTypeFunctionName: // Breakpoint by function name
{
uint32_t name_type_mask = m_options.m_func_name_type_mask;
@@ -516,6 +544,7 @@ protected:
&(m_options.m_filenames),
m_options.m_func_names,
name_type_mask,
+ m_options.m_language,
m_options.m_skip_prologue,
internal,
m_options.m_hardware).get();
@@ -538,6 +567,7 @@ protected:
bp = target->CreateFuncRegexBreakpoint (&(m_options.m_modules),
&(m_options.m_filenames),
regexp,
+ m_options.m_language,
m_options.m_skip_prologue,
internal,
m_options.m_hardware).get();
@@ -709,6 +739,7 @@ private:
#define LLDB_OPT_NOT_10 ( LLDB_OPT_SET_FROM_TO(1, 10) & ~LLDB_OPT_SET_10 )
#define LLDB_OPT_SKIP_PROLOGUE ( LLDB_OPT_SET_1 | LLDB_OPT_SET_FROM_TO(3,8) )
#define LLDB_OPT_MOVE_TO_NEAREST_CODE ( LLDB_OPT_SET_1 | LLDB_OPT_SET_9 )
+#define LLDB_OPT_EXPR_LANGUAGE ( LLDB_OPT_SET_FROM_TO(3, 8) )
OptionDefinition
CommandObjectBreakpointSet::CommandOptions::g_option_table[] =
@@ -756,14 +787,21 @@ CommandObjectBreakpointSet::CommandOptions::g_option_table[] =
// "Set the breakpoint by source location at this particular column."},
{ LLDB_OPT_SET_2, true, "address", 'a', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeAddressOrExpression,
- "Set the breakpoint by address, at the specified address."},
+ "Set the breakpoint at the specified address. "
+ "If the address maps uniquely to a particular "
+ "binary, then the address will be converted to a \"file\" address, so that the breakpoint will track that binary+offset no matter where "
+ "the binary eventually loads. "
+ "Alternately, if you also specify the module - with the -s option - then the address will be treated as "
+ "a file address in that module, and resolved accordingly. Again, this will allow lldb to track that offset on "
+ "subsequent reloads. The module need not have been loaded at the time you specify this breakpoint, and will "
+ "get resolved when the module is loaded."},
{ LLDB_OPT_SET_3, true, "name", 'n', OptionParser::eRequiredArgument, NULL, NULL, CommandCompletions::eSymbolCompletion, eArgTypeFunctionName,
"Set the breakpoint by function name. Can be repeated multiple times to make one breakpoint for multiple names" },
{ LLDB_OPT_SET_4, true, "fullname", 'F', OptionParser::eRequiredArgument, NULL, NULL, CommandCompletions::eSymbolCompletion, eArgTypeFullName,
"Set the breakpoint by fully qualified function names. For C++ this means namespaces and all arguments, and "
- "for Objective C this means a full function prototype with class and selector. "
+ "for Objective C this means a full function prototype with class and selector. "
"Can be repeated multiple times to make one breakpoint for multiple names." },
{ LLDB_OPT_SET_5, true, "selector", 'S', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeSelector,
@@ -800,6 +838,9 @@ CommandObjectBreakpointSet::CommandOptions::g_option_table[] =
// { LLDB_OPT_SET_10, false, "exception-typename", 'O', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeTypeName,
// "The breakpoint will only stop if an exception Object of this type is thrown. Can be repeated multiple times to stop for multiple object types" },
+ { LLDB_OPT_EXPR_LANGUAGE, false, "language", 'L', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage,
+ "Specifies the Language to use when interpreting the breakpoint's expression (note: currently only implemented for setting breakpoints on identifiers). If not set the target.language setting is used." },
+
{ LLDB_OPT_SKIP_PROLOGUE, false, "skip-prologue", 'K', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeBoolean,
"sKip the prologue if the breakpoint is at the beginning of a function. If not set the target.skip-prologue setting is used." },
@@ -840,11 +881,10 @@ public:
}
- virtual
- ~CommandObjectBreakpointModify () {}
+ ~CommandObjectBreakpointModify () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -874,11 +914,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -979,7 +1018,7 @@ public:
return error;
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_ignore_count = 0;
m_thread_id = LLDB_INVALID_THREAD_ID;
@@ -999,7 +1038,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1031,8 +1070,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_options.m_use_dummy);
if (target == NULL)
@@ -1159,12 +1198,11 @@ public:
}
- virtual
- ~CommandObjectBreakpointEnable () {}
+ ~CommandObjectBreakpointEnable () override {}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget();
if (target == NULL)
@@ -1279,12 +1317,11 @@ the second re-enables the first location."
}
- virtual
- ~CommandObjectBreakpointDisable () {}
+ ~CommandObjectBreakpointDisable () override {}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget();
if (target == NULL)
@@ -1389,11 +1426,10 @@ public:
}
- virtual
- ~CommandObjectBreakpointList () {}
+ ~CommandObjectBreakpointList () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -1409,11 +1445,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1444,7 +1479,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_level = lldb::eDescriptionLevelFull;
m_internal = false;
@@ -1452,7 +1487,7 @@ public:
}
const OptionDefinition *
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1470,8 +1505,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_options.m_use_dummy);
@@ -1586,11 +1621,10 @@ public:
{
}
- virtual
- ~CommandObjectBreakpointClear () {}
+ ~CommandObjectBreakpointClear () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -1606,11 +1640,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1634,14 +1667,14 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_filename.clear();
m_line_num = 0;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1658,8 +1691,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget();
if (target == NULL)
@@ -1786,11 +1819,10 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectBreakpointDelete () {}
+ ~CommandObjectBreakpointDelete () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -1806,11 +1838,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1834,14 +1865,14 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_use_dummy = false;
m_force = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1856,8 +1887,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_options.m_use_dummy);
@@ -1976,27 +2007,26 @@ public:
}
- virtual
- ~BreakpointNameOptionGroup ()
+ ~BreakpointNameOptionGroup () override
{
}
- virtual uint32_t
- GetNumDefinitions ()
+ uint32_t
+ GetNumDefinitions () override
{
return sizeof (g_breakpoint_name_options) / sizeof (OptionDefinition);
}
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_breakpoint_name_options;
}
- virtual Error
+ Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_value)
+ const char *option_value) override
{
Error error;
const int short_option = g_breakpoint_name_options[option_idx].short_option;
@@ -2024,8 +2054,8 @@ public:
return error;
}
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
m_name.Clear();
m_breakpoint.Clear();
@@ -2062,18 +2092,17 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectBreakpointNameAdd () {}
+ ~CommandObjectBreakpointNameAdd () override {}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
if (!m_name_options.m_name.OptionWasSet())
{
@@ -2158,18 +2187,17 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectBreakpointNameDelete () {}
+ ~CommandObjectBreakpointNameDelete () override {}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
if (!m_name_options.m_name.OptionWasSet())
{
@@ -2243,18 +2271,17 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectBreakpointNameList () {}
+ ~CommandObjectBreakpointNameList () override {}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_name_options.m_use_dummy.GetCurrentValue());
@@ -2339,8 +2366,7 @@ public:
}
- virtual
- ~CommandObjectBreakpointName ()
+ ~CommandObjectBreakpointName () override
{
}
diff --git a/source/Commands/CommandObjectBreakpoint.h b/source/Commands/CommandObjectBreakpoint.h
index 3fdd2a5..123e823 100644
--- a/source/Commands/CommandObjectBreakpoint.h
+++ b/source/Commands/CommandObjectBreakpoint.h
@@ -34,8 +34,7 @@ class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword
public:
CommandObjectMultiwordBreakpoint (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordBreakpoint ();
+ ~CommandObjectMultiwordBreakpoint() override;
static void
VerifyBreakpointOrLocationIDs (Args &args, Target *target, CommandReturnObject &result, BreakpointIDList *valid_ids)
@@ -56,4 +55,4 @@ private:
} // namespace lldb_private
-#endif // liblldb_CommandObjectBreakpoint_h_
+#endif // liblldb_CommandObjectBreakpoint_h_
diff --git a/source/Commands/CommandObjectBreakpointCommand.cpp b/source/Commands/CommandObjectBreakpointCommand.cpp
index ac9c9a6..7b58bf9 100644
--- a/source/Commands/CommandObjectBreakpointCommand.cpp
+++ b/source/Commands/CommandObjectBreakpointCommand.cpp
@@ -178,17 +178,16 @@ are no syntax errors may indicate that a function was declared but never called.
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectBreakpointCommandAdd () {}
+ ~CommandObjectBreakpointCommandAdd () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
- virtual void
- IOHandlerActivated (IOHandler &io_handler)
+ void
+ IOHandlerActivated (IOHandler &io_handler) override
{
StreamFileSP output_sp(io_handler.GetOutputStreamFile());
if (output_sp)
@@ -199,8 +198,8 @@ are no syntax errors may indicate that a function was declared but never called.
}
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler, std::string &line)
+ void
+ IOHandlerInputComplete (IOHandler &io_handler, std::string &line) override
{
io_handler.SetIsDone(true);
@@ -315,11 +314,10 @@ are no syntax errors may indicate that a function was declared but never called.
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -374,7 +372,7 @@ are no syntax errors may indicate that a function was declared but never called.
return error;
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_use_commands = true;
m_use_script_language = false;
@@ -388,7 +386,7 @@ are no syntax errors may indicate that a function was declared but never called.
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -412,8 +410,8 @@ are no syntax errors may indicate that a function was declared but never called.
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_options.m_use_dummy);
@@ -596,11 +594,10 @@ public:
}
- virtual
- ~CommandObjectBreakpointCommandDelete () {}
+ ~CommandObjectBreakpointCommandDelete () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -615,11 +612,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -639,13 +635,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_use_dummy = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -659,8 +655,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget(m_options.m_use_dummy);
@@ -764,13 +760,12 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectBreakpointCommandList () {}
+ ~CommandObjectBreakpointCommandList () override {}
protected:
- virtual bool
+ bool
DoExecute (Args& command,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
diff --git a/source/Commands/CommandObjectBreakpointCommand.h b/source/Commands/CommandObjectBreakpointCommand.h
index e917907..94afc78 100644
--- a/source/Commands/CommandObjectBreakpointCommand.h
+++ b/source/Commands/CommandObjectBreakpointCommand.h
@@ -13,7 +13,6 @@
// C Includes
// C++ Includes
-
// Other libraries and framework includes
// Project includes
@@ -23,7 +22,6 @@
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Interpreter/CommandObjectMultiword.h"
-
namespace lldb_private {
//-------------------------------------------------------------------------
@@ -35,11 +33,9 @@ class CommandObjectBreakpointCommand : public CommandObjectMultiword
public:
CommandObjectBreakpointCommand (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectBreakpointCommand ();
-
+ ~CommandObjectBreakpointCommand() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectBreakpointCommand_h_
+#endif // liblldb_CommandObjectBreakpointCommand_h_
diff --git a/source/Commands/CommandObjectBugreport.cpp b/source/Commands/CommandObjectBugreport.cpp
index f171d2f..3d00cb8 100644
--- a/source/Commands/CommandObjectBugreport.cpp
+++ b/source/Commands/CommandObjectBugreport.cpp
@@ -43,7 +43,7 @@ public:
m_option_group.Finalize();
}
- ~CommandObjectBugreportUnwind()
+ ~CommandObjectBugreportUnwind() override
{
}
diff --git a/source/Commands/CommandObjectBugreport.h b/source/Commands/CommandObjectBugreport.h
index d062e0d..3adde51 100644
--- a/source/Commands/CommandObjectBugreport.h
+++ b/source/Commands/CommandObjectBugreport.h
@@ -27,10 +27,9 @@ class CommandObjectMultiwordBugreport : public CommandObjectMultiword
public:
CommandObjectMultiwordBugreport(CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordBugreport();
+ ~CommandObjectMultiwordBugreport() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectBugreport_h_
+#endif // liblldb_CommandObjectBugreport_h_
diff --git a/source/Commands/CommandObjectCommands.cpp b/source/Commands/CommandObjectCommands.cpp
index f56d089..e859b5d 100644
--- a/source/Commands/CommandObjectCommands.cpp
+++ b/source/Commands/CommandObjectCommands.cpp
@@ -47,10 +47,10 @@ public:
{
}
- ~CommandObjectCommandsHistory () {}
+ ~CommandObjectCommandsHistory () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -70,11 +70,10 @@ protected:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -109,7 +108,7 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_start_idx.Clear();
m_stop_idx.Clear();
@@ -118,7 +117,7 @@ protected:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -136,7 +135,7 @@ protected:
};
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
if (m_options.m_clear.GetCurrentValue() && m_options.m_clear.OptionWasSet())
{
@@ -259,15 +258,15 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectCommandsSource () {}
+ ~CommandObjectCommandsSource () override {}
- virtual const char*
- GetRepeatCommand (Args &current_command_args, uint32_t index)
+ const char*
+ GetRepeatCommand (Args &current_command_args, uint32_t index) override
{
return "";
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -275,7 +274,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -291,8 +290,8 @@ public:
return matches.GetSize();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -311,11 +310,10 @@ protected:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -343,7 +341,7 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_stop_on_error.Clear();
m_silent_run.Clear();
@@ -351,7 +349,7 @@ protected:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -368,7 +366,7 @@ protected:
};
bool
- DoExecute(Args& command, CommandReturnObject &result)
+ DoExecute(Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
if (argc == 1)
@@ -553,13 +551,13 @@ rather than using a positional placeholder:" R"(
m_arguments.push_back (arg3);
}
- ~CommandObjectCommandsAlias ()
+ ~CommandObjectCommandsAlias () override
{
}
protected:
- virtual bool
- DoExecute (const char *raw_command_line, CommandReturnObject &result)
+ bool
+ DoExecute (const char *raw_command_line, CommandReturnObject &result) override
{
Args args (raw_command_line);
std::string raw_command_string (raw_command_line);
@@ -820,13 +818,13 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectCommandsUnalias()
+ ~CommandObjectCommandsUnalias() override
{
}
protected:
bool
- DoExecute (Args& args, CommandReturnObject &result)
+ DoExecute (Args& args, CommandReturnObject &result) override
{
CommandObject::CommandMap::iterator pos;
CommandObject *cmd_obj;
@@ -913,13 +911,13 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectCommandsDelete()
+ ~CommandObjectCommandsDelete() override
{
}
protected:
bool
- DoExecute (Args& args, CommandReturnObject &result)
+ DoExecute (Args& args, CommandReturnObject &result) override
{
CommandObject::CommandMap::iterator pos;
@@ -1000,7 +998,7 @@ a number follows 'f':" R"(
);
}
- ~CommandObjectCommandsAddRegex()
+ ~CommandObjectCommandsAddRegex() override
{
}
@@ -1250,11 +1248,10 @@ private:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1277,14 +1274,14 @@ private:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_help.clear();
m_syntax.clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1363,13 +1360,12 @@ public:
}
}
- virtual
- ~CommandObjectPythonFunction ()
+ ~CommandObjectPythonFunction () override
{
}
- virtual bool
- IsRemovable () const
+ bool
+ IsRemovable () const override
{
return true;
}
@@ -1386,8 +1382,8 @@ public:
return m_synchro;
}
- virtual const char *
- GetHelpLong ()
+ const char *
+ GetHelpLong () override
{
if (!m_fetched_help_long)
{
@@ -1404,8 +1400,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *raw_command_line, CommandReturnObject &result)
+ bool
+ DoExecute (const char *raw_command_line, CommandReturnObject &result) override
{
ScriptInterpreter* scripter = m_interpreter.GetScriptInterpreter();
@@ -1470,13 +1466,12 @@ public:
GetFlags().Set(scripter->GetFlagsForCommandObject(cmd_obj_sp));
}
- virtual
- ~CommandObjectScriptingObject ()
+ ~CommandObjectScriptingObject () override
{
}
- virtual bool
- IsRemovable () const
+ bool
+ IsRemovable () const override
{
return true;
}
@@ -1493,8 +1488,8 @@ public:
return m_synchro;
}
- virtual const char *
- GetHelp ()
+ const char *
+ GetHelp () override
{
if (!m_fetched_help_short)
{
@@ -1510,8 +1505,8 @@ public:
return CommandObjectRaw::GetHelp();
}
- virtual const char *
- GetHelpLong ()
+ const char *
+ GetHelpLong () override
{
if (!m_fetched_help_long)
{
@@ -1528,8 +1523,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *raw_command_line, CommandReturnObject &result)
+ bool
+ DoExecute (const char *raw_command_line, CommandReturnObject &result) override
{
ScriptInterpreter* scripter = m_interpreter.GetScriptInterpreter();
@@ -1592,11 +1587,11 @@ public:
m_arguments.push_back (arg1);
}
- ~CommandObjectCommandsScriptImport ()
+ ~CommandObjectCommandsScriptImport () override
{
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -1604,7 +1599,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -1620,8 +1615,8 @@ public:
return matches.GetSize();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -1637,11 +1632,10 @@ protected:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1660,13 +1654,13 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_allow_reload = true;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1681,7 +1675,7 @@ protected:
};
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
if (m_interpreter.GetDebugger().GetScriptLanguage() != lldb::eScriptLanguagePython)
{
@@ -1772,12 +1766,12 @@ public:
m_arguments.push_back (arg1);
}
- ~CommandObjectCommandsScriptAdd ()
+ ~CommandObjectCommandsScriptAdd () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -1797,11 +1791,10 @@ protected:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1834,7 +1827,7 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_class_name.clear();
m_funct_name.clear();
@@ -1843,7 +1836,7 @@ protected:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1860,8 +1853,8 @@ protected:
ScriptedCommandSynchronicity m_synchronicity;
};
- virtual void
- IOHandlerActivated (IOHandler &io_handler)
+ void
+ IOHandlerActivated (IOHandler &io_handler) override
{
StreamFileSP output_sp(io_handler.GetOutputStreamFile());
if (output_sp)
@@ -1872,8 +1865,8 @@ protected:
}
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler, std::string &data)
+ void
+ IOHandlerInputComplete (IOHandler &io_handler, std::string &data) override
{
StreamFileSP error_sp = io_handler.GetErrorStreamFile();
@@ -1935,7 +1928,7 @@ protected:
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
if (m_interpreter.GetDebugger().GetScriptLanguage() != lldb::eScriptLanguagePython)
@@ -2064,12 +2057,12 @@ public:
{
}
- ~CommandObjectCommandsScriptList ()
+ ~CommandObjectCommandsScriptList () override
{
}
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
m_interpreter.GetHelp(result,
@@ -2100,13 +2093,13 @@ public:
{
}
- ~CommandObjectCommandsScriptClear ()
+ ~CommandObjectCommandsScriptClear () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
m_interpreter.RemoveAllUser();
@@ -2144,13 +2137,13 @@ public:
m_arguments.push_back (arg1);
}
- ~CommandObjectCommandsScriptDelete ()
+ ~CommandObjectCommandsScriptDelete () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
size_t argc = command.GetArgumentCount();
@@ -2202,7 +2195,7 @@ public:
LoadSubCommand ("import", CommandObjectSP (new CommandObjectCommandsScriptImport (interpreter)));
}
- ~CommandObjectMultiwordCommandsScript ()
+ ~CommandObjectMultiwordCommandsScript () override
{
}
diff --git a/source/Commands/CommandObjectCommands.h b/source/Commands/CommandObjectCommands.h
index 8a56e8d..c12c710 100644
--- a/source/Commands/CommandObjectCommands.h
+++ b/source/Commands/CommandObjectCommands.h
@@ -30,11 +30,9 @@ public:
CommandObjectMultiwordCommands (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordCommands ();
-
+ ~CommandObjectMultiwordCommands() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectCommands_h_
+#endif // liblldb_CommandObjectCommands_h_
diff --git a/source/Commands/CommandObjectDisassemble.cpp b/source/Commands/CommandObjectDisassemble.cpp
index 1e575fe..100d869 100644
--- a/source/Commands/CommandObjectDisassemble.cpp
+++ b/source/Commands/CommandObjectDisassemble.cpp
@@ -289,7 +289,7 @@ CommandObjectDisassemble::DoExecute (Args& command, CommandReturnObject &result)
if (!m_options.arch.IsValid())
{
- result.AppendError ("use the --arch option or set the target architecure to disassemble");
+ result.AppendError ("use the --arch option or set the target architecture to disassemble");
result.SetStatus (eReturnStatusFailed);
return false;
}
diff --git a/source/Commands/CommandObjectDisassemble.h b/source/Commands/CommandObjectDisassemble.h
index 7a75098..d892824 100644
--- a/source/Commands/CommandObjectDisassemble.h
+++ b/source/Commands/CommandObjectDisassemble.h
@@ -33,17 +33,16 @@ public:
CommandOptions (CommandInterpreter &interpreter);
- virtual
- ~CommandOptions ();
+ ~CommandOptions() override;
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg);
+ Error
+ SetOptionValue(uint32_t option_idx, const char *option_arg) override;
void
- OptionParsingStarting ();
+ OptionParsingStarting() override;
const OptionDefinition*
- GetDefinitions ();
+ GetDefinitions() override;
const char *
GetPluginName ()
@@ -61,8 +60,8 @@ public:
return flavor_string.c_str();
}
- virtual Error
- OptionParsingFinished ();
+ Error
+ OptionParsingFinished() override;
bool show_mixed; // Show mixed source/assembly
bool show_bytes;
@@ -86,25 +85,22 @@ public:
CommandObjectDisassemble (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectDisassemble ();
+ ~CommandObjectDisassemble() override;
- virtual
Options *
- GetOptions ()
+ GetOptions() override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result);
+ bool
+ DoExecute(Args& command,
+ CommandReturnObject &result) override;
CommandOptions m_options;
-
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectDisassemble_h_
+#endif // liblldb_CommandObjectDisassemble_h_
diff --git a/source/Commands/CommandObjectExpression.cpp b/source/Commands/CommandObjectExpression.cpp
index 1be17a0..7f0b03b 100644
--- a/source/Commands/CommandObjectExpression.cpp
+++ b/source/Commands/CommandObjectExpression.cpp
@@ -16,16 +16,16 @@
#include "lldb/Core/Value.h"
#include "lldb/Core/ValueObjectVariable.h"
#include "lldb/DataFormatters/ValueObjectPrinter.h"
-#include "lldb/Expression/ClangExpressionVariable.h"
-#include "lldb/Expression/ClangUserExpression.h"
-#include "lldb/Expression/ClangFunction.h"
+#include "Plugins/ExpressionParser/Clang/ClangExpressionVariable.h"
+#include "lldb/Expression/UserExpression.h"
#include "lldb/Expression/DWARFExpression.h"
+#include "lldb/Expression/REPL.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/StringConvert.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandReturnObject.h"
-#include "lldb/Target/ObjCLanguageRuntime.h"
+#include "lldb/Target/Language.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/Variable.h"
#include "lldb/Target/Process.h"
@@ -63,6 +63,7 @@ CommandObjectExpression::CommandOptions::g_option_table[] =
{ LLDB_OPT_SET_1 | LLDB_OPT_SET_2, false, "timeout", 't', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeUnsignedInteger, "Timeout value (in microseconds) for running the expression."},
{ LLDB_OPT_SET_1 | LLDB_OPT_SET_2, false, "unwind-on-error", 'u', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeBoolean, "Clean up program state if the expression causes a crash, or raises a signal. Note, unlike gdb hitting a breakpoint is controlled by another option (-i)."},
{ LLDB_OPT_SET_1 | LLDB_OPT_SET_2, false, "debug", 'g', OptionParser::eNoArgument , NULL, NULL, 0, eArgTypeNone, "When specified, debug the JIT code by setting a breakpoint on the first instruction and forcing breakpoints to not be ignored (-i0) and no unwinding to happen on error (-u0)."},
+ { LLDB_OPT_SET_1 | LLDB_OPT_SET_2, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Specifies the Language to use when parsing the expression. If not set the target.language setting is used." },
{ LLDB_OPT_SET_1, false, "description-verbosity", 'v', OptionParser::eOptionalArgument, NULL, g_description_verbosity_type, 0, eArgTypeDescriptionVerbosity, "How verbose should the output of this expression be, if the object description is asked for."},
};
@@ -84,12 +85,11 @@ CommandObjectExpression::CommandOptions::SetOptionValue (CommandInterpreter &int
switch (short_option)
{
- //case 'l':
- //if (language.SetLanguageFromCString (option_arg) == false)
- //{
- // error.SetErrorStringWithFormat("invalid language option argument '%s'", option_arg);
- //}
- //break;
+ case 'l':
+ language = Language::GetLanguageTypeFromString (option_arg);
+ if (language == eLanguageTypeUnknown)
+ error.SetErrorStringWithFormat ("unknown language type: '%s' for expression", option_arg);
+ break;
case 'a':
{
@@ -180,6 +180,7 @@ CommandObjectExpression::CommandOptions::OptionParsingStarting (CommandInterpret
try_all_threads = true;
timeout = 0;
debug = false;
+ language = eLanguageTypeUnknown;
m_verbosity = eLanguageRuntimeDescriptionDisplayVerbosityCompact;
}
@@ -192,12 +193,13 @@ CommandObjectExpression::CommandOptions::GetDefinitions ()
CommandObjectExpression::CommandObjectExpression (CommandInterpreter &interpreter) :
CommandObjectRaw (interpreter,
"expression",
- "Evaluate a C/ObjC/C++ expression in the current program context, using user defined variables and variables currently in scope.",
+ "Evaluate an expression in the current program context, using user defined variables and variables currently in scope.",
NULL,
eCommandProcessMustBePaused | eCommandTryTargetAPILock),
IOHandlerDelegate (IOHandlerDelegate::Completion::Expression),
m_option_group (interpreter),
m_format_options (eFormatDefault),
+ m_repl_option (LLDB_OPT_SET_1, false, "repl", 'r', "Drop into REPL", false, true),
m_command_options (),
m_expr_line_count (0),
m_expr_lines ()
@@ -253,6 +255,7 @@ Examples:
m_option_group.Append (&m_format_options, OptionGroupFormat::OPTION_GROUP_FORMAT | OptionGroupFormat::OPTION_GROUP_GDB_FMT, LLDB_OPT_SET_1);
m_option_group.Append (&m_command_options);
m_option_group.Append (&m_varobj_options, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1 | LLDB_OPT_SET_2);
+ m_option_group.Append (&m_repl_option, LLDB_OPT_SET_ALL, LLDB_OPT_SET_3);
m_option_group.Finalize();
}
@@ -288,8 +291,8 @@ CommandObjectExpression::EvaluateExpression
if (target)
{
lldb::ValueObjectSP result_valobj_sp;
-
bool keep_in_memory = true;
+ StackFrame *frame = exe_ctx.GetFramePtr();
EvaluateExpressionOptions options;
options.SetCoerceToId(m_varobj_options.use_objc);
@@ -299,7 +302,8 @@ CommandObjectExpression::EvaluateExpression
options.SetUseDynamic(m_varobj_options.use_dynamic);
options.SetTryAllThreads(m_command_options.try_all_threads);
options.SetDebug(m_command_options.debug);
-
+ options.SetLanguage(m_command_options.language);
+
// If there is any chance we are going to stop and want to see
// what went wrong with our expression, we should generate debug info
if (!m_command_options.ignore_breakpoints ||
@@ -311,8 +315,7 @@ CommandObjectExpression::EvaluateExpression
else
options.SetTimeoutUsec(0);
- target->EvaluateExpression(expr, exe_ctx.GetFramePtr(),
- result_valobj_sp, options);
+ target->EvaluateExpression(expr, frame, result_valobj_sp, options);
if (result_valobj_sp)
{
@@ -326,6 +329,7 @@ CommandObjectExpression::EvaluateExpression
result_valobj_sp->SetFormat (format);
DumpValueObjectOptions options(m_varobj_options.GetAsDumpOptions(m_command_options.m_verbosity,format));
+ options.SetVariableFormatDisplayLanguage(result_valobj_sp->GetPreferredDisplayLanguage());
result_valobj_sp->Dump(*output_stream,options);
@@ -335,7 +339,7 @@ CommandObjectExpression::EvaluateExpression
}
else
{
- if (result_valobj_sp->GetError().GetError() == ClangUserExpression::kNoResult)
+ if (result_valobj_sp->GetError().GetError() == UserExpression::kNoResult)
{
if (format != eFormatVoid && m_interpreter.GetDebugger().GetNotifyVoid())
{
@@ -501,8 +505,70 @@ CommandObjectExpression::DoExecute
return false;
}
+ if (m_repl_option.GetOptionValue().GetCurrentValue())
+ {
+ Target *target = m_interpreter.GetExecutionContext().GetTargetPtr();
+ if (target)
+ {
+ // Drop into REPL
+ m_expr_lines.clear();
+ m_expr_line_count = 0;
+
+ Debugger &debugger = target->GetDebugger();
+
+ // Check if the LLDB command interpreter is sitting on top of a REPL that
+ // launched it...
+ if (debugger.CheckTopIOHandlerTypes(IOHandler::Type::CommandInterpreter, IOHandler::Type::REPL))
+ {
+ // the LLDB command interpreter is sitting on top of a REPL that launched it,
+ // so just say the command interpreter is done and fall back to the existing REPL
+ m_interpreter.GetIOHandler(false)->SetIsDone(true);
+ }
+ else
+ {
+ // We are launching the REPL on top of the current LLDB command interpreter,
+ // so just push one
+ bool initialize = false;
+ Error repl_error;
+ REPLSP repl_sp (target->GetREPL(repl_error, m_command_options.language, nullptr, false));
+
+ if (!repl_sp)
+ {
+ initialize = true;
+ repl_sp = target->GetREPL(repl_error, m_command_options.language, nullptr, true);
+ if (!repl_error.Success())
+ {
+ result.SetError(repl_error);
+ return result.Succeeded();
+ }
+ }
+
+ if (repl_sp)
+ {
+ if (initialize)
+ {
+ repl_sp->SetCommandOptions(m_command_options);
+ repl_sp->SetFormatOptions(m_format_options);
+ repl_sp->SetValueObjectDisplayOptions(m_varobj_options);
+ }
+
+ IOHandlerSP io_handler_sp (repl_sp->GetIOHandler());
+
+ io_handler_sp->SetIsDone(false);
+
+ debugger.PushIOHandler(io_handler_sp);
+ }
+ else
+ {
+ repl_error.SetErrorStringWithFormat("Couldn't create a REPL for %s", Language::GetNameForLanguageType(m_command_options.language));
+ result.SetError(repl_error);
+ return result.Succeeded();
+ }
+ }
+ }
+ }
// No expression following options
- if (expr == NULL || expr[0] == '\0')
+ else if (expr == NULL || expr[0] == '\0')
{
GetMultilineExpression ();
return result.Succeeded();
diff --git a/source/Commands/CommandObjectExpression.h b/source/Commands/CommandObjectExpression.h
index 168140d..7103675 100644
--- a/source/Commands/CommandObjectExpression.h
+++ b/source/Commands/CommandObjectExpression.h
@@ -16,6 +16,7 @@
// Project includes
#include "lldb/Core/IOHandler.h"
#include "lldb/Interpreter/CommandObject.h"
+#include "lldb/Interpreter/OptionGroupBoolean.h"
#include "lldb/Interpreter/OptionGroupFormat.h"
#include "lldb/Interpreter/OptionGroupValueObjectDisplay.h"
#include "lldb/Target/ExecutionContext.h"
@@ -34,22 +35,21 @@ public:
CommandOptions ();
- virtual
- ~CommandOptions ();
+ ~CommandOptions() override;
- virtual uint32_t
- GetNumDefinitions ();
+ uint32_t
+ GetNumDefinitions() override;
- virtual const OptionDefinition*
- GetDefinitions ();
+ const OptionDefinition*
+ GetDefinitions() override;
- virtual Error
- SetOptionValue (CommandInterpreter &interpreter,
- uint32_t option_idx,
- const char *option_value);
+ Error
+ SetOptionValue(CommandInterpreter &interpreter,
+ uint32_t option_idx,
+ const char *option_value) override;
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter);
+ void
+ OptionParsingStarting(CommandInterpreter &interpreter) override;
// Options table: Required for subclasses of Options.
@@ -61,35 +61,34 @@ public:
bool debug;
uint32_t timeout;
bool try_all_threads;
+ lldb::LanguageType language;
LanguageRuntimeDescriptionDisplayVerbosity m_verbosity;
};
CommandObjectExpression (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectExpression ();
+ ~CommandObjectExpression() override;
- virtual
Options *
- GetOptions ();
+ GetOptions() override;
protected:
//------------------------------------------------------------------
// IOHandler::Delegate functions
//------------------------------------------------------------------
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler,
- std::string &line);
+ void
+ IOHandlerInputComplete(IOHandler &io_handler,
+ std::string &line) override;
virtual LineStatus
IOHandlerLinesUpdated (IOHandler &io_handler,
StringList &lines,
uint32_t line_idx,
Error &error);
- virtual bool
- DoExecute (const char *command,
- CommandReturnObject &result);
+ bool
+ DoExecute(const char *command,
+ CommandReturnObject &result) override;
bool
EvaluateExpression (const char *expr,
@@ -103,6 +102,7 @@ protected:
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; // Multi-line expression support
@@ -110,4 +110,4 @@ protected:
} // namespace lldb_private
-#endif // liblldb_CommandObjectExpression_h_
+#endif // liblldb_CommandObjectExpression_h_
diff --git a/source/Commands/CommandObjectFrame.cpp b/source/Commands/CommandObjectFrame.cpp
index d8b65e3..9477b50 100644
--- a/source/Commands/CommandObjectFrame.cpp
+++ b/source/Commands/CommandObjectFrame.cpp
@@ -33,8 +33,9 @@
#include "lldb/Interpreter/OptionGroupFormat.h"
#include "lldb/Interpreter/OptionGroupValueObjectDisplay.h"
#include "lldb/Interpreter/OptionGroupVariable.h"
-#include "lldb/Symbol/ClangASTType.h"
+#include "lldb/Symbol/CompilerType.h"
#include "lldb/Symbol/ClangASTContext.h"
+#include "lldb/Symbol/Function.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolContext.h"
#include "lldb/Symbol/Type.h"
@@ -70,13 +71,13 @@ public:
{
}
- ~CommandObjectFrameInfo ()
+ ~CommandObjectFrameInfo () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
m_exe_ctx.GetFrameRef().DumpUsingSettingsFormat (&result.GetOutputStream());
result.SetStatus (eReturnStatusSuccessFinishResult);
@@ -104,13 +105,12 @@ public:
OptionParsingStarting ();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
bool success = false;
@@ -132,13 +132,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
relative_frame_offset = INT32_MIN;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -174,13 +174,12 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectFrameSelect ()
+ ~CommandObjectFrameSelect () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -188,7 +187,7 @@ public:
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
// No need to check "thread" for validity as eCommandRequiresThread ensures it is valid
Thread *thread = m_exe_ctx.GetThreadPtr();
@@ -263,8 +262,10 @@ protected:
}
else
{
- result.AppendError ("invalid arguments.\n");
+ result.AppendErrorWithFormat ("too many arguments; expected frame-index, saw '%s'.\n",
+ command.GetArgumentAtIndex(0));
m_options.GenerateOptionUsage (result.GetErrorStream(), this);
+ return false;
}
}
@@ -341,20 +342,18 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectFrameVariable ()
+ ~CommandObjectFrameVariable () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -362,7 +361,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
// Arguments are the standard source file completer.
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
@@ -380,8 +379,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
// No need to check "frame" for validity as eCommandRequiresFrame ensures it is valid
StackFrame *frame = m_exe_ctx.GetFramePtr();
@@ -409,6 +408,10 @@ protected:
DumpValueObjectOptions options(m_varobj_options.GetAsDumpOptions(eLanguageRuntimeDescriptionDisplayVerbosityFull,eFormatDefault,summary_format_sp));
+ const SymbolContext& sym_ctx = frame->GetSymbolContext(eSymbolContextFunction);
+ if (sym_ctx.function && sym_ctx.function->IsTopLevelFunction())
+ m_option_variable.show_globals = true;
+
if (variable_list)
{
const Format format = m_option_format.GetFormat();
@@ -477,7 +480,8 @@ protected:
{
Error error;
uint32_t expr_path_options = StackFrame::eExpressionPathOptionCheckPtrVsMember |
- StackFrame::eExpressionPathOptionsAllowDirectIVarAccess;
+ StackFrame::eExpressionPathOptionsAllowDirectIVarAccess |
+ StackFrame::eExpressionPathOptionsInspectAnonymousUnions;
lldb::VariableSP var_sp;
valobj_sp = frame->GetValueForVariableExpressionPath (name_cstr,
m_varobj_options.use_dynamic,
@@ -495,6 +499,7 @@ protected:
}
options.SetFormat(format);
+ options.SetVariableFormatDisplayLanguage(valobj_sp->GetPreferredDisplayLanguage());
Stream &output_stream = result.GetOutputStream();
options.SetRootValueObjectName(valobj_sp->GetParent() ? name_cstr : NULL);
@@ -581,6 +586,7 @@ protected:
}
options.SetFormat(format);
+ options.SetVariableFormatDisplayLanguage(valobj_sp->GetPreferredDisplayLanguage());
options.SetRootValueObjectName(name_cstr);
valobj_sp->Dump(result.GetOutputStream(),options);
}
diff --git a/source/Commands/CommandObjectFrame.h b/source/Commands/CommandObjectFrame.h
index ea7c808..a729880 100644
--- a/source/Commands/CommandObjectFrame.h
+++ b/source/Commands/CommandObjectFrame.h
@@ -30,11 +30,9 @@ public:
CommandObjectMultiwordFrame (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordFrame ();
-
+ ~CommandObjectMultiwordFrame() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectFrame_h_
+#endif // liblldb_CommandObjectFrame_h_
diff --git a/source/Commands/CommandObjectGUI.h b/source/Commands/CommandObjectGUI.h
index 72ddb96..494bcc4 100644
--- a/source/Commands/CommandObjectGUI.h
+++ b/source/Commands/CommandObjectGUI.h
@@ -28,16 +28,14 @@ public:
CommandObjectGUI (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectGUI ();
+ ~CommandObjectGUI() override;
protected:
- virtual bool
- DoExecute (Args& args,
- CommandReturnObject &result);
-
+ bool
+ DoExecute(Args& args,
+ CommandReturnObject &result) override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectGUI_h_
+#endif // liblldb_CommandObjectGUI_h_
diff --git a/source/Commands/CommandObjectHelp.h b/source/Commands/CommandObjectHelp.h
index 7db659c..1dd7b9b 100644
--- a/source/Commands/CommandObjectHelp.h
+++ b/source/Commands/CommandObjectHelp.h
@@ -29,17 +29,16 @@ public:
CommandObjectHelp (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectHelp ();
+ ~CommandObjectHelp() override;
- virtual int
- HandleCompletion (Args &input,
- int &cursor_index,
- int &cursor_char_position,
- int match_start_point,
- int max_return_elements,
- bool &word_complete,
- StringList &matches);
+ int
+ HandleCompletion(Args &input,
+ int &cursor_index,
+ int &cursor_char_position,
+ int match_start_point,
+ int max_return_elements,
+ bool &word_complete,
+ StringList &matches) override;
class CommandOptions : public Options
{
@@ -50,11 +49,10 @@ public:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions() override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue(uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -79,7 +77,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting() override
{
m_show_aliases = true;
m_show_user_defined = true;
@@ -87,7 +85,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions() override
{
return g_option_table;
}
@@ -103,22 +101,21 @@ public:
bool m_show_hidden;
};
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions() override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result);
+ bool
+ DoExecute(Args& command,
+ CommandReturnObject &result) override;
private:
CommandOptions m_options;
-
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectHelp_h_
+#endif // liblldb_CommandObjectHelp_h_
diff --git a/source/Commands/CommandObjectLanguage.cpp b/source/Commands/CommandObjectLanguage.cpp
index 9d4b856..5a8f166 100644
--- a/source/Commands/CommandObjectLanguage.cpp
+++ b/source/Commands/CommandObjectLanguage.cpp
@@ -14,6 +14,7 @@
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandReturnObject.h"
+#include "lldb/Target/Language.h"
#include "lldb/Target/LanguageRuntime.h"
using namespace lldb;
@@ -33,10 +34,6 @@ CommandObjectMultiword (interpreter,
void
CommandObjectLanguage::GenerateHelpText (Stream &output_stream) {
CommandObjectMultiword::GenerateHelpText(output_stream);
-
- output_stream << "\nlanguage name can be one of the following:\n";
-
- LanguageRuntime::PrintAllLanguages(output_stream, " ", "\n");
}
CommandObjectLanguage::~CommandObjectLanguage ()
diff --git a/source/Commands/CommandObjectLanguage.h b/source/Commands/CommandObjectLanguage.h
index 751fe14..15902bb 100644
--- a/source/Commands/CommandObjectLanguage.h
+++ b/source/Commands/CommandObjectLanguage.h
@@ -13,7 +13,6 @@
// C Includes
// C++ Includes
-
// Other libraries and framework includes
// Project includes
@@ -26,11 +25,10 @@ namespace lldb_private {
public:
CommandObjectLanguage (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectLanguage ();
+ ~CommandObjectLanguage() override;
- virtual void
- GenerateHelpText (Stream &output_stream);
+ void
+ GenerateHelpText(Stream &output_stream) override;
protected:
bool
@@ -38,4 +36,4 @@ namespace lldb_private {
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectLanguage_h_
+#endif // liblldb_CommandObjectLanguage_h_
diff --git a/source/Commands/CommandObjectLog.cpp b/source/Commands/CommandObjectLog.cpp
index e68eaf1..8e29cd5 100644
--- a/source/Commands/CommandObjectLog.cpp
+++ b/source/Commands/CommandObjectLog.cpp
@@ -77,13 +77,12 @@ public:
m_arguments.push_back (arg2);
}
- virtual
- ~CommandObjectLogEnable()
+ ~CommandObjectLogEnable() override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -122,13 +121,12 @@ public:
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -154,14 +152,14 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
log_file.Clear();
log_options = 0;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -177,9 +175,9 @@ public:
};
protected:
- virtual bool
+ bool
DoExecute (Args& args,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
if (args.GetArgumentCount() < 2)
{
@@ -260,15 +258,14 @@ public:
m_arguments.push_back (arg2);
}
- virtual
- ~CommandObjectLogDisable()
+ ~CommandObjectLogDisable() override
{
}
protected:
- virtual bool
+ bool
DoExecute (Args& args,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
const size_t argc = args.GetArgumentCount();
if (argc == 0)
@@ -332,15 +329,14 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectLogList()
+ ~CommandObjectLogList() override
{
}
protected:
- virtual bool
+ bool
DoExecute (Args& args,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
const size_t argc = args.GetArgumentCount();
if (argc == 0)
@@ -396,15 +392,14 @@ public:
{
}
- virtual
- ~CommandObjectLogTimer()
+ ~CommandObjectLogTimer() override
{
}
protected:
- virtual bool
+ bool
DoExecute (Args& args,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
const size_t argc = args.GetArgumentCount();
result.SetStatus(eReturnStatusFailed);
diff --git a/source/Commands/CommandObjectLog.h b/source/Commands/CommandObjectLog.h
index 3e731fa..be5215f2 100644
--- a/source/Commands/CommandObjectLog.h
+++ b/source/Commands/CommandObjectLog.h
@@ -33,8 +33,7 @@ public:
//------------------------------------------------------------------
CommandObjectLog(CommandInterpreter &interpreter);
- virtual
- ~CommandObjectLog();
+ ~CommandObjectLog() override;
private:
//------------------------------------------------------------------
@@ -45,4 +44,4 @@ private:
} // namespace lldb_private
-#endif // liblldb_CommandObjectLog_h_
+#endif // liblldb_CommandObjectLog_h_
diff --git a/source/Commands/CommandObjectMemory.cpp b/source/Commands/CommandObjectMemory.cpp
index d589800..f8fe456 100644
--- a/source/Commands/CommandObjectMemory.cpp
+++ b/source/Commands/CommandObjectMemory.cpp
@@ -23,7 +23,7 @@
#include "lldb/Core/StreamString.h"
#include "lldb/Core/ValueObjectMemory.h"
#include "lldb/DataFormatters/ValueObjectPrinter.h"
-#include "lldb/Expression/ClangPersistentVariables.h"
+#include "Plugins/ExpressionParser/Clang/ClangPersistentVariables.h"
#include "lldb/Host/StringConvert.h"
#include "lldb/Interpreter/Args.h"
#include "lldb/Interpreter/CommandReturnObject.h"
@@ -33,6 +33,7 @@
#include "lldb/Interpreter/OptionGroupOutputFile.h"
#include "lldb/Interpreter/OptionGroupValueObjectDisplay.h"
#include "lldb/Interpreter/OptionValueString.h"
+#include "lldb/Symbol/ClangASTContext.h"
#include "lldb/Symbol/TypeList.h"
#include "lldb/Target/MemoryHistory.h"
#include "lldb/Target/Process.h"
@@ -48,6 +49,7 @@ g_option_table[] =
{ LLDB_OPT_SET_1, false, "num-per-line" ,'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeNumberPerLine ,"The number of items per line to display."},
{ LLDB_OPT_SET_2, false, "binary" ,'b', OptionParser::eNoArgument , NULL, NULL, 0, eArgTypeNone ,"If true, memory will be saved as binary. If false, the memory is saved save as an ASCII dump that uses the format, size, count and number per line settings."},
{ LLDB_OPT_SET_3, true , "type" ,'t', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeNone ,"The name of a type to view memory as."},
+ { LLDB_OPT_SET_3, false , "offset" ,'E', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeCount ,"How many elements of the specified type to skip before starting to display data."},
{ LLDB_OPT_SET_1|
LLDB_OPT_SET_2|
LLDB_OPT_SET_3, false, "force" ,'r', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone ,"Necessary if reading over target.max-memory-read-size bytes."},
@@ -62,32 +64,32 @@ public:
OptionGroupReadMemory () :
m_num_per_line (1,1),
m_output_as_binary (false),
- m_view_as_type()
+ m_view_as_type(),
+ m_offset(0,0)
{
}
- virtual
- ~OptionGroupReadMemory ()
+ ~OptionGroupReadMemory () override
{
}
- virtual uint32_t
- GetNumDefinitions ()
+ uint32_t
+ GetNumDefinitions () override
{
return sizeof (g_option_table) / sizeof (OptionDefinition);
}
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_option_table;
}
- virtual Error
+ Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_arg)
+ const char *option_arg) override
{
Error error;
const int short_option = g_option_table[option_idx].short_option;
@@ -112,6 +114,10 @@ public:
m_force = true;
break;
+ case 'E':
+ error = m_offset.SetValueFromString(option_arg);
+ break;
+
default:
error.SetErrorStringWithFormat("unrecognized short option '%c'", short_option);
break;
@@ -119,13 +125,14 @@ public:
return error;
}
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
m_num_per_line.Clear();
m_output_as_binary = false;
m_view_as_type.Clear();
m_force = false;
+ m_offset.Clear();
}
Error
@@ -271,6 +278,7 @@ public:
case eFormatVectorOfUInt32:
case eFormatVectorOfSInt64:
case eFormatVectorOfUInt64:
+ case eFormatVectorOfFloat16:
case eFormatVectorOfFloat32:
case eFormatVectorOfFloat64:
case eFormatVectorOfUInt128:
@@ -290,13 +298,15 @@ public:
{
return m_num_per_line.OptionWasSet() ||
m_output_as_binary ||
- m_view_as_type.OptionWasSet();
+ m_view_as_type.OptionWasSet() ||
+ m_offset.OptionWasSet();
}
OptionValueUInt64 m_num_per_line;
bool m_output_as_binary;
OptionValueString m_view_as_type;
bool m_force;
+ OptionValueUInt64 m_offset;
};
@@ -366,25 +376,25 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectMemoryRead ()
+ ~CommandObjectMemoryRead () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
- virtual const char *GetRepeatCommand (Args &current_command_args, uint32_t index)
+ const char *
+ GetRepeatCommand (Args &current_command_args, uint32_t index) override
{
return m_cmd_name.c_str();
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
// No need to check "target" for validity as eCommandRequiresTarget ensures it is valid
Target *target = m_exe_ctx.GetTargetPtr();
@@ -399,7 +409,7 @@ protected:
return false;
}
- ClangASTType clang_ast_type;
+ CompilerType clang_ast_type;
Error error;
const char *view_as_type_cstr = m_memory_options.m_view_as_type.GetCurrentValue();
@@ -526,16 +536,21 @@ protected:
1,
type_list);
}
-
+
if (type_list.GetSize() == 0 && lookup_type_name.GetCString() && *lookup_type_name.GetCString() == '$')
{
- clang::TypeDecl *tdecl = target->GetPersistentVariables().GetPersistentType(ConstString(lookup_type_name));
- if (tdecl)
+ if (ClangPersistentVariables *persistent_vars = llvm::dyn_cast_or_null<ClangPersistentVariables>(target->GetPersistentExpressionStateForLanguage(lldb::eLanguageTypeC)))
{
- clang_ast_type.SetClangType(&tdecl->getASTContext(),(const lldb::clang_type_t)tdecl->getTypeForDecl());
+ clang::TypeDecl *tdecl = persistent_vars->GetPersistentType(ConstString(lookup_type_name));
+
+ if (tdecl)
+ {
+ clang_ast_type.SetCompilerType(ClangASTContext::GetASTContext(&tdecl->getASTContext()),
+ reinterpret_cast<lldb::opaque_compiler_type_t>(const_cast<clang::Type*>(tdecl->getTypeForDecl())));
+ }
}
}
-
+
if (clang_ast_type.IsValid() == false)
{
if (type_list.GetSize() == 0)
@@ -549,13 +564,13 @@ protected:
else
{
TypeSP type_sp (type_list.GetTypeAtIndex(0));
- clang_ast_type = type_sp->GetClangFullType();
+ clang_ast_type = type_sp->GetFullCompilerType ();
}
}
while (pointer_count > 0)
{
- ClangASTType pointer_type = clang_ast_type.GetPointerType();
+ CompilerType pointer_type = clang_ast_type.GetPointerType();
if (pointer_type.IsValid())
clang_ast_type = pointer_type;
else
@@ -691,6 +706,9 @@ protected:
m_format_options.GetFormatValue().SetCurrentValue(eFormatDefault);
bytes_read = clang_ast_type.GetByteSize(nullptr) * m_format_options.GetCountValue().GetCurrentValue();
+
+ if (argc > 0)
+ addr = addr + (clang_ast_type.GetByteSize(nullptr) * m_memory_options.m_offset.GetCurrentValue());
}
else if (m_format_options.GetFormatValue().GetCurrentValue() != eFormatCString)
{
@@ -932,7 +950,7 @@ protected:
OptionGroupReadMemory m_prev_memory_options;
OptionGroupOutputFile m_prev_outfile_options;
OptionGroupValueObjectDisplay m_prev_varobj_options;
- ClangASTType m_prev_clang_ast_type;
+ CompilerType m_prev_clang_ast_type;
};
OptionDefinition
@@ -961,27 +979,26 @@ public:
{
}
- virtual
- ~OptionGroupFindMemory ()
+ ~OptionGroupFindMemory () override
{
}
- virtual uint32_t
- GetNumDefinitions ()
+ uint32_t
+ GetNumDefinitions () override
{
return sizeof (g_memory_find_option_table) / sizeof (OptionDefinition);
}
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_memory_find_option_table;
}
- virtual Error
+ Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_arg)
+ const char *option_arg) override
{
Error error;
const int short_option = g_memory_find_option_table[option_idx].short_option;
@@ -1013,8 +1030,8 @@ public:
return error;
}
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
m_expr.Clear();
m_string.Clear();
@@ -1042,15 +1059,15 @@ public:
CommandArgumentData value_arg;
// Define the first (and only) variant of this arg.
- addr_arg.arg_type = eArgTypeAddress;
+ addr_arg.arg_type = eArgTypeAddressOrExpression;
addr_arg.arg_repetition = eArgRepeatPlain;
// There is only one variant this argument could be; put it into the argument entry.
arg1.push_back (addr_arg);
// Define the first (and only) variant of this arg.
- value_arg.arg_type = eArgTypeValue;
- value_arg.arg_repetition = eArgRepeatPlus;
+ value_arg.arg_type = eArgTypeAddressOrExpression;
+ value_arg.arg_repetition = eArgRepeatPlain;
// There is only one variant this argument could be; put it into the argument entry.
arg2.push_back (value_arg);
@@ -1063,20 +1080,19 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectMemoryFind ()
+ ~CommandObjectMemoryFind () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
// No need to check "process" for validity as eCommandRequiresProcess ensures it is valid
Process *process = m_exe_ctx.GetProcessPtr();
@@ -1119,10 +1135,11 @@ protected:
{
StackFrame* frame = m_exe_ctx.GetFramePtr();
ValueObjectSP result_sp;
- if (process->GetTarget().EvaluateExpression(m_memory_options.m_expr.GetStringValue(), frame, result_sp) && result_sp.get())
+ if ((eExpressionCompleted == process->GetTarget().EvaluateExpression(m_memory_options.m_expr.GetStringValue(), frame, result_sp)) &&
+ result_sp.get())
{
uint64_t value = result_sp->GetValueAsUnsigned(0);
- switch (result_sp->GetClangType().GetByteSize(nullptr))
+ switch (result_sp->GetCompilerType().GetByteSize(nullptr))
{
case 1: {
uint8_t byte = (uint8_t)value;
@@ -1150,13 +1167,13 @@ protected:
result.AppendError("unknown type. pass a string instead");
return false;
default:
- result.AppendError("do not know how to deal with larger than 8 byte result types. pass a string instead");
+ result.AppendError("result size larger than 8 bytes. pass a string instead");
return false;
}
}
else
{
- result.AppendError("expression evaluation failed. pass a string instead?");
+ result.AppendError("expression evaluation failed. pass a string instead");
return false;
}
}
@@ -1176,14 +1193,14 @@ protected:
{
if (!ever_found)
{
- result.AppendMessage("Your data was not found within the range.\n");
+ result.AppendMessage("data not found within the range.\n");
result.SetStatus(lldb::eReturnStatusSuccessFinishNoResult);
}
else
- result.AppendMessage("No more matches found within the range.\n");
+ result.AppendMessage("no more matches within the range.\n");
break;
}
- result.AppendMessageWithFormat("Your data was found at location: 0x%" PRIx64 "\n", found_location);
+ result.AppendMessageWithFormat("data found at location: 0x%" PRIx64 "\n", found_location);
DataBufferHeap dumpbuffer(32,0);
process->ReadMemory(found_location+m_memory_options.m_offset.GetCurrentValue(), dumpbuffer.GetBytes(), dumpbuffer.GetByteSize(), error);
@@ -1211,27 +1228,16 @@ protected:
{
Process *process = m_exe_ctx.GetProcessPtr();
DataBufferHeap heap(buffer_size, 0);
- lldb::addr_t fictional_ptr = low;
for (auto ptr = low;
- low < high;
- fictional_ptr++)
+ ptr < high;
+ ptr++)
{
Error error;
- if (ptr == low || buffer_size == 1)
- process->ReadMemory(ptr, heap.GetBytes(), buffer_size, error);
- else
- {
- memmove(heap.GetBytes(), heap.GetBytes()+1, buffer_size-1);
- process->ReadMemory(ptr, heap.GetBytes()+buffer_size-1, 1, error);
- }
+ process->ReadMemory(ptr, heap.GetBytes(), buffer_size, error);
if (error.Fail())
return LLDB_INVALID_ADDRESS;
if (memcmp(heap.GetBytes(), buffer, buffer_size) == 0)
- return fictional_ptr;
- if (ptr == low)
- ptr += buffer_size;
- else
- ptr += 1;
+ return ptr;
}
return LLDB_INVALID_ADDRESS;
}
@@ -1263,27 +1269,26 @@ public:
{
}
- virtual
- ~OptionGroupWriteMemory ()
+ ~OptionGroupWriteMemory () override
{
}
- virtual uint32_t
- GetNumDefinitions ()
+ uint32_t
+ GetNumDefinitions () override
{
return sizeof (g_memory_write_option_table) / sizeof (OptionDefinition);
}
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_memory_write_option_table;
}
- virtual Error
+ Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_arg)
+ const char *option_arg) override
{
Error error;
const int short_option = g_memory_write_option_table[option_idx].short_option;
@@ -1317,8 +1322,8 @@ public:
return error;
}
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
m_infile.Clear();
m_infile_offset = 0;
@@ -1368,13 +1373,12 @@ public:
}
- virtual
- ~CommandObjectMemoryWrite ()
+ ~CommandObjectMemoryWrite () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
@@ -1407,8 +1411,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
// No need to check "process" for validity as eCommandRequiresProcess ensures it is valid
Process *process = m_exe_ctx.GetProcessPtr();
@@ -1528,6 +1532,7 @@ protected:
case eFormatVectorOfUInt32:
case eFormatVectorOfSInt64:
case eFormatVectorOfUInt64:
+ case eFormatVectorOfFloat16:
case eFormatVectorOfFloat32:
case eFormatVectorOfFloat64:
case eFormatVectorOfUInt128:
@@ -1716,19 +1721,19 @@ public:
m_arguments.push_back (arg1);
}
- virtual
- ~CommandObjectMemoryHistory ()
+ ~CommandObjectMemoryHistory () override
{
}
- virtual const char *GetRepeatCommand (Args &current_command_args, uint32_t index)
+ const char *
+ GetRepeatCommand (Args &current_command_args, uint32_t index) override
{
return m_cmd_name.c_str();
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
diff --git a/source/Commands/CommandObjectMemory.h b/source/Commands/CommandObjectMemory.h
index b044921..cf5b441 100644
--- a/source/Commands/CommandObjectMemory.h
+++ b/source/Commands/CommandObjectMemory.h
@@ -23,11 +23,9 @@ class CommandObjectMemory : public CommandObjectMultiword
public:
CommandObjectMemory (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMemory ();
+ ~CommandObjectMemory() override;
};
-
} // namespace lldb_private
-#endif // liblldb_CommandObjectMemory_h_
+#endif // liblldb_CommandObjectMemory_h_
diff --git a/source/Commands/CommandObjectMultiword.cpp b/source/Commands/CommandObjectMultiword.cpp
index 2f0e2a7..206f3b6 100644
--- a/source/Commands/CommandObjectMultiword.cpp
+++ b/source/Commands/CommandObjectMultiword.cpp
@@ -382,6 +382,14 @@ CommandObjectProxy::IsMultiwordObject ()
return false;
}
+void
+CommandObjectProxy::GenerateHelpText (Stream &result)
+{
+ CommandObject *proxy_command = GetProxyCommandObject();
+ if (proxy_command)
+ return proxy_command->GenerateHelpText(result);
+}
+
lldb::CommandObjectSP
CommandObjectProxy::GetSubcommandSP (const char *sub_cmd, StringList *matches)
{
diff --git a/source/Commands/CommandObjectPlatform.cpp b/source/Commands/CommandObjectPlatform.cpp
index a0979d0..aad8bea 100644
--- a/source/Commands/CommandObjectPlatform.cpp
+++ b/source/Commands/CommandObjectPlatform.cpp
@@ -86,15 +86,14 @@ public:
{
}
- virtual
- ~OptionPermissions ()
+ ~OptionPermissions () override
{
}
- virtual lldb_private::Error
+ lldb_private::Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_arg)
+ const char *option_arg) override
{
Error error;
char short_option = (char) GetDefinitions()[option_idx].short_option;
@@ -155,19 +154,19 @@ public:
}
void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
m_permissions = 0;
}
- virtual uint32_t
- GetNumDefinitions ()
+ uint32_t
+ GetNumDefinitions () override
{
return llvm::array_lengthof(g_permissions_options);
}
const lldb_private::OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_permissions_options;
}
@@ -198,19 +197,18 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectPlatformSelect ()
+ ~CommandObjectPlatformSelect () override
{
}
- virtual int
+ int
HandleCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -225,15 +223,15 @@ public:
return matches.GetSize();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
if (args.GetArgumentCount() == 1)
{
@@ -291,14 +289,13 @@ public:
{
}
- virtual
- ~CommandObjectPlatformList ()
+ ~CommandObjectPlatformList () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Stream &ostrm = result.GetOutputStream();
ostrm.Printf("Available platforms:\n");
@@ -346,14 +343,13 @@ public:
{
}
- virtual
- ~CommandObjectPlatformStatus ()
+ ~CommandObjectPlatformStatus () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Stream &ostrm = result.GetOutputStream();
@@ -396,14 +392,13 @@ public:
{
}
- virtual
- ~CommandObjectPlatformConnect ()
+ ~CommandObjectPlatformConnect () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Stream &ostrm = result.GetOutputStream();
@@ -414,12 +409,19 @@ protected:
if (error.Success())
{
platform_sp->GetStatus (ostrm);
- result.SetStatus (eReturnStatusSuccessFinishResult);
+ result.SetStatus (eReturnStatusSuccessFinishResult);
+
+ platform_sp->ConnectToWaitingProcesses(m_interpreter.GetDebugger(), error);
+ if (error.Fail())
+ {
+ result.AppendError (error.AsCString());
+ result.SetStatus (eReturnStatusFailed);
+ }
}
else
{
result.AppendErrorWithFormat ("%s\n", error.AsCString());
- result.SetStatus (eReturnStatusFailed);
+ result.SetStatus (eReturnStatusFailed);
}
}
else
@@ -430,8 +432,8 @@ protected:
return result.Succeeded();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
OptionGroupOptions* m_platform_options = NULL;
@@ -461,14 +463,13 @@ public:
{
}
- virtual
- ~CommandObjectPlatformDisconnect ()
+ ~CommandObjectPlatformDisconnect () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -543,14 +544,13 @@ public:
m_options.Append (&m_option_working_dir, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
}
- virtual
- ~CommandObjectPlatformSettings ()
+ ~CommandObjectPlatformSettings () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -566,8 +566,8 @@ protected:
return result.Succeeded();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
if (m_options.DidFinalize() == false)
m_options.Finalize();
@@ -597,13 +597,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformMkDir ()
+ ~CommandObjectPlatformMkDir () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -635,8 +634,8 @@ public:
return result.Succeeded();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
if (m_options.DidFinalize() == false)
{
@@ -665,13 +664,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformFOpen ()
+ ~CommandObjectPlatformFOpen () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -708,8 +706,8 @@ public:
}
return result.Succeeded();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
if (m_options.DidFinalize() == false)
{
@@ -736,13 +734,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformFClose ()
+ ~CommandObjectPlatformFClose () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -788,13 +785,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformFRead ()
+ ~CommandObjectPlatformFRead () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -816,8 +812,8 @@ public:
}
return result.Succeeded();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -832,13 +828,12 @@ protected:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
char short_option = (char) m_getopt_table[option_idx].val;
@@ -866,14 +861,14 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_offset = 0;
m_count = 1;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -914,13 +909,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformFWrite ()
+ ~CommandObjectPlatformFWrite () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -944,8 +938,8 @@ public:
}
return result.Succeeded();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -960,13 +954,12 @@ protected:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
char short_option = (char) m_getopt_table[option_idx].val;
@@ -992,14 +985,14 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_offset = 0;
m_data.clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1041,8 +1034,7 @@ public:
LoadSubCommand ("write", CommandObjectSP (new CommandObjectPlatformFWrite (interpreter)));
}
- virtual
- ~CommandObjectPlatformFile ()
+ ~CommandObjectPlatformFile () override
{
}
@@ -1094,13 +1086,12 @@ R"(Examples:
m_arguments.push_back (arg2);
}
- virtual
- ~CommandObjectPlatformGetFile ()
+ ~CommandObjectPlatformGetFile () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
// If the number of arguments is incorrect, issue an error message.
if (args.GetArgumentCount() != 2)
@@ -1172,13 +1163,12 @@ R"(Examples:
m_arguments.push_back (arg1);
}
- virtual
- ~CommandObjectPlatformGetSize ()
+ ~CommandObjectPlatformGetSize () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
// If the number of arguments is incorrect, issue an error message.
if (args.GetArgumentCount() != 1)
@@ -1228,13 +1218,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformPutFile ()
+ ~CommandObjectPlatformPutFile () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
const char* src = args.GetArgumentAtIndex(0);
const char* dst = args.GetArgumentAtIndex(1);
@@ -1281,20 +1270,19 @@ public:
{
}
- virtual
- ~CommandObjectPlatformProcessLaunch ()
+ ~CommandObjectPlatformProcessLaunch () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
PlatformSP platform_sp;
@@ -1398,20 +1386,19 @@ public:
{
}
- virtual
- ~CommandObjectPlatformProcessList ()
+ ~CommandObjectPlatformProcessList () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
PlatformSP platform_sp;
@@ -1524,13 +1511,12 @@ protected:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1620,7 +1606,7 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
match_info.Clear();
show_args = false;
@@ -1628,7 +1614,7 @@ protected:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1698,14 +1684,13 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectPlatformProcessInfo ()
+ ~CommandObjectPlatformProcessInfo () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
PlatformSP platform_sp;
@@ -1793,12 +1778,12 @@ public:
OptionParsingStarting ();
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
char short_option = (char) m_getopt_table[option_idx].val;
@@ -1839,18 +1824,18 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
attach_info.Clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
- virtual bool
+ bool
HandleOptionArgumentCompletion (Args &input,
int cursor_index,
int char_pos,
@@ -1859,7 +1844,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
int opt_arg_pos = opt_element_vector[opt_element_index].opt_arg_pos;
int opt_defs_index = opt_element_vector[opt_element_index].opt_defs_index;
@@ -1921,13 +1906,13 @@ public:
{
}
- ~CommandObjectPlatformProcessAttach ()
+ ~CommandObjectPlatformProcessAttach () override
{
}
bool
DoExecute (Args& command,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
if (platform_sp)
@@ -1957,7 +1942,7 @@ public:
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -1998,8 +1983,7 @@ public:
}
- virtual
- ~CommandObjectPlatformProcess ()
+ ~CommandObjectPlatformProcess () override
{
}
@@ -2027,8 +2011,7 @@ public:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
@@ -2038,15 +2021,15 @@ public:
return 1;
}
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_option_table;
}
- virtual Error
+ Error
SetOptionValue (uint32_t option_idx,
- const char *option_value)
+ const char *option_value) override
{
Error error;
@@ -2070,8 +2053,8 @@ public:
return error;
}
- virtual void
- OptionParsingStarting ()
+ void
+ OptionParsingStarting () override
{
}
@@ -2091,20 +2074,18 @@ public:
{
}
- virtual
- ~CommandObjectPlatformShell ()
+ ~CommandObjectPlatformShell () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
- virtual bool
- DoExecute (const char *raw_command_line, CommandReturnObject &result)
+ bool
+ DoExecute (const char *raw_command_line, CommandReturnObject &result) override
{
m_options.NotifyOptionParsingStarting();
@@ -2218,13 +2199,12 @@ public:
{
}
- virtual
- ~CommandObjectPlatformInstall ()
+ ~CommandObjectPlatformInstall () override
{
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
if (args.GetArgumentCount() != 2)
{
diff --git a/source/Commands/CommandObjectPlatform.h b/source/Commands/CommandObjectPlatform.h
index f3bd758..023dff9 100644
--- a/source/Commands/CommandObjectPlatform.h
+++ b/source/Commands/CommandObjectPlatform.h
@@ -28,13 +28,12 @@ class CommandObjectPlatform : public CommandObjectMultiword
public:
CommandObjectPlatform(CommandInterpreter &interpreter);
- virtual
- ~CommandObjectPlatform();
+ ~CommandObjectPlatform() override;
- private:
+private:
DISALLOW_COPY_AND_ASSIGN (CommandObjectPlatform);
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectPlatform_h_
+#endif // liblldb_CommandObjectPlatform_h_
diff --git a/source/Commands/CommandObjectPlugin.cpp b/source/Commands/CommandObjectPlugin.cpp
index 63fa4a8..4c5a089 100644
--- a/source/Commands/CommandObjectPlugin.cpp
+++ b/source/Commands/CommandObjectPlugin.cpp
@@ -41,7 +41,7 @@ public:
m_arguments.push_back (arg1);
}
- ~CommandObjectPluginLoad ()
+ ~CommandObjectPluginLoad () override
{
}
@@ -53,7 +53,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -71,7 +71,7 @@ public:
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
size_t argc = command.GetArgumentCount();
diff --git a/source/Commands/CommandObjectPlugin.h b/source/Commands/CommandObjectPlugin.h
index 9d0f0fc..0a96041 100644
--- a/source/Commands/CommandObjectPlugin.h
+++ b/source/Commands/CommandObjectPlugin.h
@@ -13,7 +13,6 @@
// C Includes
// C++ Includes
-
// Other libraries and framework includes
// Project includes
@@ -27,10 +26,9 @@ namespace lldb_private {
public:
CommandObjectPlugin (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectPlugin ();
+ ~CommandObjectPlugin() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectPlugin_h_
+#endif // liblldb_CommandObjectPlugin_h_
diff --git a/source/Commands/CommandObjectProcess.cpp b/source/Commands/CommandObjectProcess.cpp
index e587ead..b7f894f 100644
--- a/source/Commands/CommandObjectProcess.cpp
+++ b/source/Commands/CommandObjectProcess.cpp
@@ -47,7 +47,7 @@ public:
CommandObjectParsed (interpreter, name, help, syntax, flags),
m_new_process_action (new_process_action) {}
- virtual ~CommandObjectProcessLaunchOrAttach () {}
+ ~CommandObjectProcessLaunchOrAttach () override {}
protected:
bool
StopProcessIfNecessary (Process *process, StateType &state, CommandReturnObject &result)
@@ -142,11 +142,11 @@ public:
}
- ~CommandObjectProcessLaunch ()
+ ~CommandObjectProcessLaunch () override
{
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -154,7 +154,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -171,12 +171,13 @@ public:
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
- virtual const char *GetRepeatCommand (Args &current_command_args, uint32_t index)
+ const char *
+ GetRepeatCommand (Args &current_command_args, uint32_t index) override
{
// No repeat for "process launch"...
return "";
@@ -184,7 +185,7 @@ public:
protected:
bool
- DoExecute (Args& launch_args, CommandReturnObject &result)
+ DoExecute (Args& launch_args, CommandReturnObject &result) override
{
Debugger &debugger = m_interpreter.GetDebugger();
Target *target = debugger.GetSelectedTarget().get();
@@ -338,12 +339,12 @@ public:
OptionParsingStarting ();
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -392,18 +393,18 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
attach_info.Clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
- virtual bool
+ bool
HandleOptionArgumentCompletion (Args &input,
int cursor_index,
int char_pos,
@@ -412,7 +413,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
int opt_arg_pos = opt_element_vector[opt_element_index].opt_arg_pos;
int opt_defs_index = opt_element_vector[opt_element_index].opt_defs_index;
@@ -476,20 +477,19 @@ public:
{
}
- ~CommandObjectProcessAttach ()
+ ~CommandObjectProcessAttach () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
PlatformSP platform_sp (m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform());
@@ -646,7 +646,7 @@ public:
}
- ~CommandObjectProcessContinue ()
+ ~CommandObjectProcessContinue () override
{
}
@@ -663,12 +663,12 @@ protected:
OptionParsingStarting ();
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -689,13 +689,13 @@ protected:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_ignore = 0;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -708,7 +708,7 @@ protected:
};
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
bool synchronous_execution = m_interpreter.GetSynchronous ();
@@ -807,7 +807,7 @@ protected:
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -842,12 +842,12 @@ public:
OptionParsingStarting ();
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -876,13 +876,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_keep_stopped = eLazyBoolCalculate;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -907,12 +907,12 @@ public:
{
}
- ~CommandObjectProcessDetach ()
+ ~CommandObjectProcessDetach () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -920,7 +920,7 @@ public:
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
// FIXME: This will be a Command Option:
@@ -982,12 +982,12 @@ public:
OptionParsingStarting ();
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1006,13 +1006,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
plugin_name.clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1036,94 +1036,61 @@ public:
{
}
- ~CommandObjectProcessConnect ()
+ ~CommandObjectProcessConnect () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
-
- TargetSP target_sp (m_interpreter.GetDebugger().GetSelectedTarget());
- Error error;
- Process *process = m_exe_ctx.GetProcessPtr();
- if (process)
+ if (command.GetArgumentCount() != 1)
{
- if (process->IsAlive())
- {
- result.AppendErrorWithFormat ("Process %" PRIu64 " is currently being debugged, kill the process before connecting.\n",
- process->GetID());
- result.SetStatus (eReturnStatusFailed);
- return false;
- }
+ result.AppendErrorWithFormat ("'%s' takes exactly one argument:\nUsage: %s\n",
+ m_cmd_name.c_str(),
+ m_cmd_syntax.c_str());
+ result.SetStatus (eReturnStatusFailed);
+ return false;
}
+
- if (!target_sp)
+ Process *process = m_exe_ctx.GetProcessPtr();
+ if (process && process->IsAlive())
{
- // If there isn't a current target create one.
-
- error = m_interpreter.GetDebugger().GetTargetList().CreateTarget (m_interpreter.GetDebugger(),
- NULL,
- NULL,
- false,
- NULL, // No platform options
- target_sp);
- if (!target_sp || error.Fail())
- {
- result.AppendError(error.AsCString("Error creating target"));
- result.SetStatus (eReturnStatusFailed);
- return false;
- }
- m_interpreter.GetDebugger().GetTargetList().SetSelectedTarget(target_sp.get());
+ result.AppendErrorWithFormat ("Process %" PRIu64 " is currently being debugged, kill the process before connecting.\n",
+ process->GetID());
+ result.SetStatus (eReturnStatusFailed);
+ return false;
}
-
- if (command.GetArgumentCount() == 1)
- {
- const char *plugin_name = NULL;
- if (!m_options.plugin_name.empty())
- plugin_name = m_options.plugin_name.c_str();
- const char *remote_url = command.GetArgumentAtIndex(0);
- process = target_sp->CreateProcess (m_interpreter.GetDebugger().GetListener(), plugin_name, NULL).get();
-
- if (process)
- {
- error = process->ConnectRemote (process->GetTarget().GetDebugger().GetOutputFile().get(), remote_url);
+ const char *plugin_name = nullptr;
+ if (!m_options.plugin_name.empty())
+ plugin_name = m_options.plugin_name.c_str();
- if (error.Fail())
- {
- result.AppendError(error.AsCString("Remote connect failed"));
- result.SetStatus (eReturnStatusFailed);
- target_sp->DeleteCurrentProcess();
- return false;
- }
- }
- else
- {
- result.AppendErrorWithFormat ("Unable to find process plug-in for remote URL '%s'.\nPlease specify a process plug-in name with the --plugin option, or specify an object file using the \"file\" command.\n",
- remote_url);
- result.SetStatus (eReturnStatusFailed);
- }
- }
- else
+ Error error;
+ Debugger& debugger = m_interpreter.GetDebugger();
+ PlatformSP platform_sp = m_interpreter.GetPlatform(true);
+ ProcessSP process_sp = platform_sp->ConnectProcess(command.GetArgumentAtIndex(0),
+ plugin_name,
+ debugger,
+ debugger.GetSelectedTarget().get(),
+ error);
+ if (error.Fail() || process_sp == nullptr)
{
- result.AppendErrorWithFormat ("'%s' takes exactly one argument:\nUsage: %s\n",
- m_cmd_name.c_str(),
- m_cmd_syntax.c_str());
+ result.AppendError(error.AsCString("Error connecting to the process"));
result.SetStatus (eReturnStatusFailed);
+ return false;
}
- return result.Succeeded();
+ return true;
}
-
+
CommandOptions m_options;
};
@@ -1152,12 +1119,12 @@ public:
{
}
- ~CommandObjectProcessPlugin ()
+ ~CommandObjectProcessPlugin () override
{
}
- virtual CommandObject *
- GetProxyCommandObject()
+ CommandObject *
+ GetProxyCommandObject() override
{
Process *process = m_interpreter.GetExecutionContext().GetProcessPtr();
if (process)
@@ -1175,6 +1142,57 @@ public:
class CommandObjectProcessLoad : public CommandObjectParsed
{
public:
+ class CommandOptions : public Options
+ {
+ public:
+ CommandOptions (CommandInterpreter &interpreter) :
+ Options(interpreter)
+ {
+ // Keep default values of all options in one place: OptionParsingStarting ()
+ OptionParsingStarting ();
+ }
+
+ ~CommandOptions () override = default;
+
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
+ {
+ Error error;
+ const int short_option = m_getopt_table[option_idx].val;
+ switch (short_option)
+ {
+ case 'i':
+ do_install = true;
+ if (option_arg && option_arg[0])
+ install_path.SetFile(option_arg, false);
+ break;
+ default:
+ error.SetErrorStringWithFormat("invalid short option character '%c'", short_option);
+ break;
+ }
+ return error;
+ }
+
+ void
+ OptionParsingStarting () override
+ {
+ do_install = false;
+ install_path.Clear();
+ }
+
+ const OptionDefinition*
+ GetDefinitions () override
+ {
+ return g_option_table;
+ }
+
+ // Options table: Required for subclasses of Options.
+ static OptionDefinition g_option_table[];
+
+ // Instance variables to hold the values for command options.
+ bool do_install;
+ FileSpec install_path;
+ };
CommandObjectProcessLoad (CommandInterpreter &interpreter) :
CommandObjectParsed (interpreter,
@@ -1184,33 +1202,54 @@ public:
eCommandRequiresProcess |
eCommandTryTargetAPILock |
eCommandProcessMustBeLaunched |
- eCommandProcessMustBePaused )
+ eCommandProcessMustBePaused ),
+ m_options (interpreter)
{
}
- ~CommandObjectProcessLoad ()
+ ~CommandObjectProcessLoad () override = default;
+
+ Options *
+ GetOptions () override
{
+ return &m_options;
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
const size_t argc = command.GetArgumentCount();
-
for (uint32_t i=0; i<argc; ++i)
{
Error error;
+ PlatformSP platform = process->GetTarget().GetPlatform();
const char *image_path = command.GetArgumentAtIndex(i);
- FileSpec image_spec (image_path, false);
- process->GetTarget().GetPlatform()->ResolveRemotePath(image_spec, image_spec);
- uint32_t image_token = process->LoadImage(image_spec, error);
+ uint32_t image_token = LLDB_INVALID_IMAGE_TOKEN;
+
+ if (!m_options.do_install)
+ {
+ FileSpec image_spec (image_path, false);
+ platform->ResolveRemotePath(image_spec, image_spec);
+ image_token = platform->LoadImage(process, FileSpec(), image_spec, error);
+ }
+ else if (m_options.install_path)
+ {
+ FileSpec image_spec (image_path, true);
+ platform->ResolveRemotePath(m_options.install_path, m_options.install_path);
+ image_token = platform->LoadImage(process, image_spec, m_options.install_path, error);
+ }
+ else
+ {
+ FileSpec image_spec (image_path, true);
+ image_token = platform->LoadImage(process, image_spec, FileSpec(), error);
+ }
+
if (image_token != LLDB_INVALID_IMAGE_TOKEN)
{
- result.AppendMessageWithFormat ("Loading \"%s\"...ok\nImage %u loaded.\n", image_path, image_token);
+ result.AppendMessageWithFormat ("Loading \"%s\"...ok\nImage %u loaded.\n", image_path, image_token);
result.SetStatus (eReturnStatusSuccessFinishResult);
}
else
@@ -1221,8 +1260,16 @@ protected:
}
return result.Succeeded();
}
+
+ CommandOptions m_options;
};
+OptionDefinition
+CommandObjectProcessLoad::CommandOptions::g_option_table[] =
+{
+ { LLDB_OPT_SET_ALL, false, "install", 'i', OptionParser::eOptionalArgument, nullptr, nullptr, 0, eArgTypePath, "Install the shared library to the target. If specified without an argument then the library will installed in the current working directory."},
+ { 0, false, nullptr, 0 , 0, nullptr, nullptr, 0, eArgTypeNone, nullptr }
+};
//-------------------------------------------------------------------------
// CommandObjectProcessUnload
@@ -1245,14 +1292,13 @@ public:
{
}
- ~CommandObjectProcessUnload ()
+ ~CommandObjectProcessUnload () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
@@ -1270,7 +1316,7 @@ protected:
}
else
{
- Error error (process->UnloadImage(image_token));
+ Error error (process->GetTarget().GetPlatform()->UnloadImage(process, image_token));
if (error.Success())
{
result.AppendMessageWithFormat ("Unloading shared library with index %u...ok\n", image_token);
@@ -1318,14 +1364,13 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectProcessSignal ()
+ ~CommandObjectProcessSignal () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
@@ -1390,14 +1435,13 @@ public:
{
}
- ~CommandObjectProcessInterrupt ()
+ ~CommandObjectProcessInterrupt () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
if (process == NULL)
@@ -1452,14 +1496,13 @@ public:
{
}
- ~CommandObjectProcessKill ()
+ ~CommandObjectProcessKill () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
if (process == NULL)
@@ -1513,14 +1556,14 @@ public:
{
}
- ~CommandObjectProcessSaveCore ()
+ ~CommandObjectProcessSaveCore () override
{
}
protected:
bool
DoExecute (Args& command,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
ProcessSP process_sp = m_exe_ctx.GetProcessSP();
if (process_sp)
@@ -1575,13 +1618,13 @@ public:
{
}
- ~CommandObjectProcessStatus()
+ ~CommandObjectProcessStatus() override
{
}
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Stream &strm = result.GetOutputStream();
result.SetStatus (eReturnStatusSuccessFinishNoResult);
@@ -1620,12 +1663,12 @@ public:
OptionParsingStarting ();
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1649,7 +1692,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
stop.clear();
notify.clear();
@@ -1657,7 +1700,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1694,12 +1737,12 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectProcessHandle ()
+ ~CommandObjectProcessHandle () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -1781,7 +1824,7 @@ public:
protected:
bool
- DoExecute (Args &signal_args, CommandReturnObject &result)
+ DoExecute (Args &signal_args, CommandReturnObject &result) override
{
TargetSP target_sp = m_interpreter.GetDebugger().GetSelectedTarget();
diff --git a/source/Commands/CommandObjectProcess.h b/source/Commands/CommandObjectProcess.h
index 0aaa74d..804c342 100644
--- a/source/Commands/CommandObjectProcess.h
+++ b/source/Commands/CommandObjectProcess.h
@@ -27,11 +27,9 @@ class CommandObjectMultiwordProcess : public CommandObjectMultiword
public:
CommandObjectMultiwordProcess (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordProcess ();
-
+ ~CommandObjectMultiwordProcess() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectProcess_h_
+#endif // liblldb_CommandObjectProcess_h_
diff --git a/source/Commands/CommandObjectQuit.h b/source/Commands/CommandObjectQuit.h
index aab0e26..df9216b 100644
--- a/source/Commands/CommandObjectQuit.h
+++ b/source/Commands/CommandObjectQuit.h
@@ -28,19 +28,17 @@ public:
CommandObjectQuit (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectQuit ();
+ ~CommandObjectQuit() override;
protected:
- virtual bool
- DoExecute (Args& args,
- CommandReturnObject &result);
+ bool
+ DoExecute(Args& args,
+ CommandReturnObject &result) override;
bool
ShouldAskForConfirmation (bool& is_a_detach);
-
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectQuit_h_
+#endif // liblldb_CommandObjectQuit_h_
diff --git a/source/Commands/CommandObjectRegister.cpp b/source/Commands/CommandObjectRegister.cpp
index fae5af4..23a2157 100644
--- a/source/Commands/CommandObjectRegister.cpp
+++ b/source/Commands/CommandObjectRegister.cpp
@@ -74,13 +74,12 @@ public:
}
- virtual
- ~CommandObjectRegisterRead ()
+ ~CommandObjectRegisterRead () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
@@ -170,8 +169,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Stream &strm = result.GetOutputStream();
RegisterContext *reg_ctx = m_exe_ctx.GetRegisterContext ();
@@ -271,33 +270,32 @@ protected:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual uint32_t
- GetNumDefinitions ();
+ uint32_t
+ GetNumDefinitions () override;
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_option_table;
}
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
set_indexes.Clear();
dump_all_sets.Clear();
alternate_name.Clear();
}
- virtual Error
+ Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_value)
+ const char *option_value) override
{
Error error;
const int short_option = g_option_table[option_idx].short_option;
@@ -404,14 +402,13 @@ public:
m_arguments.push_back (arg2);
}
- virtual
- ~CommandObjectRegisterWrite ()
+ ~CommandObjectRegisterWrite () override
{
}
protected:
- virtual bool
- DoExecute(Args& command, CommandReturnObject &result)
+ bool
+ DoExecute(Args& command, CommandReturnObject &result) override
{
DataExtractor reg_data;
RegisterContext *reg_ctx = m_exe_ctx.GetRegisterContext ();
diff --git a/source/Commands/CommandObjectRegister.h b/source/Commands/CommandObjectRegister.h
index 7f856c2..e7b6974 100644
--- a/source/Commands/CommandObjectRegister.h
+++ b/source/Commands/CommandObjectRegister.h
@@ -30,8 +30,7 @@ public:
//------------------------------------------------------------------
CommandObjectRegister(CommandInterpreter &interpreter);
- virtual
- ~CommandObjectRegister();
+ ~CommandObjectRegister() override;
private:
//------------------------------------------------------------------
@@ -42,4 +41,4 @@ private:
} // namespace lldb_private
-#endif // liblldb_CommandObjectRegister_h_
+#endif // liblldb_CommandObjectRegister_h_
diff --git a/source/Commands/CommandObjectSettings.cpp b/source/Commands/CommandObjectSettings.cpp
index 8ed783b..890d770 100644
--- a/source/Commands/CommandObjectSettings.cpp
+++ b/source/Commands/CommandObjectSettings.cpp
@@ -83,15 +83,14 @@ insert-before or insert-after."
}
- virtual
- ~CommandObjectSettingsSet () {}
+ ~CommandObjectSettingsSet () override {}
// Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
- virtual bool
- WantsCompletion() { return true; }
+ bool
+ WantsCompletion() override { return true; }
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -106,11 +105,10 @@ insert-before or insert-after."
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -129,13 +127,13 @@ insert-before or insert-after."
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_global = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -149,7 +147,7 @@ insert-before or insert-after."
bool m_global;
};
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -157,7 +155,7 @@ insert-before or insert-after."
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -215,8 +213,8 @@ insert-before or insert-after."
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
Args cmd_args(command);
@@ -321,11 +319,10 @@ public:
m_arguments.push_back (arg1);
}
- virtual
- ~CommandObjectSettingsShow () {}
+ ~CommandObjectSettingsShow () override {}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -333,7 +330,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -349,8 +346,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishResult);
@@ -414,10 +411,9 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectSettingsList () {}
+ ~CommandObjectSettingsList () override {}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -425,7 +421,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -441,8 +437,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishResult);
@@ -521,10 +517,9 @@ public:
m_arguments.push_back (arg2);
}
- virtual
- ~CommandObjectSettingsRemove () {}
+ ~CommandObjectSettingsRemove () override {}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -532,7 +527,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -551,8 +546,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishNoResult);
@@ -652,14 +647,13 @@ public:
}
- virtual
- ~CommandObjectSettingsReplace () {}
+ ~CommandObjectSettingsReplace () override {}
// Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
- virtual bool
- WantsCompletion() { return true; }
+ bool
+ WantsCompletion() override { return true; }
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -667,7 +661,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -686,8 +680,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishNoResult);
@@ -773,14 +767,13 @@ public:
m_arguments.push_back (arg3);
}
- virtual
- ~CommandObjectSettingsInsertBefore () {}
+ ~CommandObjectSettingsInsertBefore () override {}
// Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
- virtual bool
- WantsCompletion() { return true; }
+ bool
+ WantsCompletion() override { return true; }
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -788,7 +781,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -807,8 +800,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishNoResult);
@@ -897,14 +890,13 @@ public:
m_arguments.push_back (arg3);
}
- virtual
- ~CommandObjectSettingsInsertAfter () {}
+ ~CommandObjectSettingsInsertAfter () override {}
// Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
- virtual bool
- WantsCompletion() { return true; }
+ bool
+ WantsCompletion() override { return true; }
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -912,7 +904,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -931,8 +923,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishNoResult);
@@ -1011,14 +1003,13 @@ public:
m_arguments.push_back (arg2);
}
- virtual
- ~CommandObjectSettingsAppend () {}
+ ~CommandObjectSettingsAppend () override {}
// Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
- virtual bool
- WantsCompletion() { return true; }
+ bool
+ WantsCompletion() override { return true; }
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -1026,7 +1017,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -1045,8 +1036,8 @@ public:
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishNoResult);
Args cmd_args(command);
@@ -1117,10 +1108,9 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectSettingsClear () {}
+ ~CommandObjectSettingsClear () override {}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -1128,7 +1118,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex (cursor_index), cursor_char_position);
@@ -1147,8 +1137,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
result.SetStatus (eReturnStatusSuccessFinishNoResult);
const size_t argc = command.GetArgumentCount ();
diff --git a/source/Commands/CommandObjectSettings.h b/source/Commands/CommandObjectSettings.h
index eca7ade..93ee919 100644
--- a/source/Commands/CommandObjectSettings.h
+++ b/source/Commands/CommandObjectSettings.h
@@ -31,11 +31,9 @@ public:
CommandObjectMultiwordSettings (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordSettings ();
-
+ ~CommandObjectMultiwordSettings() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectSettings_h_
+#endif // liblldb_CommandObjectSettings_h_
diff --git a/source/Commands/CommandObjectSource.cpp b/source/Commands/CommandObjectSource.cpp
index 7c5f127..08c8d46d 100644
--- a/source/Commands/CommandObjectSource.cpp
+++ b/source/Commands/CommandObjectSource.cpp
@@ -49,12 +49,12 @@ class CommandObjectSourceInfo : public CommandObjectParsed
{
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = g_option_table[option_idx].short_option;
@@ -79,7 +79,7 @@ class CommandObjectSourceInfo : public CommandObjectParsed
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
file_spec.Clear();
file_name.clear();
@@ -87,7 +87,7 @@ class CommandObjectSourceInfo : public CommandObjectParsed
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -110,20 +110,20 @@ public:
{
}
- ~CommandObjectSourceInfo ()
+ ~CommandObjectSourceInfo () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
result.AppendError ("Not yet implemented");
result.SetStatus (eReturnStatusFailed);
@@ -157,12 +157,12 @@ class CommandObjectSourceList : public CommandObjectParsed
{
}
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = g_option_table[option_idx].short_option;
@@ -213,7 +213,7 @@ class CommandObjectSourceList : public CommandObjectParsed
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
file_spec.Clear();
file_name.clear();
@@ -227,7 +227,7 @@ class CommandObjectSourceList : public CommandObjectParsed
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -256,19 +256,19 @@ public:
{
}
- ~CommandObjectSourceList ()
+ ~CommandObjectSourceList () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
- virtual const char *
- GetRepeatCommand (Args &current_command_args, uint32_t index)
+ const char *
+ GetRepeatCommand (Args &current_command_args, uint32_t index) override
{
// This is kind of gross, but the command hasn't been parsed yet so we can't look at the option
// values for this invocation... I have to scan the arguments directly.
@@ -507,7 +507,7 @@ protected:
}
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
diff --git a/source/Commands/CommandObjectSource.h b/source/Commands/CommandObjectSource.h
index 0daef13..7ed08cd 100644
--- a/source/Commands/CommandObjectSource.h
+++ b/source/Commands/CommandObjectSource.h
@@ -30,11 +30,9 @@ public:
CommandObjectMultiwordSource (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordSource ();
-
+ ~CommandObjectMultiwordSource() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectSource.h_h_
+#endif // liblldb_CommandObjectSource_h_
diff --git a/source/Commands/CommandObjectSyntax.h b/source/Commands/CommandObjectSyntax.h
index 47bf85f..1a3e4e0 100644
--- a/source/Commands/CommandObjectSyntax.h
+++ b/source/Commands/CommandObjectSyntax.h
@@ -28,17 +28,14 @@ public:
CommandObjectSyntax (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectSyntax ();
+ ~CommandObjectSyntax() override;
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result);
-
-
+ bool
+ DoExecute(Args& command,
+ CommandReturnObject &result) override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectSyntax_h_
+#endif // liblldb_CommandObjectSyntax_h_
diff --git a/source/Commands/CommandObjectTarget.cpp b/source/Commands/CommandObjectTarget.cpp
index 448da0e..026ae35 100644
--- a/source/Commands/CommandObjectTarget.cpp
+++ b/source/Commands/CommandObjectTarget.cpp
@@ -79,7 +79,8 @@ DumpTargetInfo (uint32_t target_idx, Target *target, const char *prefix_cstr, bo
uint32_t properties = 0;
if (target_arch.IsValid())
{
- strm.Printf ("%sarch=%s", properties++ > 0 ? ", " : " ( ", target_arch.GetTriple().str().c_str());
+ strm.Printf ("%sarch=", properties++ > 0 ? ", " : " ( ");
+ target_arch.DumpTriple (strm);
properties++;
}
PlatformSP platform_sp (target->GetPlatform());
@@ -187,17 +188,17 @@ public:
m_option_group.Finalize();
}
- ~CommandObjectTargetCreate ()
+ ~CommandObjectTargetCreate () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -205,7 +206,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -223,7 +224,7 @@ public:
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
FileSpec core_file (m_core_file.GetOptionValue().GetCurrentValue());
@@ -255,7 +256,7 @@ protected:
{
if (!symfile.Readable())
{
- result.AppendErrorWithFormat("symbol file '%s' is not readable", core_file.GetPath().c_str());
+ result.AppendErrorWithFormat("symbol file '%s' is not readable", symfile.GetPath().c_str());
result.SetStatus (eReturnStatusFailed);
return false;
}
@@ -401,7 +402,7 @@ protected:
if (process_sp)
{
- // Seems wierd that we Launch a core file, but that is
+ // Seems weird that we Launch a core file, but that is
// what we do!
error = process_sp->LoadCore();
@@ -477,14 +478,13 @@ public:
{
}
- virtual
- ~CommandObjectTargetList ()
+ ~CommandObjectTargetList () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
if (args.GetArgumentCount() == 0)
{
@@ -525,14 +525,13 @@ public:
{
}
- virtual
- ~CommandObjectTargetSelect ()
+ ~CommandObjectTargetSelect () override
{
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
if (args.GetArgumentCount() == 1)
{
@@ -622,20 +621,19 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectTargetDelete ()
+ ~CommandObjectTargetDelete () override
{
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
const size_t argc = args.GetArgumentCount();
std::vector<TargetSP> delete_target_list;
@@ -777,8 +775,7 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectTargetVariable ()
+ ~CommandObjectTargetVariable () override
{
}
@@ -850,7 +847,7 @@ public:
}
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_option_group;
}
@@ -896,8 +893,8 @@ protected:
}
}
- virtual bool
- DoExecute (Args& args, CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_exe_ctx.GetTargetPtr();
const size_t argc = args.GetArgumentCount();
@@ -1134,14 +1131,13 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectTargetModulesSearchPathsAdd ()
+ ~CommandObjectTargetModulesSearchPathsAdd () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target)
@@ -1161,6 +1157,12 @@ protected:
if (from[0] && to[0])
{
+ Log *log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST);
+ if (log)
+ {
+ log->Printf ("target modules search path adding ImageSearchPath pair: '%s' -> '%s'",
+ from, to);
+ }
bool last_pair = ((argc - i) == 2);
target->GetImageSearchPathList().Append (ConstString(from),
ConstString(to),
@@ -1201,14 +1203,13 @@ public:
{
}
- ~CommandObjectTargetModulesSearchPathsClear ()
+ ~CommandObjectTargetModulesSearchPathsClear () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target)
@@ -1271,20 +1272,19 @@ public:
m_arguments.push_back (arg2);
}
- ~CommandObjectTargetModulesSearchPathsInsert ()
+ ~CommandObjectTargetModulesSearchPathsInsert () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target)
{
size_t argc = command.GetArgumentCount();
- // check for at least 3 arguments and an odd nubmer of parameters
+ // check for at least 3 arguments and an odd number of parameters
if (argc >= 3 && argc & 1)
{
bool success = false;
@@ -1360,14 +1360,13 @@ public:
{
}
- ~CommandObjectTargetModulesSearchPathsList ()
+ ~CommandObjectTargetModulesSearchPathsList () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target)
@@ -1417,14 +1416,13 @@ public:
m_arguments.push_back (arg);
}
- ~CommandObjectTargetModulesSearchPathsQuery ()
+ ~CommandObjectTargetModulesSearchPathsQuery () override
{
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target)
@@ -1462,15 +1460,18 @@ DumpModuleArchitecture (Stream &strm, Module *module, bool full_triple, uint32_t
{
if (module)
{
- const char *arch_cstr;
+ StreamString arch_strm;
+
if (full_triple)
- arch_cstr = module->GetArchitecture().GetTriple().str().c_str();
+ module->GetArchitecture().DumpTriple(arch_strm);
else
- arch_cstr = module->GetArchitecture().GetArchitectureName();
+ arch_strm.PutCString(module->GetArchitecture().GetArchitectureName());
+ std::string arch_str = arch_strm.GetString();
+
if (width)
- strm.Printf("%-*s", width, arch_cstr);
+ strm.Printf("%-*s", width, arch_str.c_str());
else
- strm.PutCString(arch_cstr);
+ strm.PutCString(arch_str.c_str());
}
}
@@ -1865,7 +1866,7 @@ LookupTypeInModule (CommandInterpreter &interpreter,
{
// Resolve the clang type so that any forward references
// to types that haven't yet been parsed will get parsed.
- type_sp->GetClangFullType ();
+ type_sp->GetFullCompilerType ();
type_sp->GetDescription (&strm, eDescriptionLevelFull, true);
// Print all typedef chains
TypeSP typedef_type_sp (type_sp);
@@ -1874,7 +1875,7 @@ LookupTypeInModule (CommandInterpreter &interpreter,
{
strm.EOL();
strm.Printf(" typedef '%s': ", typedef_type_sp->GetName().GetCString());
- typedefed_type_sp->GetClangFullType ();
+ typedefed_type_sp->GetFullCompilerType ();
typedefed_type_sp->GetDescription (&strm, eDescriptionLevelFull, true);
typedef_type_sp = typedefed_type_sp;
typedefed_type_sp = typedef_type_sp->GetTypedefType();
@@ -1918,7 +1919,7 @@ LookupTypeHere (CommandInterpreter &interpreter,
{
// Resolve the clang type so that any forward references
// to types that haven't yet been parsed will get parsed.
- type_sp->GetClangFullType ();
+ type_sp->GetFullCompilerType ();
type_sp->GetDescription (&strm, eDescriptionLevelFull, true);
// Print all typedef chains
TypeSP typedef_type_sp (type_sp);
@@ -1927,7 +1928,7 @@ LookupTypeHere (CommandInterpreter &interpreter,
{
strm.EOL();
strm.Printf(" typedef '%s': ", typedef_type_sp->GetName().GetCString());
- typedefed_type_sp->GetClangFullType ();
+ typedefed_type_sp->GetFullCompilerType ();
typedefed_type_sp->GetDescription (&strm, eDescriptionLevelFull, true);
typedef_type_sp = typedefed_type_sp;
typedefed_type_sp = typedef_type_sp->GetTypedefType();
@@ -2056,12 +2057,11 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectTargetModulesModuleAutoComplete ()
+ ~CommandObjectTargetModulesModuleAutoComplete () override
{
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -2069,7 +2069,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
// Arguments are the standard module completer.
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
@@ -2118,12 +2118,11 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectTargetModulesSourceFileAutoComplete ()
+ ~CommandObjectTargetModulesSourceFileAutoComplete () override
{
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -2131,7 +2130,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
// Arguments are the standard source file completer.
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
@@ -2165,13 +2164,12 @@ public:
{
}
- virtual
- ~CommandObjectTargetModulesDumpSymtab ()
+ ~CommandObjectTargetModulesDumpSymtab () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -2185,13 +2183,12 @@ public:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -2214,13 +2211,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_sort_order = eSortOrderNone;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -2232,9 +2229,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -2359,15 +2355,13 @@ public:
{
}
- virtual
- ~CommandObjectTargetModulesDumpSections ()
+ ~CommandObjectTargetModulesDumpSections () override
{
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -2465,15 +2459,13 @@ public:
{
}
- virtual
- ~CommandObjectTargetModulesDumpSymfile ()
+ ~CommandObjectTargetModulesDumpSymfile () override
{
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -2568,15 +2560,13 @@ public:
{
}
- virtual
- ~CommandObjectTargetModulesDumpLineTable ()
+ ~CommandObjectTargetModulesDumpLineTable () override
{
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_exe_ctx.GetTargetPtr();
uint32_t total_num_dumped = 0;
@@ -2657,8 +2647,7 @@ public:
LoadSubCommand ("line-table", CommandObjectSP (new CommandObjectTargetModulesDumpLineTable (interpreter)));
}
- virtual
- ~CommandObjectTargetModulesDump()
+ ~CommandObjectTargetModulesDump() override
{
}
};
@@ -2679,18 +2668,17 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectTargetModulesAdd ()
+ ~CommandObjectTargetModulesAdd () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -2698,7 +2686,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -2719,9 +2707,8 @@ protected:
OptionGroupUUID m_uuid_option_group;
OptionGroupFile m_symbol_file;
- virtual bool
- DoExecute (Args& args,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -2882,21 +2869,19 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectTargetModulesLoad ()
+ ~CommandObjectTargetModulesLoad () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (Args& args,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -3139,13 +3124,12 @@ public:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
@@ -3170,7 +3154,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_format_array.clear();
m_use_global_module_list = false;
@@ -3178,7 +3162,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -3203,22 +3187,19 @@ public:
{
}
- virtual
- ~CommandObjectTargetModulesList ()
+ ~CommandObjectTargetModulesList () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
const bool use_global_module_list = m_options.m_use_global_module_list;
@@ -3584,13 +3565,12 @@ public:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
@@ -3625,7 +3605,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_type = eLookupTypeInvalid;
m_str.clear();
@@ -3633,7 +3613,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -3662,22 +3642,19 @@ public:
{
}
- virtual
- ~CommandObjectTargetModulesShowUnwind ()
+ ~CommandObjectTargetModulesShowUnwind () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_exe_ctx.GetTargetPtr();
Process *process = m_exe_ctx.GetProcessPtr();
@@ -3813,6 +3790,14 @@ protected:
result.GetOutputStream().Printf("\n");
}
+ UnwindPlanSP arm_unwind_sp = func_unwinders_sp->GetArmUnwindUnwindPlan(*target, 0);
+ if (arm_unwind_sp)
+ {
+ result.GetOutputStream().Printf("ARM.exidx unwind UnwindPlan:\n");
+ arm_unwind_sp->Dump(result.GetOutputStream(), thread.get(), LLDB_INVALID_ADDRESS);
+ result.GetOutputStream().Printf("\n");
+ }
+
UnwindPlanSP compact_unwind_sp = func_unwinders_sp->GetCompactUnwindUnwindPlan(*target, 0);
if (compact_unwind_sp)
{
@@ -3891,13 +3876,12 @@ public:
OptionParsingStarting();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
@@ -3974,7 +3958,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_type = eLookupTypeInvalid;
m_str.clear();
@@ -3989,7 +3973,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -4031,13 +4015,12 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectTargetModulesLookup ()
+ ~CommandObjectTargetModulesLookup () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -4191,9 +4174,8 @@ public:
}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -4339,7 +4321,7 @@ public:
LoadSubCommand ("query", CommandObjectSP (new CommandObjectTargetModulesSearchPathsQuery (interpreter)));
}
- ~CommandObjectTargetModulesImageSearchPaths()
+ ~CommandObjectTargetModulesImageSearchPaths() override
{
}
};
@@ -4373,8 +4355,8 @@ public:
LoadSubCommand ("show-unwind", CommandObjectSP (new CommandObjectTargetModulesShowUnwind (interpreter)));
}
- virtual
- ~CommandObjectTargetModules()
+
+ ~CommandObjectTargetModules() override
{
}
@@ -4406,12 +4388,11 @@ public:
m_option_group.Finalize();
}
- virtual
- ~CommandObjectTargetSymbolsAdd ()
+ ~CommandObjectTargetSymbolsAdd () override
{
}
- virtual int
+ int
HandleArgumentCompletion (Args &input,
int &cursor_index,
int &cursor_char_position,
@@ -4419,7 +4400,7 @@ public:
int match_start_point,
int max_return_elements,
bool &word_complete,
- StringList &matches)
+ StringList &matches) override
{
std::string completion_str (input.GetArgumentAtIndex(cursor_index));
completion_str.erase (cursor_char_position);
@@ -4435,8 +4416,8 @@ public:
return matches.GetSize();
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
@@ -4614,9 +4595,8 @@ protected:
return false;
}
- virtual bool
- DoExecute (Args& args,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Target *target = m_exe_ctx.GetTargetPtr();
result.SetStatus (eReturnStatusFailed);
@@ -4834,8 +4814,8 @@ public:
LoadSubCommand ("add", CommandObjectSP (new CommandObjectTargetSymbolsAdd (interpreter)));
}
- virtual
- ~CommandObjectTargetSymbols()
+
+ ~CommandObjectTargetSymbols() override
{
}
@@ -4874,16 +4854,16 @@ public:
{
}
- ~CommandOptions () {}
+ ~CommandOptions () override {}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -4970,7 +4950,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_class_name.clear();
m_function_name.clear();
@@ -5015,7 +4995,7 @@ public:
};
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -5030,13 +5010,13 @@ public:
{
}
- ~CommandObjectTargetStopHookAdd ()
+ ~CommandObjectTargetStopHookAdd () override
{
}
protected:
- virtual void
- IOHandlerActivated (IOHandler &io_handler)
+ void
+ IOHandlerActivated (IOHandler &io_handler) override
{
StreamFileSP output_sp(io_handler.GetOutputStreamFile());
if (output_sp)
@@ -5046,8 +5026,8 @@ protected:
}
}
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler, std::string &line)
+ void
+ IOHandlerInputComplete (IOHandler &io_handler, std::string &line) override
{
if (m_stop_hook_sp)
{
@@ -5079,7 +5059,7 @@ protected:
}
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
m_stop_hook_sp.reset();
@@ -5227,13 +5207,13 @@ public:
{
}
- ~CommandObjectTargetStopHookDelete ()
+ ~CommandObjectTargetStopHookDelete () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget();
if (target)
@@ -5303,13 +5283,13 @@ public:
{
}
- ~CommandObjectTargetStopHookEnableDisable ()
+ ~CommandObjectTargetStopHookEnableDisable () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget();
if (target)
@@ -5373,13 +5353,13 @@ public:
{
}
- ~CommandObjectTargetStopHookList ()
+ ~CommandObjectTargetStopHookList () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = GetSelectedOrDummyTarget();
if (!target)
@@ -5439,7 +5419,7 @@ public:
LoadSubCommand ("list", CommandObjectSP (new CommandObjectTargetStopHookList (interpreter)));
}
- ~CommandObjectMultiwordTargetStopHooks()
+ ~CommandObjectMultiwordTargetStopHooks() override
{
}
};
diff --git a/source/Commands/CommandObjectTarget.h b/source/Commands/CommandObjectTarget.h
index 7b66378..d99a2b0 100644
--- a/source/Commands/CommandObjectTarget.h
+++ b/source/Commands/CommandObjectTarget.h
@@ -30,12 +30,9 @@ public:
CommandObjectMultiwordTarget (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordTarget ();
-
-
+ ~CommandObjectMultiwordTarget() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectTarget_h_
+#endif // liblldb_CommandObjectTarget_h_
diff --git a/source/Commands/CommandObjectThread.cpp b/source/Commands/CommandObjectThread.cpp
index 5f38ad4..e932c9d 100644
--- a/source/Commands/CommandObjectThread.cpp
+++ b/source/Commands/CommandObjectThread.cpp
@@ -58,9 +58,10 @@ public:
{
}
- virtual ~CommandObjectIterateOverThreads() {}
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ ~CommandObjectIterateOverThreads() override {}
+
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
result.SetStatus (m_success_return);
@@ -162,13 +163,12 @@ public:
OptionParsingStarting ();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -211,7 +211,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_count = UINT32_MAX;
m_start = 0;
@@ -219,7 +219,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -248,12 +248,12 @@ public:
{
}
- ~CommandObjectThreadBacktrace()
+ ~CommandObjectThreadBacktrace() override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -285,8 +285,8 @@ protected:
}
}
- virtual bool
- HandleOneThread (Thread &thread, CommandReturnObject &result)
+ bool
+ HandleOneThread (Thread &thread, CommandReturnObject &result) override
{
Stream &strm = result.GetOutputStream();
@@ -343,13 +343,12 @@ public:
OptionParsingStarting ();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -426,7 +425,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_step_in_avoid_no_debug = eLazyBoolCalculate;
m_step_out_avoid_no_debug = eLazyBoolCalculate;
@@ -444,7 +443,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -493,21 +492,19 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectThreadStepWithTypeAndScope ()
+ ~CommandObjectThreadStepWithTypeAndScope () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
bool synchronous_execution = m_interpreter.GetSynchronous();
@@ -589,7 +586,7 @@ protected:
if (frame->HasDebugInformation ())
{
new_plan_sp = thread->QueueThreadPlanForStepInRange (abort_other_plans,
- frame->GetSymbolContext(eSymbolContextEverything).line_entry.range,
+ frame->GetSymbolContext(eSymbolContextEverything).line_entry,
frame->GetSymbolContext(eSymbolContextEverything),
m_options.m_step_in_target.c_str(),
stop_other_threads,
@@ -612,7 +609,7 @@ protected:
if (frame->HasDebugInformation())
new_plan_sp = thread->QueueThreadPlanForStepOverRange (abort_other_plans,
- frame->GetSymbolContext(eSymbolContextEverything).line_entry.range,
+ frame->GetSymbolContext(eSymbolContextEverything).line_entry,
frame->GetSymbolContext(eSymbolContextEverything),
stop_other_threads,
m_options.m_step_out_avoid_no_debug);
@@ -780,13 +777,12 @@ public:
}
- virtual
- ~CommandObjectThreadContinue ()
+ ~CommandObjectThreadContinue () override
{
}
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
bool synchronous_execution = m_interpreter.GetSynchronous ();
@@ -980,13 +976,12 @@ public:
OptionParsingStarting ();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1042,7 +1037,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_thread_idx = LLDB_INVALID_THREAD_ID;
m_frame_idx = 0;
@@ -1051,7 +1046,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1093,21 +1088,19 @@ public:
}
- virtual
- ~CommandObjectThreadUntil ()
+ ~CommandObjectThreadUntil () override
{
}
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
bool synchronous_execution = m_interpreter.GetSynchronous ();
@@ -1371,14 +1364,13 @@ public:
}
- virtual
- ~CommandObjectThreadSelect ()
+ ~CommandObjectThreadSelect () override
{
}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Process *process = m_exe_ctx.GetProcessPtr();
if (process == NULL)
@@ -1434,13 +1426,13 @@ public:
{
}
- ~CommandObjectThreadList()
+ ~CommandObjectThreadList() override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Stream &strm = result.GetOutputStream();
result.SetStatus (eReturnStatusSuccessFinishNoResult);
@@ -1492,19 +1484,18 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_json_thread = false;
m_json_stopinfo = false;
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
const int short_option = m_getopt_table[option_idx].val;
Error error;
@@ -1527,7 +1518,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1538,21 +1529,18 @@ public:
static OptionDefinition g_option_table[];
};
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
-
- virtual
- ~CommandObjectThreadInfo ()
+ ~CommandObjectThreadInfo () override
{
}
- virtual bool
- HandleOneThread (Thread &thread, CommandReturnObject &result)
+ bool
+ HandleOneThread (Thread &thread, CommandReturnObject &result) override
{
Stream &strm = result.GetOutputStream();
if (!thread.GetDescription (strm, eDescriptionLevelFull, m_options.m_json_thread, m_options.m_json_stopinfo))
@@ -1597,13 +1585,12 @@ public:
OptionParsingStarting ();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1631,13 +1618,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_from_expression = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1651,9 +1638,8 @@ public:
// Instance variables to hold the values for command options.
};
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -1686,17 +1672,14 @@ public:
}
- ~CommandObjectThreadReturn()
+ ~CommandObjectThreadReturn() override
{
}
protected:
- bool DoExecute
- (
- const char *command,
- CommandReturnObject &result
- )
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
// I am going to handle this by hand, because I don't want you to have to say:
// "thread return -- -5".
@@ -1810,7 +1793,7 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_filenames.Clear();
m_line_num = 0;
@@ -1819,13 +1802,12 @@ public:
m_force = false;
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
bool success;
const int short_option = m_getopt_table[option_idx].val;
@@ -1866,7 +1848,7 @@ public:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1880,9 +1862,8 @@ public:
static OptionDefinition g_option_table[];
};
- virtual
Options *
- GetOptions ()
+ GetOptions () override
{
return &m_options;
}
@@ -1900,13 +1881,13 @@ public:
{
}
- ~CommandObjectThreadJump()
+ ~CommandObjectThreadJump() override
{
}
protected:
- bool DoExecute (Args& args, CommandReturnObject &result)
+ bool DoExecute (Args& args, CommandReturnObject &result) override
{
RegisterContext *reg_ctx = m_exe_ctx.GetRegisterContext();
StackFrame *frame = m_exe_ctx.GetFramePtr();
@@ -2017,13 +1998,12 @@ public:
OptionParsingStarting ();
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -2049,14 +2029,14 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_verbose = false;
m_internal = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -2085,19 +2065,19 @@ public:
{
}
- ~CommandObjectThreadPlanList ()
+ ~CommandObjectThreadPlanList () override
{
}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
protected:
- virtual bool
- HandleOneThread (Thread &thread, CommandReturnObject &result)
+ bool
+ HandleOneThread (Thread &thread, CommandReturnObject &result) override
{
Stream &strm = result.GetOutputStream();
DescriptionLevel desc_level = eDescriptionLevelFull;
@@ -2148,10 +2128,10 @@ public:
m_arguments.push_back (arg);
}
- virtual ~CommandObjectThreadPlanDiscard () {}
+ ~CommandObjectThreadPlanDiscard () override {}
bool
- DoExecute (Args& args, CommandReturnObject &result)
+ DoExecute (Args& args, CommandReturnObject &result) override
{
Thread *thread = m_exe_ctx.GetThreadPtr();
if (args.GetArgumentCount() != 1)
@@ -2211,7 +2191,7 @@ public:
LoadSubCommand ("discard", CommandObjectSP (new CommandObjectThreadPlanDiscard (interpreter)));
}
- virtual ~CommandObjectMultiwordThreadPlan () {}
+ ~CommandObjectMultiwordThreadPlan () override {}
};
diff --git a/source/Commands/CommandObjectThread.h b/source/Commands/CommandObjectThread.h
index 52902ee..90f8236 100644
--- a/source/Commands/CommandObjectThread.h
+++ b/source/Commands/CommandObjectThread.h
@@ -24,11 +24,9 @@ public:
CommandObjectMultiwordThread (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordThread ();
-
+ ~CommandObjectMultiwordThread() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectThread_h_
+#endif // liblldb_CommandObjectThread_h_
diff --git a/source/Commands/CommandObjectType.cpp b/source/Commands/CommandObjectType.cpp
index 584e94d..b57ac70 100644
--- a/source/Commands/CommandObjectType.cpp
+++ b/source/Commands/CommandObjectType.cpp
@@ -30,6 +30,10 @@
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Interpreter/Options.h"
#include "lldb/Interpreter/OptionGroupFormat.h"
+#include "lldb/Interpreter/OptionValueBoolean.h"
+#include "lldb/Interpreter/OptionValueLanguage.h"
+#include "lldb/Interpreter/OptionValueString.h"
+#include "lldb/Target/Language.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/Target.h"
@@ -144,17 +148,16 @@ private:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg);
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override;
void
- OptionParsingStarting ();
+ OptionParsingStarting () override;
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -177,8 +180,8 @@ private:
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -200,12 +203,12 @@ public:
CommandObjectTypeSummaryAdd (CommandInterpreter &interpreter);
- ~CommandObjectTypeSummaryAdd ()
+ ~CommandObjectTypeSummaryAdd () override
{
}
- virtual void
- IOHandlerActivated (IOHandler &io_handler)
+ void
+ IOHandlerActivated (IOHandler &io_handler) override
{
static const char *g_summary_addreader_instructions = "Enter your Python command(s). Type 'DONE' to end.\n"
"def function (valobj,internal_dict):\n"
@@ -221,8 +224,8 @@ public:
}
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler, std::string &data)
+ void
+ IOHandlerInputComplete (IOHandler &io_handler, std::string &data) override
{
StreamFileSP error_sp = io_handler.GetErrorStreamFile();
@@ -353,7 +356,7 @@ public:
Error* error = NULL);
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result);
+ DoExecute (Args& command, CommandReturnObject &result) override;
};
@@ -383,11 +386,10 @@ private:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -428,7 +430,7 @@ private:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_cascade = true;
m_class_name = "";
@@ -441,7 +443,7 @@ private:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -469,8 +471,8 @@ private:
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -483,7 +485,7 @@ private:
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
WarnOnPotentialUnquotedUnsignedType(command, result);
@@ -499,8 +501,8 @@ protected:
}
}
- virtual void
- IOHandlerActivated (IOHandler &io_handler)
+ void
+ IOHandlerActivated (IOHandler &io_handler) override
{
StreamFileSP output_sp(io_handler.GetOutputStreamFile());
if (output_sp)
@@ -511,8 +513,8 @@ protected:
}
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler, std::string &data)
+ void
+ IOHandlerInputComplete (IOHandler &io_handler, std::string &data) override
{
StreamFileSP error_sp = io_handler.GetErrorStreamFile();
@@ -626,7 +628,7 @@ public:
CommandObjectTypeSynthAdd (CommandInterpreter &interpreter);
- ~CommandObjectTypeSynthAdd ()
+ ~CommandObjectTypeSynthAdd () override
{
}
@@ -656,22 +658,21 @@ private:
{
}
- virtual
- ~CommandOptions ()
+ ~CommandOptions () override
{
}
- virtual uint32_t
- GetNumDefinitions ();
+ uint32_t
+ GetNumDefinitions () override;
- virtual const OptionDefinition*
- GetDefinitions ()
+ const OptionDefinition*
+ GetDefinitions () override
{
return g_option_table;
}
- virtual void
- OptionParsingStarting (CommandInterpreter &interpreter)
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
{
m_cascade = true;
m_skip_pointers = false;
@@ -680,10 +681,10 @@ private:
m_category.assign("default");
m_custom_type_name.clear();
}
- virtual Error
+ Error
SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
- const char *option_value)
+ const char *option_value) override
{
Error error;
const int short_option = g_option_table[option_idx].short_option;
@@ -737,8 +738,8 @@ private:
OptionGroupFormat m_format_options;
CommandOptions m_command_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
@@ -806,13 +807,13 @@ pointers to floats. Nor will it change the default display for Afloat and Bfloa
}
- ~CommandObjectTypeFormatAdd ()
+ ~CommandObjectTypeFormatAdd () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
@@ -906,14 +907,9 @@ CommandObjectTypeFormatAdd::CommandOptions::GetNumDefinitions ()
return sizeof(g_option_table) / sizeof (OptionDefinition);
}
-
-//-------------------------------------------------------------------------
-// CommandObjectTypeFormatDelete
-//-------------------------------------------------------------------------
-
-class CommandObjectTypeFormatDelete : public CommandObjectParsed
+class CommandObjectTypeFormatterDelete : public CommandObjectParsed
{
-private:
+protected:
class CommandOptions : public Options
{
public:
@@ -923,11 +919,10 @@ private:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -940,6 +935,9 @@ private:
case 'w':
m_category = std::string(option_arg);
break;
+ case 'l':
+ m_language = Language::GetLanguageTypeFromString(option_arg);
+ break;
default:
error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
break;
@@ -949,14 +947,15 @@ private:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_delete_all = false;
m_category = "default";
+ m_language = lldb::eLanguageTypeUnknown;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -969,33 +968,29 @@ private:
bool m_delete_all;
std::string m_category;
-
+ lldb::LanguageType m_language;
};
CommandOptions m_options;
+ uint32_t m_formatter_kind_mask;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& category_sp)
- {
- ConstString *name = (ConstString*)param;
- category_sp->Delete(*name, eFormatCategoryItemValue | eFormatCategoryItemRegexValue);
- return true;
- }
-
public:
- CommandObjectTypeFormatDelete (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type format delete",
- "Delete an existing formatting style for a type.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeFormatterDelete (CommandInterpreter &interpreter,
+ uint32_t formatter_kind_mask,
+ const char* name,
+ const char* help) :
+ CommandObjectParsed (interpreter,
+ name,
+ help,
+ NULL),
+ m_options(interpreter),
+ m_formatter_kind_mask(formatter_kind_mask)
{
CommandArgumentEntry type_arg;
CommandArgumentData type_style_arg;
@@ -1009,13 +1004,17 @@ public:
}
- ~CommandObjectTypeFormatDelete ()
+ ~CommandObjectTypeFormatterDelete () override = default;
+
+protected:
+ virtual bool
+ FormatterSpecificDeletion (ConstString typeCS)
{
+ return false;
}
-protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
@@ -1038,25 +1037,42 @@ protected:
if (m_options.m_delete_all)
{
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, &typeCS);
+ DataVisualization::Categories::ForEach( [this, typeCS] (const lldb::TypeCategoryImplSP& category_sp) -> bool {
+ category_sp->Delete(typeCS, m_formatter_kind_mask);
+ return true;
+ });
result.SetStatus(eReturnStatusSuccessFinishNoResult);
return result.Succeeded();
}
- lldb::TypeCategoryImplSP category;
- DataVisualization::Categories::GetCategory(ConstString(m_options.m_category.c_str()), category);
+ bool delete_category = false;
+ bool extra_deletion = false;
- bool delete_category = category->Delete(typeCS,
- eFormatCategoryItemValue | eFormatCategoryItemRegexValue);
+ if (m_options.m_language != lldb::eLanguageTypeUnknown)
+ {
+ lldb::TypeCategoryImplSP category;
+ DataVisualization::Categories::GetCategory(m_options.m_language, category);
+ if (category)
+ delete_category = category->Delete(typeCS, m_formatter_kind_mask);
+ extra_deletion = FormatterSpecificDeletion(typeCS);
+ }
+ else
+ {
+ lldb::TypeCategoryImplSP category;
+ DataVisualization::Categories::GetCategory(ConstString(m_options.m_category.c_str()), category);
+ if (category)
+ delete_category = category->Delete(typeCS, m_formatter_kind_mask);
+ extra_deletion = FormatterSpecificDeletion(typeCS);
+ }
- if (delete_category)
+ if (delete_category || extra_deletion)
{
result.SetStatus(eReturnStatusSuccessFinishNoResult);
return result.Succeeded();
}
else
{
- result.AppendErrorWithFormat ("no custom format for %s.\n", typeA);
+ result.AppendErrorWithFormat ("no custom formatter for %s.\n", typeA);
result.SetStatus(eReturnStatusFailed);
return false;
}
@@ -1066,18 +1082,15 @@ protected:
};
OptionDefinition
-CommandObjectTypeFormatDelete::CommandOptions::g_option_table[] =
+CommandObjectTypeFormatterDelete::CommandOptions::g_option_table[] =
{
{ LLDB_OPT_SET_1, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Delete from every category."},
{ LLDB_OPT_SET_2, false, "category", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Delete from given category."},
+ { LLDB_OPT_SET_3, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Delete from given language's category."},
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
-//-------------------------------------------------------------------------
-// CommandObjectTypeFormatClear
-//-------------------------------------------------------------------------
-
-class CommandObjectTypeFormatClear : public CommandObjectParsed
+class CommandObjectTypeFormatterClear : public CommandObjectParsed
{
private:
@@ -1090,11 +1103,10 @@ private:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1113,13 +1125,13 @@ private:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_delete_all = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -1129,50 +1141,52 @@ private:
static OptionDefinition g_option_table[];
// Instance variables to hold the values for command options.
-
bool m_delete_all;
- bool m_delete_named;
};
CommandOptions m_options;
-
- virtual Options *
- GetOptions ()
+ uint32_t m_formatter_kind_mask;
+
+ Options *
+ GetOptions () override
{
return &m_options;
}
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& cate)
+public:
+ CommandObjectTypeFormatterClear (CommandInterpreter &interpreter,
+ uint32_t formatter_kind_mask,
+ const char* name,
+ const char* help) :
+ CommandObjectParsed (interpreter,
+ name,
+ help,
+ NULL),
+ m_options(interpreter),
+ m_formatter_kind_mask(formatter_kind_mask)
{
- cate->GetTypeFormatsContainer()->Clear();
- cate->GetRegexTypeFormatsContainer()->Clear();
- return true;
-
}
-public:
- CommandObjectTypeFormatClear (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type format clear",
- "Delete all existing format styles.",
- NULL),
- m_options(interpreter)
+ ~CommandObjectTypeFormatterClear () override
{
}
- ~CommandObjectTypeFormatClear ()
+protected:
+ virtual void
+ FormatterSpecificDeletion ()
{
}
-protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
if (m_options.m_delete_all)
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, NULL);
-
+ {
+ DataVisualization::Categories::ForEach( [this] (const TypeCategoryImplSP& category_sp) -> bool {
+ category_sp->Clear(m_formatter_kind_mask);
+ return true;
+ });
+ }
else
{
lldb::TypeCategoryImplSP category;
@@ -1183,10 +1197,14 @@ protected:
DataVisualization::Categories::GetCategory(cat_nameCS, category);
}
else
+ {
DataVisualization::Categories::GetCategory(ConstString(NULL), category);
- category->Clear(eFormatCategoryItemValue | eFormatCategoryItemRegexValue);
+ }
+ category->Clear(m_formatter_kind_mask);
}
+ FormatterSpecificDeletion();
+
result.SetStatus(eReturnStatusSuccessFinishResult);
return result.Succeeded();
}
@@ -1194,46 +1212,68 @@ protected:
};
OptionDefinition
-CommandObjectTypeFormatClear::CommandOptions::g_option_table[] =
+CommandObjectTypeFormatterClear::CommandOptions::g_option_table[] =
{
{ LLDB_OPT_SET_ALL, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Clear every category."},
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
//-------------------------------------------------------------------------
-// CommandObjectTypeFormatList
+// CommandObjectTypeFormatDelete
//-------------------------------------------------------------------------
-bool CommandObjectTypeFormatList_LoopCallback(void* pt2self, ConstString type, const lldb::TypeFormatImplSP& entry);
-bool CommandObjectTypeRXFormatList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const lldb::TypeFormatImplSP& entry);
+class CommandObjectTypeFormatDelete : public CommandObjectTypeFormatterDelete
+{
+public:
+ CommandObjectTypeFormatDelete (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterDelete (interpreter,
+ eFormatCategoryItemValue | eFormatCategoryItemRegexValue,
+ "type format delete",
+ "Delete an existing formatting style for a type.")
+ {
+ }
+
+ ~CommandObjectTypeFormatDelete () override
+ {
+ }
+};
-class CommandObjectTypeFormatList;
+//-------------------------------------------------------------------------
+// CommandObjectTypeFormatClear
+//-------------------------------------------------------------------------
-struct CommandObjectTypeFormatList_LoopCallbackParam {
- CommandObjectTypeFormatList* self;
- CommandReturnObject* result;
- RegularExpression* regex;
- RegularExpression* cate_regex;
- CommandObjectTypeFormatList_LoopCallbackParam(CommandObjectTypeFormatList* S, CommandReturnObject* R,
- RegularExpression* X = NULL, RegularExpression* CX = NULL) : self(S), result(R), regex(X), cate_regex(CX) {}
+class CommandObjectTypeFormatClear : public CommandObjectTypeFormatterClear
+{
+public:
+ CommandObjectTypeFormatClear (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterClear (interpreter,
+ eFormatCategoryItemValue | eFormatCategoryItemRegexValue,
+ "type format clear",
+ "Delete all existing format styles.")
+ {
+ }
};
-class CommandObjectTypeFormatList : public CommandObjectParsed
+template <typename FormatterType>
+class CommandObjectTypeFormatterList : public CommandObjectParsed
{
+ typedef typename FormatterType::SharedPointer FormatterSharedPointer;
+
class CommandOptions : public Options
{
public:
CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
+ Options (interpreter),
+ m_category_regex("",""),
+ m_category_language(lldb::eLanguageTypeUnknown, lldb::eLanguageTypeUnknown)
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -1241,7 +1281,10 @@ class CommandObjectTypeFormatList : public CommandObjectParsed
switch (short_option)
{
case 'w':
- m_category_regex = std::string(option_arg);
+ m_category_regex.SetCurrentValue(option_arg);
+ break;
+ case 'l':
+ error = m_category_language.SetValueFromString(option_arg);
break;
default:
error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
@@ -1252,14 +1295,22 @@ class CommandObjectTypeFormatList : public CommandObjectParsed
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
- m_category_regex = "";
+ m_category_regex.Clear();
+ m_category_language.Clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
+ static OptionDefinition g_option_table[] =
+ {
+ { LLDB_OPT_SET_1, false, "category-regex", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Only show categories matching this filter."},
+ { LLDB_OPT_SET_2, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Only show the category for a specific language."},
+ { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
+ };
+
return g_option_table;
}
@@ -1269,23 +1320,25 @@ class CommandObjectTypeFormatList : public CommandObjectParsed
// Instance variables to hold the values for command options.
- std::string m_category_regex;
-
+ OptionValueString m_category_regex;
+ OptionValueLanguage m_category_language;
};
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
public:
- CommandObjectTypeFormatList (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterList (CommandInterpreter &interpreter,
+ const char* name,
+ const char* help) :
CommandObjectParsed (interpreter,
- "type format list",
- "Show a list of current formatting styles.",
+ name,
+ help,
NULL),
m_options(interpreter)
{
@@ -1300,117 +1353,155 @@ public:
m_arguments.push_back (type_arg);
}
- ~CommandObjectTypeFormatList ()
+ ~CommandObjectTypeFormatterList () override
{
}
protected:
+ virtual void
+ FormatterSpecificList (CommandReturnObject &result)
+ {
+ }
+
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
- CommandObjectTypeFormatList_LoopCallbackParam *param;
- RegularExpression* cate_regex =
- m_options.m_category_regex.empty() ? NULL :
- new RegularExpression(m_options.m_category_regex.c_str());
+ std::unique_ptr<RegularExpression> category_regex;
+ std::unique_ptr<RegularExpression> formatter_regex;
- if (argc == 1)
+ if (m_options.m_category_regex.OptionWasSet())
{
- RegularExpression* regex = new RegularExpression(command.GetArgumentAtIndex(0));
- regex->Compile(command.GetArgumentAtIndex(0));
- param = new CommandObjectTypeFormatList_LoopCallbackParam(this,&result,regex,cate_regex);
+ category_regex.reset(new RegularExpression());
+ if (!category_regex->Compile(m_options.m_category_regex.GetCurrentValue()))
+ {
+ result.AppendErrorWithFormat("syntax error in category regular expression '%s'", m_options.m_category_regex.GetCurrentValue());
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
}
- else
- param = new CommandObjectTypeFormatList_LoopCallbackParam(this,&result,NULL,cate_regex);
-
- DataVisualization::Categories::LoopThrough(PerCategoryCallback,param);
- delete param;
-
- if (cate_regex)
- delete cate_regex;
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
-private:
-
- static bool
- PerCategoryCallback(void* param_vp,
- const lldb::TypeCategoryImplSP& cate)
- {
-
- CommandObjectTypeFormatList_LoopCallbackParam* param =
- (CommandObjectTypeFormatList_LoopCallbackParam*)param_vp;
- CommandReturnObject* result = param->result;
-
- const char* cate_name = cate->GetName();
-
- // if the category is disabled or empty and there is no regex, just skip it
- if ((cate->IsEnabled() == false || cate->GetCount(eFormatCategoryItemValue | eFormatCategoryItemRegexValue) == 0) && param->cate_regex == NULL)
- return true;
-
- // if we have a regex and this category does not match it, just skip it
- if(param->cate_regex != NULL && strcmp(cate_name,param->cate_regex->GetText()) != 0 && param->cate_regex->Execute(cate_name) == false)
- return true;
-
- result->GetOutputStream().Printf("-----------------------\nCategory: %s (%s)\n-----------------------\n",
- cate_name,
- (cate->IsEnabled() ? "enabled" : "disabled"));
+ if (argc == 1)
+ {
+ const char* arg = command.GetArgumentAtIndex(1);
+ formatter_regex.reset(new RegularExpression());
+ if (!formatter_regex->Compile(arg))
+ {
+ result.AppendErrorWithFormat("syntax error in regular expression '%s'", arg);
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
+ }
- cate->GetTypeFormatsContainer()->LoopThrough(CommandObjectTypeFormatList_LoopCallback, param_vp);
+ auto category_closure = [&result, &formatter_regex] (const lldb::TypeCategoryImplSP& category) -> void {
+ result.GetOutputStream().Printf("-----------------------\nCategory: %s\n-----------------------\n", category->GetName());
+
+ typedef const std::shared_ptr<FormatterType> Bar;
+ typedef std::function<bool(ConstString,Bar)> Func1Type;
+ typedef std::function<bool(RegularExpressionSP,Bar)> Func2Type;
+
+ TypeCategoryImpl::ForEachCallbacks<FormatterType> foreach;
+ foreach.SetExact([&result, &formatter_regex] (ConstString name, const FormatterSharedPointer& format_sp) -> bool {
+ if (formatter_regex)
+ {
+ bool escape = true;
+ if (0 == strcmp(name.AsCString(), formatter_regex->GetText()))
+ {
+ escape = false;
+ }
+ else if (formatter_regex->Execute(name.AsCString()))
+ {
+ escape = false;
+ }
+
+ if (escape)
+ return true;
+ }
+
+ result.GetOutputStream().Printf ("%s: %s\n", name.AsCString(), format_sp->GetDescription().c_str());
+
+ return true;
+ });
+
+ foreach.SetWithRegex( [&result, &formatter_regex] (RegularExpressionSP regex_sp, const FormatterSharedPointer& format_sp) -> bool {
+ if (formatter_regex)
+ {
+ bool escape = true;
+ if (0 == strcmp(regex_sp->GetText(), formatter_regex->GetText()))
+ {
+ escape = false;
+ }
+ else if (formatter_regex->Execute(regex_sp->GetText()))
+ {
+ escape = false;
+ }
+
+ if (escape)
+ return true;
+ }
+
+ result.GetOutputStream().Printf ("%s: %s\n", regex_sp->GetText(), format_sp->GetDescription().c_str());
+
+ return true;
+ });
+
+ category->ForEach(foreach);
+ };
- if (cate->GetRegexTypeSummariesContainer()->GetCount() > 0)
+ if (m_options.m_category_language.OptionWasSet())
{
- result->GetOutputStream().Printf("Regex-based summaries (slower):\n");
- cate->GetRegexTypeFormatsContainer()->LoopThrough(CommandObjectTypeRXFormatList_LoopCallback, param_vp);
+ lldb::TypeCategoryImplSP category_sp;
+ DataVisualization::Categories::GetCategory(m_options.m_category_language.GetCurrentValue(), category_sp);
+ if (category_sp)
+ category_closure(category_sp);
}
- return true;
- }
-
-
- bool
- LoopCallback (const char* type,
- const lldb::TypeFormatImplSP& entry,
- RegularExpression* regex,
- CommandReturnObject *result)
- {
- if (regex == NULL || strcmp(type,regex->GetText()) == 0 || regex->Execute(type))
- result->GetOutputStream().Printf ("%s: %s\n", type, entry->GetDescription().c_str());
- return true;
+ else
+ {
+ DataVisualization::Categories::ForEach( [this, &command, &result, &category_regex, &formatter_regex, &category_closure] (const lldb::TypeCategoryImplSP& category) -> bool {
+ if (category_regex)
+ {
+ bool escape = true;
+ if (0 == strcmp(category->GetName(), category_regex->GetText()))
+ {
+ escape = false;
+ }
+ else if (category_regex->Execute(category->GetName()))
+ {
+ escape = false;
+ }
+
+ if (escape)
+ return true;
+ }
+
+ category_closure(category);
+
+ return true;
+ });
+
+ FormatterSpecificList(result);
+ }
+
+ result.SetStatus(eReturnStatusSuccessFinishResult);
+ return result.Succeeded();
}
-
- friend bool CommandObjectTypeFormatList_LoopCallback(void* pt2self, ConstString type, const lldb::TypeFormatImplSP& entry);
- friend bool CommandObjectTypeRXFormatList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const lldb::TypeFormatImplSP& entry);
-
};
-bool
-CommandObjectTypeFormatList_LoopCallback (
- void* pt2self,
- ConstString type,
- const lldb::TypeFormatImplSP& entry)
-{
- CommandObjectTypeFormatList_LoopCallbackParam* param = (CommandObjectTypeFormatList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(type.AsCString(), entry, param->regex, param->result);
-}
-
-bool
-CommandObjectTypeRXFormatList_LoopCallback (
- void* pt2self,
- lldb::RegularExpressionSP regex,
- const lldb::TypeFormatImplSP& entry)
-{
- CommandObjectTypeFormatList_LoopCallbackParam* param = (CommandObjectTypeFormatList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(regex->GetText(), entry, param->regex, param->result);
-}
+//-------------------------------------------------------------------------
+// CommandObjectTypeFormatList
+//-------------------------------------------------------------------------
-OptionDefinition
-CommandObjectTypeFormatList::CommandOptions::g_option_table[] =
+class CommandObjectTypeFormatList : public CommandObjectTypeFormatterList<TypeFormatImpl>
{
- { LLDB_OPT_SET_ALL, false, "category-regex", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Only show categories matching this filter."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
+public:
+
+ CommandObjectTypeFormatList (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterList(interpreter,
+ "type format list",
+ "Show a list of current formats.")
+ {
+ }
};
#ifndef LLDB_DISABLE_PYTHON
@@ -1438,6 +1529,9 @@ CommandObjectTypeSummaryAdd::CommandOptions::SetOptionValue (uint32_t option_idx
case 'e':
m_flags.SetDontShowChildren(false);
break;
+ case 'h':
+ m_flags.SetHideEmptyAggregates(true);
+ break;
case 'v':
m_flags.SetDontShowValue(true);
break;
@@ -1924,6 +2018,7 @@ CommandObjectTypeSummaryAdd::CommandOptions::g_option_table[] =
{ LLDB_OPT_SET_3, false, "python-function", 'F', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypePythonFunction, "Give the name of a Python function to use for this type."},
{ LLDB_OPT_SET_3, false, "input-python", 'P', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Input Python code to use for this type manually."},
{ LLDB_OPT_SET_2 | LLDB_OPT_SET_3, false, "expand", 'e', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Expand aggregate data types to show children on separate lines."},
+ { LLDB_OPT_SET_2 | LLDB_OPT_SET_3, false, "hide-empty", 'h', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Do not expand aggregate data types with no children."},
{ LLDB_OPT_SET_2 | LLDB_OPT_SET_3, false, "name", 'n', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "A name for this summary string."},
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
@@ -1933,194 +2028,113 @@ CommandObjectTypeSummaryAdd::CommandOptions::g_option_table[] =
// CommandObjectTypeSummaryDelete
//-------------------------------------------------------------------------
-class CommandObjectTypeSummaryDelete : public CommandObjectParsed
+class CommandObjectTypeSummaryDelete : public CommandObjectTypeFormatterDelete
{
-private:
- class CommandOptions : public Options
+public:
+ CommandObjectTypeSummaryDelete (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterDelete (interpreter,
+ eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary,
+ "type summary delete",
+ "Delete an existing summary for a type.")
{
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- }
-
- virtual
- ~CommandOptions (){}
-
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 'a':
- m_delete_all = true;
- break;
- case 'w':
- m_category = std::string(option_arg);
- break;
- default:
- error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
- break;
- }
-
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_delete_all = false;
- m_category = "default";
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
-
- bool m_delete_all;
- std::string m_category;
-
- };
-
- CommandOptions m_options;
+ }
- virtual Options *
- GetOptions ()
+ ~CommandObjectTypeSummaryDelete () override
{
- return &m_options;
}
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& category_sp)
+protected:
+ bool
+ FormatterSpecificDeletion (ConstString typeCS) override
{
- ConstString *name = (ConstString*)param;
- category_sp->Delete(*name, eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary);
- return true;
+ if (m_options.m_language != lldb::eLanguageTypeUnknown)
+ return false;
+ return DataVisualization::NamedSummaryFormats::Delete(typeCS);
}
+};
+class CommandObjectTypeSummaryClear : public CommandObjectTypeFormatterClear
+{
public:
- CommandObjectTypeSummaryDelete (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type summary delete",
- "Delete an existing summary style for a type.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeSummaryClear (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterClear (interpreter,
+ eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary,
+ "type summary clear",
+ "Delete all existing summaries.")
{
- CommandArgumentEntry type_arg;
- CommandArgumentData type_style_arg;
-
- type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatPlain;
-
- type_arg.push_back (type_style_arg);
-
- m_arguments.push_back (type_arg);
-
}
- ~CommandObjectTypeSummaryDelete ()
+protected:
+ void
+ FormatterSpecificDeletion () override
+ {
+ DataVisualization::NamedSummaryFormats::Clear();
+ }
+};
+
+//-------------------------------------------------------------------------
+// CommandObjectTypeSummaryList
+//-------------------------------------------------------------------------
+
+class CommandObjectTypeSummaryList : public CommandObjectTypeFormatterList<TypeSummaryImpl>
+{
+public:
+
+ CommandObjectTypeSummaryList (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterList(interpreter,
+ "type summary list",
+ "Show a list of current summaries.")
{
}
protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
+ void
+ FormatterSpecificList (CommandReturnObject &result) override
{
- const size_t argc = command.GetArgumentCount();
-
- if (argc != 1)
- {
- result.AppendErrorWithFormat ("%s takes 1 arg.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- const char* typeA = command.GetArgumentAtIndex(0);
- ConstString typeCS(typeA);
-
- if (!typeCS)
- {
- result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- if (m_options.m_delete_all)
- {
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, &typeCS);
- result.SetStatus(eReturnStatusSuccessFinishNoResult);
- return result.Succeeded();
- }
-
- lldb::TypeCategoryImplSP category;
- DataVisualization::Categories::GetCategory(ConstString(m_options.m_category.c_str()), category);
-
- bool delete_category = category->Delete(typeCS,
- eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary);
- bool delete_named = DataVisualization::NamedSummaryFormats::Delete(typeCS);
-
- if (delete_category || delete_named)
- {
- result.SetStatus(eReturnStatusSuccessFinishNoResult);
- return result.Succeeded();
- }
- else
+ if (DataVisualization::NamedSummaryFormats::GetCount() > 0)
{
- result.AppendErrorWithFormat ("no custom summary for %s.\n", typeA);
- result.SetStatus(eReturnStatusFailed);
- return false;
+ result.GetOutputStream().Printf("Named summaries:\n");
+ DataVisualization::NamedSummaryFormats::ForEach( [&result] (ConstString name, const TypeSummaryImplSP& summary_sp) -> bool {
+ result.GetOutputStream().Printf ("%s: %s\n", name.AsCString(), summary_sp->GetDescription().c_str());
+ return true;
+ });
}
-
}
};
-OptionDefinition
-CommandObjectTypeSummaryDelete::CommandOptions::g_option_table[] =
-{
- { LLDB_OPT_SET_1, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Delete from every category."},
- { LLDB_OPT_SET_2, false, "category", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Delete from given category."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
-};
+//-------------------------------------------------------------------------
+// CommandObjectTypeCategoryDefine
+//-------------------------------------------------------------------------
-class CommandObjectTypeSummaryClear : public CommandObjectParsed
+class CommandObjectTypeCategoryDefine : public CommandObjectParsed
{
-private:
class CommandOptions : public Options
{
public:
CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
+ Options (interpreter),
+ m_define_enabled(false,false),
+ m_cate_language(eLanguageTypeUnknown,eLanguageTypeUnknown)
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
switch (short_option)
{
- case 'a':
- m_delete_all = true;
+ case 'e':
+ m_define_enabled.SetValueFromString("true");
+ break;
+ case 'l':
+ error = m_cate_language.SetValueFromString(option_arg);
break;
default:
error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
@@ -2131,13 +2145,14 @@ private:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
- m_delete_all = false;
+ m_define_enabled.Clear();
+ m_cate_language.Clear();
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -2148,66 +2163,69 @@ private:
// Instance variables to hold the values for command options.
- bool m_delete_all;
- bool m_delete_named;
+ OptionValueBoolean m_define_enabled;
+ OptionValueLanguage m_cate_language;
+
+
};
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
-
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& cate)
- {
- cate->GetTypeSummariesContainer()->Clear();
- cate->GetRegexTypeSummariesContainer()->Clear();
- return true;
-
- }
-
+
public:
- CommandObjectTypeSummaryClear (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type summary clear",
- "Delete all existing summary styles.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeCategoryDefine (CommandInterpreter &interpreter) :
+ CommandObjectParsed (interpreter,
+ "type category define",
+ "Define a new category as a source of formatters.",
+ NULL),
+ m_options(interpreter)
{
+ CommandArgumentEntry type_arg;
+ CommandArgumentData type_style_arg;
+
+ type_style_arg.arg_type = eArgTypeName;
+ type_style_arg.arg_repetition = eArgRepeatPlus;
+
+ type_arg.push_back (type_style_arg);
+
+ m_arguments.push_back (type_arg);
+
}
- ~CommandObjectTypeSummaryClear ()
+ ~CommandObjectTypeCategoryDefine () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
+ const size_t argc = command.GetArgumentCount();
- if (m_options.m_delete_all)
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, NULL);
+ if (argc < 1)
+ {
+ result.AppendErrorWithFormat ("%s takes 1 or more args.\n", m_cmd_name.c_str());
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
- else
- {
- lldb::TypeCategoryImplSP category;
- if (command.GetArgumentCount() > 0)
+ for (size_t i = 0; i < argc; i++)
+ {
+ const char* cateName = command.GetArgumentAtIndex(i);
+ TypeCategoryImplSP category_sp;
+ if (DataVisualization::Categories::GetCategory(ConstString(cateName), category_sp) && category_sp)
{
- const char* cat_name = command.GetArgumentAtIndex(0);
- ConstString cat_nameCS(cat_name);
- DataVisualization::Categories::GetCategory(cat_nameCS, category);
+ category_sp->AddLanguage(m_options.m_cate_language.GetCurrentValue());
+ if (m_options.m_define_enabled.GetCurrentValue())
+ DataVisualization::Categories::Enable(category_sp, TypeCategoryMap::Default);
}
- else
- DataVisualization::Categories::GetCategory(ConstString(NULL), category);
- category->Clear(eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary);
}
- DataVisualization::NamedSummaryFormats::Clear();
-
result.SetStatus(eReturnStatusSuccessFinishResult);
return result.Succeeded();
}
@@ -2215,34 +2233,19 @@ protected:
};
OptionDefinition
-CommandObjectTypeSummaryClear::CommandOptions::g_option_table[] =
+CommandObjectTypeCategoryDefine::CommandOptions::g_option_table[] =
{
- { LLDB_OPT_SET_ALL, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Clear every category."},
+ { LLDB_OPT_SET_ALL, false, "enabled", 'e', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "If specified, this category will be created enabled."},
+ { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Specify the language that this category is supported for."},
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
//-------------------------------------------------------------------------
-// CommandObjectTypeSummaryList
+// CommandObjectTypeCategoryEnable
//-------------------------------------------------------------------------
-bool CommandObjectTypeSummaryList_LoopCallback(void* pt2self, ConstString type, const StringSummaryFormat::SharedPointer& entry);
-bool CommandObjectTypeRXSummaryList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const StringSummaryFormat::SharedPointer& entry);
-
-class CommandObjectTypeSummaryList;
-
-struct CommandObjectTypeSummaryList_LoopCallbackParam {
- CommandObjectTypeSummaryList* self;
- CommandReturnObject* result;
- RegularExpression* regex;
- RegularExpression* cate_regex;
- CommandObjectTypeSummaryList_LoopCallbackParam(CommandObjectTypeSummaryList* S, CommandReturnObject* R,
- RegularExpression* X = NULL,
- RegularExpression* CX = NULL) : self(S), result(R), regex(X), cate_regex(CX) {}
-};
-
-class CommandObjectTypeSummaryList : public CommandObjectParsed
+class CommandObjectTypeCategoryEnable : public CommandObjectParsed
{
-
class CommandOptions : public Options
{
public:
@@ -2252,19 +2255,23 @@ class CommandObjectTypeSummaryList : public CommandObjectParsed
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
switch (short_option)
{
- case 'w':
- m_category_regex = std::string(option_arg);
+ case 'l':
+ if (option_arg)
+ {
+ m_language = Language::GetLanguageTypeFromString(option_arg);
+ if (m_language == lldb::eLanguageTypeUnknown)
+ error.SetErrorStringWithFormat ("unrecognized language '%s'", option_arg);
+ }
break;
default:
error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
@@ -2275,13 +2282,13 @@ class CommandObjectTypeSummaryList : public CommandObjectParsed
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
- m_category_regex = "";
+ m_language = lldb::eLanguageTypeUnknown;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -2292,176 +2299,25 @@ class CommandObjectTypeSummaryList : public CommandObjectParsed
// Instance variables to hold the values for command options.
- std::string m_category_regex;
+ lldb::LanguageType m_language;
};
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
public:
- CommandObjectTypeSummaryList (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type summary list",
- "Show a list of current summary styles.",
- NULL),
- m_options(interpreter)
- {
- CommandArgumentEntry type_arg;
- CommandArgumentData type_style_arg;
-
- type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatOptional;
-
- type_arg.push_back (type_style_arg);
-
- m_arguments.push_back (type_arg);
- }
-
- ~CommandObjectTypeSummaryList ()
- {
- }
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
- const size_t argc = command.GetArgumentCount();
-
- CommandObjectTypeSummaryList_LoopCallbackParam *param;
- RegularExpression* cate_regex =
- m_options.m_category_regex.empty() ? NULL :
- new RegularExpression(m_options.m_category_regex.c_str());
-
- if (argc == 1)
- {
- RegularExpression* regex = new RegularExpression(command.GetArgumentAtIndex(0));
- regex->Compile(command.GetArgumentAtIndex(0));
- param = new CommandObjectTypeSummaryList_LoopCallbackParam(this,&result,regex,cate_regex);
- }
- else
- param = new CommandObjectTypeSummaryList_LoopCallbackParam(this,&result,NULL,cate_regex);
-
- DataVisualization::Categories::LoopThrough(PerCategoryCallback,param);
- delete param;
-
- if (DataVisualization::NamedSummaryFormats::GetCount() > 0)
- {
- result.GetOutputStream().Printf("Named summaries:\n");
- if (argc == 1)
- {
- RegularExpression* regex = new RegularExpression(command.GetArgumentAtIndex(0));
- regex->Compile(command.GetArgumentAtIndex(0));
- param = new CommandObjectTypeSummaryList_LoopCallbackParam(this,&result,regex);
- }
- else
- param = new CommandObjectTypeSummaryList_LoopCallbackParam(this,&result);
- DataVisualization::NamedSummaryFormats::LoopThrough(CommandObjectTypeSummaryList_LoopCallback, param);
- delete param;
- }
-
- if (cate_regex)
- delete cate_regex;
-
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
-private:
-
- static bool
- PerCategoryCallback(void* param_vp,
- const lldb::TypeCategoryImplSP& cate)
- {
-
- CommandObjectTypeSummaryList_LoopCallbackParam* param =
- (CommandObjectTypeSummaryList_LoopCallbackParam*)param_vp;
- CommandReturnObject* result = param->result;
-
- const char* cate_name = cate->GetName();
-
- // if the category is disabled or empty and there is no regex, just skip it
- if ((cate->IsEnabled() == false || cate->GetCount(eFormatCategoryItemSummary | eFormatCategoryItemRegexSummary) == 0) && param->cate_regex == NULL)
- return true;
-
- // if we have a regex and this category does not match it, just skip it
- if(param->cate_regex != NULL && strcmp(cate_name,param->cate_regex->GetText()) != 0 && param->cate_regex->Execute(cate_name) == false)
- return true;
-
- result->GetOutputStream().Printf("-----------------------\nCategory: %s (%s)\n-----------------------\n",
- cate_name,
- (cate->IsEnabled() ? "enabled" : "disabled"));
-
- cate->GetTypeSummariesContainer()->LoopThrough(CommandObjectTypeSummaryList_LoopCallback, param_vp);
-
- if (cate->GetRegexTypeSummariesContainer()->GetCount() > 0)
- {
- result->GetOutputStream().Printf("Regex-based summaries (slower):\n");
- cate->GetRegexTypeSummariesContainer()->LoopThrough(CommandObjectTypeRXSummaryList_LoopCallback, param_vp);
- }
- return true;
- }
-
-
- bool
- LoopCallback (const char* type,
- const lldb::TypeSummaryImplSP& entry,
- RegularExpression* regex,
- CommandReturnObject *result)
- {
- if (regex == NULL || strcmp(type,regex->GetText()) == 0 || regex->Execute(type))
- result->GetOutputStream().Printf ("%s: %s\n", type, entry->GetDescription().c_str());
- return true;
- }
-
- friend bool CommandObjectTypeSummaryList_LoopCallback(void* pt2self, ConstString type, const lldb::TypeSummaryImplSP& entry);
- friend bool CommandObjectTypeRXSummaryList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const lldb::TypeSummaryImplSP& entry);
-};
-
-bool
-CommandObjectTypeSummaryList_LoopCallback (
- void* pt2self,
- ConstString type,
- const lldb::TypeSummaryImplSP& entry)
-{
- CommandObjectTypeSummaryList_LoopCallbackParam* param = (CommandObjectTypeSummaryList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(type.AsCString(), entry, param->regex, param->result);
-}
-
-bool
-CommandObjectTypeRXSummaryList_LoopCallback (
- void* pt2self,
- lldb::RegularExpressionSP regex,
- const lldb::TypeSummaryImplSP& entry)
-{
- CommandObjectTypeSummaryList_LoopCallbackParam* param = (CommandObjectTypeSummaryList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(regex->GetText(), entry, param->regex, param->result);
-}
-
-OptionDefinition
-CommandObjectTypeSummaryList::CommandOptions::g_option_table[] =
-{
- { LLDB_OPT_SET_ALL, false, "category-regex", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Only show categories matching this filter."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
-};
-
-//-------------------------------------------------------------------------
-// CommandObjectTypeCategoryEnable
-//-------------------------------------------------------------------------
-
-class CommandObjectTypeCategoryEnable : public CommandObjectParsed
-{
-public:
CommandObjectTypeCategoryEnable (CommandInterpreter &interpreter) :
CommandObjectParsed (interpreter,
"type category enable",
"Enable a category as a source of formatters.",
- NULL)
+ NULL),
+ m_options(interpreter)
{
CommandArgumentEntry type_arg;
CommandArgumentData type_style_arg;
@@ -2475,19 +2331,20 @@ public:
}
- ~CommandObjectTypeCategoryEnable ()
+ ~CommandObjectTypeCategoryEnable () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
- if (argc < 1)
+ if (argc < 1 &&
+ m_options.m_language == lldb::eLanguageTypeUnknown)
{
- result.AppendErrorWithFormat ("%s takes 1 or more args.\n", m_cmd_name.c_str());
+ result.AppendErrorWithFormat ("%s takes arguments and/or a language", m_cmd_name.c_str());
result.SetStatus(eReturnStatusFailed);
return false;
}
@@ -2496,7 +2353,7 @@ protected:
{
DataVisualization::Categories::EnableStar();
}
- else
+ else if (argc > 0)
{
for (int i = argc - 1; i >= 0; i--)
{
@@ -2521,12 +2378,22 @@ protected:
}
}
+ if (m_options.m_language != lldb::eLanguageTypeUnknown)
+ DataVisualization::Categories::Enable(m_options.m_language);
+
result.SetStatus(eReturnStatusSuccessFinishResult);
return result.Succeeded();
}
};
+OptionDefinition
+CommandObjectTypeCategoryEnable::CommandOptions::g_option_table[] =
+{
+ { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Enable the category for this language."},
+ { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
+};
+
//-------------------------------------------------------------------------
// CommandObjectTypeCategoryDelete
//-------------------------------------------------------------------------
@@ -2552,13 +2419,13 @@ public:
}
- ~CommandObjectTypeCategoryDelete ()
+ ~CommandObjectTypeCategoryDelete () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
@@ -2606,185 +2473,6 @@ protected:
class CommandObjectTypeCategoryDisable : public CommandObjectParsed
{
-public:
- CommandObjectTypeCategoryDisable (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type category disable",
- "Disable a category as a source of formatters.",
- NULL)
- {
- CommandArgumentEntry type_arg;
- CommandArgumentData type_style_arg;
-
- type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatPlus;
-
- type_arg.push_back (type_style_arg);
-
- m_arguments.push_back (type_arg);
-
- }
-
- ~CommandObjectTypeCategoryDisable ()
- {
- }
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
- const size_t argc = command.GetArgumentCount();
-
- if (argc < 1)
- {
- result.AppendErrorWithFormat ("%s takes 1 or more args.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- if (argc == 1 && strcmp(command.GetArgumentAtIndex(0),"*") == 0)
- {
- DataVisualization::Categories::DisableStar();
- }
- else
- {
- // the order is not relevant here
- for (int i = argc - 1; i >= 0; i--)
- {
- const char* typeA = command.GetArgumentAtIndex(i);
- ConstString typeCS(typeA);
-
- if (!typeCS)
- {
- result.AppendError("empty category name not allowed");
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
- DataVisualization::Categories::Disable(typeCS);
- }
- }
-
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
-};
-
-//-------------------------------------------------------------------------
-// CommandObjectTypeCategoryList
-//-------------------------------------------------------------------------
-
-class CommandObjectTypeCategoryList : public CommandObjectParsed
-{
-private:
-
- struct CommandObjectTypeCategoryList_CallbackParam
- {
- CommandReturnObject* result;
- RegularExpression* regex;
-
- CommandObjectTypeCategoryList_CallbackParam(CommandReturnObject* res,
- RegularExpression* rex = NULL) :
- result(res),
- regex(rex)
- {
- }
-
- };
-
- static bool
- PerCategoryCallback(void* param_vp,
- const lldb::TypeCategoryImplSP& cate)
- {
- CommandObjectTypeCategoryList_CallbackParam* param =
- (CommandObjectTypeCategoryList_CallbackParam*)param_vp;
- CommandReturnObject* result = param->result;
- RegularExpression* regex = param->regex;
-
- const char* cate_name = cate->GetName();
-
- if (regex == NULL || strcmp(cate_name, regex->GetText()) == 0 || regex->Execute(cate_name))
- result->GetOutputStream().Printf("Category %s is%s enabled\n",
- cate_name,
- (cate->IsEnabled() ? "" : " not"));
- return true;
- }
-public:
- CommandObjectTypeCategoryList (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type category list",
- "Provide a list of all existing categories.",
- NULL)
- {
- CommandArgumentEntry type_arg;
- CommandArgumentData type_style_arg;
-
- type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatOptional;
-
- type_arg.push_back (type_style_arg);
-
- m_arguments.push_back (type_arg);
- }
-
- ~CommandObjectTypeCategoryList ()
- {
- }
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
- const size_t argc = command.GetArgumentCount();
- RegularExpression* regex = NULL;
-
- if (argc == 0)
- ;
- else if (argc == 1)
- regex = new RegularExpression(command.GetArgumentAtIndex(0));
- else
- {
- result.AppendErrorWithFormat ("%s takes 0 or one arg.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- CommandObjectTypeCategoryList_CallbackParam param(&result,
- regex);
-
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, &param);
-
- if (regex)
- delete regex;
-
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
-};
-
-//-------------------------------------------------------------------------
-// CommandObjectTypeFilterList
-//-------------------------------------------------------------------------
-
-bool CommandObjectTypeFilterList_LoopCallback(void* pt2self, ConstString type, const SyntheticChildren::SharedPointer& entry);
-bool CommandObjectTypeFilterRXList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const SyntheticChildren::SharedPointer& entry);
-
-class CommandObjectTypeFilterList;
-
-struct CommandObjectTypeFilterList_LoopCallbackParam {
- CommandObjectTypeFilterList* self;
- CommandReturnObject* result;
- RegularExpression* regex;
- RegularExpression* cate_regex;
- CommandObjectTypeFilterList_LoopCallbackParam(CommandObjectTypeFilterList* S, CommandReturnObject* R,
- RegularExpression* X = NULL,
- RegularExpression* CX = NULL) : self(S), result(R), regex(X), cate_regex(CX) {}
-};
-
-class CommandObjectTypeFilterList : public CommandObjectParsed
-{
-
class CommandOptions : public Options
{
public:
@@ -2794,19 +2482,23 @@ class CommandObjectTypeFilterList : public CommandObjectParsed
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
switch (short_option)
{
- case 'w':
- m_category_regex = std::string(option_arg);
+ case 'l':
+ if (option_arg)
+ {
+ m_language = Language::GetLanguageTypeFromString(option_arg);
+ if (m_language == lldb::eLanguageTypeUnknown)
+ error.SetErrorStringWithFormat ("unrecognized language '%s'", option_arg);
+ }
break;
default:
error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
@@ -2817,13 +2509,13 @@ class CommandObjectTypeFilterList : public CommandObjectParsed
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
- m_category_regex = "";
+ m_language = lldb::eLanguageTypeUnknown;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -2834,23 +2526,23 @@ class CommandObjectTypeFilterList : public CommandObjectParsed
// Instance variables to hold the values for command options.
- std::string m_category_regex;
+ lldb::LanguageType m_language;
};
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
-
+
public:
- CommandObjectTypeFilterList (CommandInterpreter &interpreter) :
+ CommandObjectTypeCategoryDisable (CommandInterpreter &interpreter) :
CommandObjectParsed (interpreter,
- "type filter list",
- "Show a list of current filters.",
+ "type category disable",
+ "Disable a category as a source of formatters.",
NULL),
m_options(interpreter)
{
@@ -2858,216 +2550,82 @@ public:
CommandArgumentData type_style_arg;
type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatOptional;
+ type_style_arg.arg_repetition = eArgRepeatPlus;
type_arg.push_back (type_style_arg);
m_arguments.push_back (type_arg);
+
}
- ~CommandObjectTypeFilterList ()
+ ~CommandObjectTypeCategoryDisable () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
- CommandObjectTypeFilterList_LoopCallbackParam *param;
- RegularExpression* cate_regex =
- m_options.m_category_regex.empty() ? NULL :
- new RegularExpression(m_options.m_category_regex.c_str());
-
- if (argc == 1)
+ if (argc < 1 &&
+ m_options.m_language == lldb::eLanguageTypeUnknown)
{
- RegularExpression* regex = new RegularExpression(command.GetArgumentAtIndex(0));
- regex->Compile(command.GetArgumentAtIndex(0));
- param = new CommandObjectTypeFilterList_LoopCallbackParam(this,&result,regex,cate_regex);
+ result.AppendErrorWithFormat ("%s takes arguments and/or a language", m_cmd_name.c_str());
+ result.SetStatus(eReturnStatusFailed);
+ return false;
}
- else
- param = new CommandObjectTypeFilterList_LoopCallbackParam(this,&result,NULL,cate_regex);
-
- DataVisualization::Categories::LoopThrough(PerCategoryCallback,param);
- delete param;
-
- if (cate_regex)
- delete cate_regex;
-
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
-private:
-
- static bool
- PerCategoryCallback(void* param_vp,
- const lldb::TypeCategoryImplSP& cate)
- {
- const char* cate_name = cate->GetName();
-
- CommandObjectTypeFilterList_LoopCallbackParam* param =
- (CommandObjectTypeFilterList_LoopCallbackParam*)param_vp;
- CommandReturnObject* result = param->result;
-
- // if the category is disabled or empty and there is no regex, just skip it
- if ((cate->IsEnabled() == false || cate->GetCount(eFormatCategoryItemFilter | eFormatCategoryItemRegexFilter) == 0) && param->cate_regex == NULL)
- return true;
-
- // if we have a regex and this category does not match it, just skip it
- if(param->cate_regex != NULL && strcmp(cate_name,param->cate_regex->GetText()) != 0 && param->cate_regex->Execute(cate_name) == false)
- return true;
-
- result->GetOutputStream().Printf("-----------------------\nCategory: %s (%s)\n-----------------------\n",
- cate_name,
- (cate->IsEnabled() ? "enabled" : "disabled"));
-
- cate->GetTypeFiltersContainer()->LoopThrough(CommandObjectTypeFilterList_LoopCallback, param_vp);
-
- if (cate->GetRegexTypeFiltersContainer()->GetCount() > 0)
+ if (argc == 1 && strcmp(command.GetArgumentAtIndex(0),"*") == 0)
+ {
+ DataVisualization::Categories::DisableStar();
+ }
+ else if (argc > 0)
{
- result->GetOutputStream().Printf("Regex-based filters (slower):\n");
- cate->GetRegexTypeFiltersContainer()->LoopThrough(CommandObjectTypeFilterRXList_LoopCallback, param_vp);
+ // the order is not relevant here
+ for (int i = argc - 1; i >= 0; i--)
+ {
+ const char* typeA = command.GetArgumentAtIndex(i);
+ ConstString typeCS(typeA);
+
+ if (!typeCS)
+ {
+ result.AppendError("empty category name not allowed");
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
+ DataVisualization::Categories::Disable(typeCS);
+ }
}
- return true;
- }
-
- bool
- LoopCallback (const char* type,
- const SyntheticChildren::SharedPointer& entry,
- RegularExpression* regex,
- CommandReturnObject *result)
- {
- if (regex == NULL || regex->Execute(type))
- result->GetOutputStream().Printf ("%s: %s\n", type, entry->GetDescription().c_str());
- return true;
+ if (m_options.m_language != lldb::eLanguageTypeUnknown)
+ DataVisualization::Categories::Disable(m_options.m_language);
+
+ result.SetStatus(eReturnStatusSuccessFinishResult);
+ return result.Succeeded();
}
- friend bool CommandObjectTypeFilterList_LoopCallback(void* pt2self, ConstString type, const SyntheticChildren::SharedPointer& entry);
- friend bool CommandObjectTypeFilterRXList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const SyntheticChildren::SharedPointer& entry);
};
-bool
-CommandObjectTypeFilterList_LoopCallback (void* pt2self,
- ConstString type,
- const SyntheticChildren::SharedPointer& entry)
-{
- CommandObjectTypeFilterList_LoopCallbackParam* param = (CommandObjectTypeFilterList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(type.AsCString(), entry, param->regex, param->result);
-}
-
-bool
-CommandObjectTypeFilterRXList_LoopCallback (void* pt2self,
- lldb::RegularExpressionSP regex,
- const SyntheticChildren::SharedPointer& entry)
-{
- CommandObjectTypeFilterList_LoopCallbackParam* param = (CommandObjectTypeFilterList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(regex->GetText(), entry, param->regex, param->result);
-}
-
-
OptionDefinition
-CommandObjectTypeFilterList::CommandOptions::g_option_table[] =
+CommandObjectTypeCategoryDisable::CommandOptions::g_option_table[] =
{
- { LLDB_OPT_SET_ALL, false, "category-regex", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Only show categories matching this filter."},
+ { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Enable the category for this language."},
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
-#ifndef LLDB_DISABLE_PYTHON
-
//-------------------------------------------------------------------------
-// CommandObjectTypeSynthList
+// CommandObjectTypeCategoryList
//-------------------------------------------------------------------------
-bool CommandObjectTypeSynthList_LoopCallback(void* pt2self, ConstString type, const SyntheticChildren::SharedPointer& entry);
-bool CommandObjectTypeSynthRXList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const SyntheticChildren::SharedPointer& entry);
-
-class CommandObjectTypeSynthList;
-
-struct CommandObjectTypeSynthList_LoopCallbackParam {
- CommandObjectTypeSynthList* self;
- CommandReturnObject* result;
- RegularExpression* regex;
- RegularExpression* cate_regex;
- CommandObjectTypeSynthList_LoopCallbackParam(CommandObjectTypeSynthList* S, CommandReturnObject* R,
- RegularExpression* X = NULL,
- RegularExpression* CX = NULL) : self(S), result(R), regex(X), cate_regex(CX) {}
-};
-
-class CommandObjectTypeSynthList : public CommandObjectParsed
+class CommandObjectTypeCategoryList : public CommandObjectParsed
{
-
- class CommandOptions : public Options
- {
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- }
-
- virtual
- ~CommandOptions (){}
-
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 'w':
- m_category_regex = std::string(option_arg);
- break;
- default:
- error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
- break;
- }
-
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_category_regex = "";
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
-
- std::string m_category_regex;
-
- };
-
- CommandOptions m_options;
-
- virtual Options *
- GetOptions ()
- {
- return &m_options;
- }
-
public:
- CommandObjectTypeSynthList (CommandInterpreter &interpreter) :
+ CommandObjectTypeCategoryList (CommandInterpreter &interpreter) :
CommandObjectParsed (interpreter,
- "type synthetic list",
- "Show a list of current synthetic providers.",
- NULL),
- m_options(interpreter)
+ "type category list",
+ "Provide a list of all existing categories.",
+ NULL)
{
CommandArgumentEntry type_arg;
CommandArgumentData type_style_arg;
@@ -3080,115 +2638,96 @@ public:
m_arguments.push_back (type_arg);
}
- ~CommandObjectTypeSynthList ()
+ ~CommandObjectTypeCategoryList () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
-
- CommandObjectTypeSynthList_LoopCallbackParam *param;
- RegularExpression* cate_regex =
- m_options.m_category_regex.empty() ? NULL :
- new RegularExpression(m_options.m_category_regex.c_str());
+
+ std::unique_ptr<RegularExpression> regex;
if (argc == 1)
{
- RegularExpression* regex = new RegularExpression(command.GetArgumentAtIndex(0));
- regex->Compile(command.GetArgumentAtIndex(0));
- param = new CommandObjectTypeSynthList_LoopCallbackParam(this,&result,regex,cate_regex);
+ regex.reset(new RegularExpression());
+ const char* arg = command.GetArgumentAtIndex(0);
+ if (!regex->Compile(arg))
+ {
+ result.AppendErrorWithFormat("syntax error in category regular expression '%s'", arg);
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
+ }
+ else if (argc != 0)
+ {
+ result.AppendErrorWithFormat ("%s takes 0 or one arg.\n", m_cmd_name.c_str());
+ result.SetStatus(eReturnStatusFailed);
+ return false;
}
- else
- param = new CommandObjectTypeSynthList_LoopCallbackParam(this,&result,NULL,cate_regex);
- DataVisualization::Categories::LoopThrough(PerCategoryCallback,param);
- delete param;
-
- if (cate_regex)
- delete cate_regex;
+ DataVisualization::Categories::ForEach( [&regex, &result] (const lldb::TypeCategoryImplSP& category_sp) -> bool {
+ if (regex)
+ {
+ bool escape = true;
+ if (0 == strcmp(category_sp->GetName(), regex->GetText()))
+ {
+ escape = false;
+ }
+ else if (regex->Execute(category_sp->GetName()))
+ {
+ escape = false;
+ }
+
+ if (escape)
+ return true;
+ }
+
+ result.GetOutputStream().Printf("Category: %s\n", category_sp->GetDescription().c_str());
+
+ return true;
+ });
result.SetStatus(eReturnStatusSuccessFinishResult);
return result.Succeeded();
}
-private:
-
- static bool
- PerCategoryCallback(void* param_vp,
- const lldb::TypeCategoryImplSP& cate)
- {
-
- CommandObjectTypeSynthList_LoopCallbackParam* param =
- (CommandObjectTypeSynthList_LoopCallbackParam*)param_vp;
- CommandReturnObject* result = param->result;
-
- const char* cate_name = cate->GetName();
-
- // if the category is disabled or empty and there is no regex, just skip it
- if ((cate->IsEnabled() == false || cate->GetCount(eFormatCategoryItemSynth | eFormatCategoryItemRegexSynth) == 0) && param->cate_regex == NULL)
- return true;
-
- // if we have a regex and this category does not match it, just skip it
- if(param->cate_regex != NULL && strcmp(cate_name,param->cate_regex->GetText()) != 0 && param->cate_regex->Execute(cate_name) == false)
- return true;
-
- result->GetOutputStream().Printf("-----------------------\nCategory: %s (%s)\n-----------------------\n",
- cate_name,
- (cate->IsEnabled() ? "enabled" : "disabled"));
-
- cate->GetTypeSyntheticsContainer()->LoopThrough(CommandObjectTypeSynthList_LoopCallback, param_vp);
-
- if (cate->GetRegexTypeSyntheticsContainer()->GetCount() > 0)
- {
- result->GetOutputStream().Printf("Regex-based synthetic providers (slower):\n");
- cate->GetRegexTypeSyntheticsContainer()->LoopThrough(CommandObjectTypeSynthRXList_LoopCallback, param_vp);
- }
-
- return true;
- }
+};
+
+//-------------------------------------------------------------------------
+// CommandObjectTypeFilterList
+//-------------------------------------------------------------------------
+
+class CommandObjectTypeFilterList : public CommandObjectTypeFormatterList<TypeFilterImpl>
+{
+public:
- bool
- LoopCallback (const char* type,
- const SyntheticChildren::SharedPointer& entry,
- RegularExpression* regex,
- CommandReturnObject *result)
+ CommandObjectTypeFilterList (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterList(interpreter,
+ "type filter list",
+ "Show a list of current filters.")
{
- if (regex == NULL || regex->Execute(type))
- result->GetOutputStream().Printf ("%s: %s\n", type, entry->GetDescription().c_str());
- return true;
}
-
- friend bool CommandObjectTypeSynthList_LoopCallback(void* pt2self, ConstString type, const SyntheticChildren::SharedPointer& entry);
- friend bool CommandObjectTypeSynthRXList_LoopCallback(void* pt2self, lldb::RegularExpressionSP regex, const SyntheticChildren::SharedPointer& entry);
};
-bool
-CommandObjectTypeSynthList_LoopCallback (void* pt2self,
- ConstString type,
- const SyntheticChildren::SharedPointer& entry)
-{
- CommandObjectTypeSynthList_LoopCallbackParam* param = (CommandObjectTypeSynthList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(type.AsCString(), entry, param->regex, param->result);
-}
-
-bool
-CommandObjectTypeSynthRXList_LoopCallback (void* pt2self,
- lldb::RegularExpressionSP regex,
- const SyntheticChildren::SharedPointer& entry)
-{
- CommandObjectTypeSynthList_LoopCallbackParam* param = (CommandObjectTypeSynthList_LoopCallbackParam*)pt2self;
- return param->self->LoopCallback(regex->GetText(), entry, param->regex, param->result);
-}
+#ifndef LLDB_DISABLE_PYTHON
+//-------------------------------------------------------------------------
+// CommandObjectTypeSynthList
+//-------------------------------------------------------------------------
-OptionDefinition
-CommandObjectTypeSynthList::CommandOptions::g_option_table[] =
+class CommandObjectTypeSynthList : public CommandObjectTypeFormatterList<SyntheticChildren>
{
- { LLDB_OPT_SET_ALL, false, "category-regex", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Only show categories matching this filter."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
+public:
+
+ CommandObjectTypeSynthList (CommandInterpreter &interpreter) :
+ CommandObjectTypeFormatterList(interpreter,
+ "type synthetic list",
+ "Show a list of current synthetic providers.")
+ {
+ }
};
#endif // #ifndef LLDB_DISABLE_PYTHON
@@ -3196,164 +2735,20 @@ CommandObjectTypeSynthList::CommandOptions::g_option_table[] =
// CommandObjectTypeFilterDelete
//-------------------------------------------------------------------------
-class CommandObjectTypeFilterDelete : public CommandObjectParsed
+class CommandObjectTypeFilterDelete : public CommandObjectTypeFormatterDelete
{
-private:
- class CommandOptions : public Options
- {
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- }
-
- virtual
- ~CommandOptions (){}
-
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 'a':
- m_delete_all = true;
- break;
- case 'w':
- m_category = std::string(option_arg);
- break;
- default:
- error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
- break;
- }
-
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_delete_all = false;
- m_category = "default";
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
-
- bool m_delete_all;
- std::string m_category;
-
- };
-
- CommandOptions m_options;
-
- virtual Options *
- GetOptions ()
- {
- return &m_options;
- }
-
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& cate)
- {
- ConstString *name = (ConstString*)param;
- return cate->Delete(*name, eFormatCategoryItemFilter | eFormatCategoryItemRegexFilter);
- }
-
public:
CommandObjectTypeFilterDelete (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type filter delete",
- "Delete an existing filter for a type.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeFormatterDelete (interpreter,
+ eFormatCategoryItemFilter | eFormatCategoryItemRegexFilter,
+ "type filter delete",
+ "Delete an existing filter for a type.")
{
- CommandArgumentEntry type_arg;
- CommandArgumentData type_style_arg;
-
- type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatPlain;
-
- type_arg.push_back (type_style_arg);
-
- m_arguments.push_back (type_arg);
-
}
- ~CommandObjectTypeFilterDelete ()
+ ~CommandObjectTypeFilterDelete () override
{
}
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
- const size_t argc = command.GetArgumentCount();
-
- if (argc != 1)
- {
- result.AppendErrorWithFormat ("%s takes 1 arg.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- const char* typeA = command.GetArgumentAtIndex(0);
- ConstString typeCS(typeA);
-
- if (!typeCS)
- {
- result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- if (m_options.m_delete_all)
- {
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, (void*)&typeCS);
- result.SetStatus(eReturnStatusSuccessFinishNoResult);
- return result.Succeeded();
- }
-
- lldb::TypeCategoryImplSP category;
- DataVisualization::Categories::GetCategory(ConstString(m_options.m_category.c_str()), category);
-
- bool delete_category = category->GetTypeFiltersContainer()->Delete(typeCS);
- delete_category = category->GetRegexTypeFiltersContainer()->Delete(typeCS) || delete_category;
-
- if (delete_category)
- {
- result.SetStatus(eReturnStatusSuccessFinishNoResult);
- return result.Succeeded();
- }
- else
- {
- result.AppendErrorWithFormat ("no custom synthetic provider for %s.\n", typeA);
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- }
-};
-
-OptionDefinition
-CommandObjectTypeFilterDelete::CommandOptions::g_option_table[] =
-{
- { LLDB_OPT_SET_1, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Delete from every category."},
- { LLDB_OPT_SET_2, false, "category", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Delete from given category."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
#ifndef LLDB_DISABLE_PYTHON
@@ -3362,164 +2757,20 @@ CommandObjectTypeFilterDelete::CommandOptions::g_option_table[] =
// CommandObjectTypeSynthDelete
//-------------------------------------------------------------------------
-class CommandObjectTypeSynthDelete : public CommandObjectParsed
+class CommandObjectTypeSynthDelete : public CommandObjectTypeFormatterDelete
{
-private:
- class CommandOptions : public Options
- {
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- }
-
- virtual
- ~CommandOptions (){}
-
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 'a':
- m_delete_all = true;
- break;
- case 'w':
- m_category = std::string(option_arg);
- break;
- default:
- error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
- break;
- }
-
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_delete_all = false;
- m_category = "default";
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
-
- bool m_delete_all;
- std::string m_category;
-
- };
-
- CommandOptions m_options;
-
- virtual Options *
- GetOptions ()
- {
- return &m_options;
- }
-
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& cate)
- {
- ConstString* name = (ConstString*)param;
- return cate->Delete(*name, eFormatCategoryItemSynth | eFormatCategoryItemRegexSynth);
- }
-
public:
CommandObjectTypeSynthDelete (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type synthetic delete",
- "Delete an existing synthetic provider for a type.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeFormatterDelete (interpreter,
+ eFormatCategoryItemSynth | eFormatCategoryItemRegexSynth,
+ "type synthetic delete",
+ "Delete an existing synthetic provider for a type.")
{
- CommandArgumentEntry type_arg;
- CommandArgumentData type_style_arg;
-
- type_style_arg.arg_type = eArgTypeName;
- type_style_arg.arg_repetition = eArgRepeatPlain;
-
- type_arg.push_back (type_style_arg);
-
- m_arguments.push_back (type_arg);
-
}
- ~CommandObjectTypeSynthDelete ()
+ ~CommandObjectTypeSynthDelete () override
{
}
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
- const size_t argc = command.GetArgumentCount();
-
- if (argc != 1)
- {
- result.AppendErrorWithFormat ("%s takes 1 arg.\n", m_cmd_name.c_str());
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- const char* typeA = command.GetArgumentAtIndex(0);
- ConstString typeCS(typeA);
-
- if (!typeCS)
- {
- result.AppendError("empty typenames not allowed");
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- if (m_options.m_delete_all)
- {
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, (void*)&typeCS);
- result.SetStatus(eReturnStatusSuccessFinishNoResult);
- return result.Succeeded();
- }
-
- lldb::TypeCategoryImplSP category;
- DataVisualization::Categories::GetCategory(ConstString(m_options.m_category.c_str()), category);
-
- bool delete_category = category->GetTypeSyntheticsContainer()->Delete(typeCS);
- delete_category = category->GetRegexTypeSyntheticsContainer()->Delete(typeCS) || delete_category;
-
- if (delete_category)
- {
- result.SetStatus(eReturnStatusSuccessFinishNoResult);
- return result.Succeeded();
- }
- else
- {
- result.AppendErrorWithFormat ("no custom synthetic provider for %s.\n", typeA);
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
-
- }
-};
-
-OptionDefinition
-CommandObjectTypeSynthDelete::CommandOptions::g_option_table[] =
-{
- { LLDB_OPT_SET_1, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Delete from every category."},
- { LLDB_OPT_SET_2, false, "category", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Delete from given category."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
#endif // #ifndef LLDB_DISABLE_PYTHON
@@ -3528,128 +2779,16 @@ CommandObjectTypeSynthDelete::CommandOptions::g_option_table[] =
// CommandObjectTypeFilterClear
//-------------------------------------------------------------------------
-class CommandObjectTypeFilterClear : public CommandObjectParsed
+class CommandObjectTypeFilterClear : public CommandObjectTypeFormatterClear
{
-private:
-
- class CommandOptions : public Options
- {
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- }
-
- virtual
- ~CommandOptions (){}
-
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 'a':
- m_delete_all = true;
- break;
- default:
- error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
- break;
- }
-
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_delete_all = false;
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
-
- bool m_delete_all;
- bool m_delete_named;
- };
-
- CommandOptions m_options;
-
- virtual Options *
- GetOptions ()
- {
- return &m_options;
- }
-
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& cate)
- {
- cate->Clear(eFormatCategoryItemFilter | eFormatCategoryItemRegexFilter);
- return true;
-
- }
-
public:
CommandObjectTypeFilterClear (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type filter clear",
- "Delete all existing filters.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeFormatterClear (interpreter,
+ eFormatCategoryItemFilter | eFormatCategoryItemRegexFilter,
+ "type filter clear",
+ "Delete all existing filter.")
{
}
-
- ~CommandObjectTypeFilterClear ()
- {
- }
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
-
- if (m_options.m_delete_all)
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, NULL);
-
- else
- {
- lldb::TypeCategoryImplSP category;
- if (command.GetArgumentCount() > 0)
- {
- const char* cat_name = command.GetArgumentAtIndex(0);
- ConstString cat_nameCS(cat_name);
- DataVisualization::Categories::GetCategory(cat_nameCS, category);
- }
- else
- DataVisualization::Categories::GetCategory(ConstString(NULL), category);
- category->GetTypeFiltersContainer()->Clear();
- category->GetRegexTypeFiltersContainer()->Clear();
- }
-
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
-};
-
-OptionDefinition
-CommandObjectTypeFilterClear::CommandOptions::g_option_table[] =
-{
- { LLDB_OPT_SET_ALL, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Clear every category."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
#ifndef LLDB_DISABLE_PYTHON
@@ -3657,131 +2796,18 @@ CommandObjectTypeFilterClear::CommandOptions::g_option_table[] =
// CommandObjectTypeSynthClear
//-------------------------------------------------------------------------
-class CommandObjectTypeSynthClear : public CommandObjectParsed
+class CommandObjectTypeSynthClear : public CommandObjectTypeFormatterClear
{
-private:
-
- class CommandOptions : public Options
- {
- public:
-
- CommandOptions (CommandInterpreter &interpreter) :
- Options (interpreter)
- {
- }
-
- virtual
- ~CommandOptions (){}
-
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
- {
- Error error;
- const int short_option = m_getopt_table[option_idx].val;
-
- switch (short_option)
- {
- case 'a':
- m_delete_all = true;
- break;
- default:
- error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option);
- break;
- }
-
- return error;
- }
-
- void
- OptionParsingStarting ()
- {
- m_delete_all = false;
- }
-
- const OptionDefinition*
- GetDefinitions ()
- {
- return g_option_table;
- }
-
- // Options table: Required for subclasses of Options.
-
- static OptionDefinition g_option_table[];
-
- // Instance variables to hold the values for command options.
-
- bool m_delete_all;
- bool m_delete_named;
- };
-
- CommandOptions m_options;
-
- virtual Options *
- GetOptions ()
- {
- return &m_options;
- }
-
- static bool
- PerCategoryCallback(void* param,
- const lldb::TypeCategoryImplSP& cate)
- {
- cate->Clear(eFormatCategoryItemSynth | eFormatCategoryItemRegexSynth);
- return true;
-
- }
-
public:
CommandObjectTypeSynthClear (CommandInterpreter &interpreter) :
- CommandObjectParsed (interpreter,
- "type synthetic clear",
- "Delete all existing synthetic providers.",
- NULL),
- m_options(interpreter)
+ CommandObjectTypeFormatterClear (interpreter,
+ eFormatCategoryItemSynth | eFormatCategoryItemRegexSynth,
+ "type synthetic clear",
+ "Delete all existing synthetic providers.")
{
}
-
- ~CommandObjectTypeSynthClear ()
- {
- }
-
-protected:
- bool
- DoExecute (Args& command, CommandReturnObject &result)
- {
-
- if (m_options.m_delete_all)
- DataVisualization::Categories::LoopThrough(PerCategoryCallback, NULL);
-
- else
- {
- lldb::TypeCategoryImplSP category;
- if (command.GetArgumentCount() > 0)
- {
- const char* cat_name = command.GetArgumentAtIndex(0);
- ConstString cat_nameCS(cat_name);
- DataVisualization::Categories::GetCategory(cat_nameCS, category);
- }
- else
- DataVisualization::Categories::GetCategory(ConstString(NULL), category);
- category->GetTypeSyntheticsContainer()->Clear();
- category->GetRegexTypeSyntheticsContainer()->Clear();
- }
-
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return result.Succeeded();
- }
-
};
-OptionDefinition
-CommandObjectTypeSynthClear::CommandOptions::g_option_table[] =
-{
- { LLDB_OPT_SET_ALL, false, "all", 'a', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Clear every category."},
- { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
-};
-
-
bool
CommandObjectTypeSynthAdd::Execute_HandwritePython (Args& command, CommandReturnObject &result)
{
@@ -3956,10 +2982,10 @@ CommandObjectTypeSynthAdd::CommandOptions::g_option_table[] =
{
{ LLDB_OPT_SET_ALL, false, "cascade", 'C', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeBoolean, "If true, cascade through typedef chains."},
{ LLDB_OPT_SET_ALL, false, "skip-pointers", 'p', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Don't use this format for pointers-to-type objects."},
- { LLDB_OPT_SET_ALL, false, "skip-references", 'r', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Don't use this format for references-to-tNULL, ype objects."},
+ { LLDB_OPT_SET_ALL, false, "skip-references", 'r', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Don't use this format for references-to-type objects."},
{ LLDB_OPT_SET_ALL, false, "category", 'w', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeName, "Add this to the given category instead of the default one."},
{ LLDB_OPT_SET_2, false, "python-class", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypePythonClass, "Use this Python class to produce synthetic children."},
- { LLDB_OPT_SET_3, false, "input-python", 'P', OptionParser::eNoArgument,NULL, NULL, 0, eArgTypeNone, "Type Python code to generate a class that NULL, provides synthetic children."},
+ { LLDB_OPT_SET_3, false, "input-python", 'P', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Type Python code to generate a class that provides synthetic children."},
{ LLDB_OPT_SET_ALL, false, "regex", 'x', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Type names are actually regular expressions."},
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
@@ -3981,11 +3007,10 @@ private:
{
}
- virtual
- ~CommandOptions (){}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -4023,7 +3048,7 @@ private:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_cascade = true;
m_skip_pointers = false;
@@ -4035,7 +3060,7 @@ private:
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -4062,8 +3087,8 @@ private:
CommandOptions m_options;
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -4076,7 +3101,7 @@ private:
bool
AddFilter(ConstString type_name,
- SyntheticChildrenSP entry,
+ TypeFilterImplSP entry,
FilterFormatType type,
std::string category_name,
Error* error)
@@ -4175,13 +3200,13 @@ all children of my_foo as if no filter was defined:" R"(
);
}
- ~CommandObjectTypeFilterAdd ()
+ ~CommandObjectTypeFilterAdd () override
{
}
protected:
bool
- DoExecute (Args& command, CommandReturnObject &result)
+ DoExecute (Args& command, CommandReturnObject &result) override
{
const size_t argc = command.GetArgumentCount();
@@ -4199,19 +3224,15 @@ protected:
return false;
}
- SyntheticChildrenSP entry;
-
- TypeFilterImpl* impl = new TypeFilterImpl(SyntheticChildren::Flags().SetCascades(m_options.m_cascade).
- SetSkipPointers(m_options.m_skip_pointers).
- SetSkipReferences(m_options.m_skip_references));
-
- entry.reset(impl);
+ TypeFilterImplSP entry(new TypeFilterImpl(SyntheticChildren::Flags().SetCascades(m_options.m_cascade).
+ SetSkipPointers(m_options.m_skip_pointers).
+ SetSkipReferences(m_options.m_skip_references)));
// go through the expression paths
CommandOptions::ExpressionPathsIterator begin, end = m_options.m_expr_paths.end();
for (begin = m_options.m_expr_paths.begin(); begin != end; begin++)
- impl->AddExpressionPath(*begin);
+ entry->AddExpressionPath(*begin);
// now I have a valid provider, let's add it to every type
@@ -4266,6 +3287,215 @@ CommandObjectTypeFilterAdd::CommandOptions::g_option_table[] =
{ 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
};
+//----------------------------------------------------------------------
+// "type lookup"
+//----------------------------------------------------------------------
+class CommandObjectTypeLookup : public CommandObjectRaw
+{
+protected:
+
+ class CommandOptions : public OptionGroup
+ {
+ public:
+
+ CommandOptions () :
+ OptionGroup(),
+ m_show_help(false),
+ m_language(eLanguageTypeUnknown)
+ {}
+
+ ~CommandOptions () override {}
+
+ uint32_t
+ GetNumDefinitions () override
+ {
+ return 3;
+ }
+
+ const OptionDefinition*
+ GetDefinitions () override
+ {
+ return g_option_table;
+ }
+
+ Error
+ SetOptionValue (CommandInterpreter &interpreter,
+ uint32_t option_idx,
+ const char *option_value) override
+ {
+ Error error;
+
+ const int short_option = g_option_table[option_idx].short_option;
+
+ switch (short_option)
+ {
+ case 'h':
+ m_show_help = true;
+ break;
+
+ case 'l':
+ m_language = Language::GetLanguageTypeFromString(option_value);
+ break;
+
+ default:
+ error.SetErrorStringWithFormat("invalid short option character '%c'", short_option);
+ break;
+ }
+
+ return error;
+ }
+
+ void
+ OptionParsingStarting (CommandInterpreter &interpreter) override
+ {
+ m_show_help = false;
+ m_language = eLanguageTypeUnknown;
+ }
+
+ // Options table: Required for subclasses of Options.
+
+ static OptionDefinition g_option_table[];
+ bool m_show_help;
+ lldb::LanguageType m_language;
+ };
+
+ OptionGroupOptions m_option_group;
+ CommandOptions m_command_options;
+
+public:
+
+ CommandObjectTypeLookup (CommandInterpreter &interpreter) :
+ CommandObjectRaw (interpreter,
+ "type lookup",
+ "Lookup a type by name in the select target.",
+ "type lookup <typename>",
+ eCommandRequiresTarget),
+ m_option_group(interpreter),
+ m_command_options()
+ {
+ m_option_group.Append(&m_command_options);
+ m_option_group.Finalize();
+ }
+
+ ~CommandObjectTypeLookup () override
+ {
+ }
+
+ Options *
+ GetOptions () override
+ {
+ return &m_option_group;
+ }
+
+ bool
+ DoExecute (const char *raw_command_line, CommandReturnObject &result) override
+ {
+ if (!raw_command_line || !raw_command_line[0])
+ {
+ result.SetError("type lookup cannot be invoked without a type name as argument");
+ return false;
+ }
+
+ m_option_group.NotifyOptionParsingStarting();
+
+ const char * name_of_type = NULL;
+
+ if (raw_command_line[0] == '-')
+ {
+ // We have some options and these options MUST end with --.
+ const char *end_options = NULL;
+ const char *s = raw_command_line;
+ while (s && s[0])
+ {
+ end_options = ::strstr (s, "--");
+ if (end_options)
+ {
+ end_options += 2; // Get past the "--"
+ if (::isspace (end_options[0]))
+ {
+ name_of_type = end_options;
+ while (::isspace (*name_of_type))
+ ++name_of_type;
+ break;
+ }
+ }
+ s = end_options;
+ }
+
+ if (end_options)
+ {
+ Args args (llvm::StringRef(raw_command_line, end_options - raw_command_line));
+ if (!ParseOptions (args, result))
+ return false;
+
+ Error error (m_option_group.NotifyOptionParsingFinished());
+ if (error.Fail())
+ {
+ result.AppendError (error.AsCString());
+ result.SetStatus (eReturnStatusFailed);
+ return false;
+ }
+ }
+ }
+ if (nullptr == name_of_type)
+ name_of_type = raw_command_line;
+
+ TargetSP target_sp(GetCommandInterpreter().GetDebugger().GetSelectedTarget());
+ const bool fill_all_in = true;
+ ExecutionContext exe_ctx(target_sp.get(), fill_all_in);
+ ExecutionContextScope *best_scope = exe_ctx.GetBestExecutionContextScope();
+
+ bool any_found = false;
+
+ std::vector<Language*> languages;
+
+ if (m_command_options.m_language == eLanguageTypeUnknown)
+ {
+ // FIXME: hardcoding languages is not good
+ languages.push_back(Language::FindPlugin(eLanguageTypeObjC));
+ languages.push_back(Language::FindPlugin(eLanguageTypeC_plus_plus));
+ }
+ else
+ {
+ languages.push_back(Language::FindPlugin(m_command_options.m_language));
+ }
+
+ for (Language* language : languages)
+ {
+ if (!language)
+ continue;
+
+ if (auto scavenger = language->GetTypeScavenger())
+ {
+ Language::TypeScavenger::ResultSet search_results;
+ if (scavenger->Find(best_scope, name_of_type, search_results) > 0)
+ {
+ for (const auto& search_result : search_results)
+ {
+ if (search_result && search_result->IsValid())
+ {
+ any_found = true;
+ search_result->DumpToStream(result.GetOutputStream(), this->m_command_options.m_show_help);
+ }
+ }
+ }
+ }
+ }
+
+ result.SetStatus (any_found ? lldb::eReturnStatusSuccessFinishResult : lldb::eReturnStatusSuccessFinishNoResult);
+ return true;
+ }
+
+};
+
+OptionDefinition
+CommandObjectTypeLookup::CommandOptions::g_option_table[] =
+{
+ { LLDB_OPT_SET_ALL, false, "show-help", 'h', OptionParser::eNoArgument, NULL, NULL, 0, eArgTypeNone, "Display available help for types"},
+ { LLDB_OPT_SET_ALL, false, "language", 'l', OptionParser::eRequiredArgument, NULL, NULL, 0, eArgTypeLanguage, "Which language's types should the search scope be"},
+ { 0, false, NULL, 0, 0, NULL, NULL, 0, eArgTypeNone, NULL }
+};
+
template <typename FormatterType>
class CommandObjectFormatterInfo : public CommandObjectRaw
{
@@ -4293,14 +3523,13 @@ public:
SetSyntax(syntax.GetData());
}
- virtual
- ~CommandObjectFormatterInfo ()
+ ~CommandObjectFormatterInfo () override
{
}
protected:
- virtual bool
- DoExecute (const char *command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *command, CommandReturnObject &result) override
{
auto target_sp = m_interpreter.GetDebugger().GetSelectedTarget();
auto frame_sp = target_sp->GetProcessSP()->GetThreadList().GetSelectedThread()->GetSelectedFrame();
@@ -4365,7 +3594,7 @@ public:
}
- ~CommandObjectTypeFormat ()
+ ~CommandObjectTypeFormat () override
{
}
};
@@ -4393,7 +3622,7 @@ public:
}
- ~CommandObjectTypeSynth ()
+ ~CommandObjectTypeSynth () override
{
}
};
@@ -4416,7 +3645,7 @@ public:
}
- ~CommandObjectTypeFilter ()
+ ~CommandObjectTypeFilter () override
{
}
};
@@ -4430,6 +3659,7 @@ public:
"A set of commands for operating on categories",
"type category [<sub-command-options>] ")
{
+ LoadSubCommand ("define", CommandObjectSP (new CommandObjectTypeCategoryDefine (interpreter)));
LoadSubCommand ("enable", CommandObjectSP (new CommandObjectTypeCategoryEnable (interpreter)));
LoadSubCommand ("disable", CommandObjectSP (new CommandObjectTypeCategoryDisable (interpreter)));
LoadSubCommand ("delete", CommandObjectSP (new CommandObjectTypeCategoryDelete (interpreter)));
@@ -4437,7 +3667,7 @@ public:
}
- ~CommandObjectTypeCategory ()
+ ~CommandObjectTypeCategory () override
{
}
};
@@ -4463,7 +3693,7 @@ public:
}
- ~CommandObjectTypeSummary ()
+ ~CommandObjectTypeSummary () override
{
}
};
@@ -4485,11 +3715,10 @@ CommandObjectType::CommandObjectType (CommandInterpreter &interpreter) :
#ifndef LLDB_DISABLE_PYTHON
LoadSubCommand ("synthetic", CommandObjectSP (new CommandObjectTypeSynth (interpreter)));
#endif
+ LoadSubCommand ("lookup", CommandObjectSP (new CommandObjectTypeLookup (interpreter)));
}
CommandObjectType::~CommandObjectType ()
{
}
-
-
diff --git a/source/Commands/CommandObjectType.h b/source/Commands/CommandObjectType.h
index c796902..54f4a33 100644
--- a/source/Commands/CommandObjectType.h
+++ b/source/Commands/CommandObjectType.h
@@ -13,7 +13,6 @@
// C Includes
// C++ Includes
-
// Other libraries and framework includes
// Project includes
@@ -28,10 +27,9 @@ class CommandObjectType : public CommandObjectMultiword
public:
CommandObjectType (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectType ();
+ ~CommandObjectType() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectType_h_
+#endif // liblldb_CommandObjectType_h_
diff --git a/source/Commands/CommandObjectVersion.h b/source/Commands/CommandObjectVersion.h
index 1fdbed6..30ba9d1 100644
--- a/source/Commands/CommandObjectVersion.h
+++ b/source/Commands/CommandObjectVersion.h
@@ -28,16 +28,14 @@ public:
CommandObjectVersion (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectVersion ();
+ ~CommandObjectVersion() override;
protected:
- virtual bool
- DoExecute (Args& args,
- CommandReturnObject &result);
-
+ bool
+ DoExecute(Args& args,
+ CommandReturnObject &result) override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectVersion_h_
+#endif // liblldb_CommandObjectVersion_h_
diff --git a/source/Commands/CommandObjectWatchpoint.cpp b/source/Commands/CommandObjectWatchpoint.cpp
index 414e784..a97f5ad 100644
--- a/source/Commands/CommandObjectWatchpoint.cpp
+++ b/source/Commands/CommandObjectWatchpoint.cpp
@@ -104,7 +104,7 @@ CommandObjectMultiwordWatchpoint::VerifyWatchpointIDs(Target *target, Args &args
std::pair<llvm::StringRef, llvm::StringRef> Pair;
size_t i;
int32_t idx;
- // Go through the argments and make a canonical form of arg list containing
+ // Go through the arguments and make a canonical form of arg list containing
// only numbers with possible "-" in between.
for (i = 0; i < args.GetArgumentCount(); ++i) {
llvm::StringRef Arg(args.GetArgumentAtIndex(i));
@@ -178,11 +178,10 @@ public:
m_arguments.push_back(arg);
}
- virtual
- ~CommandObjectWatchpointList () {}
+ ~CommandObjectWatchpointList () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -197,11 +196,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -226,13 +224,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_level = lldb::eDescriptionLevelFull;
}
const OptionDefinition *
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -248,8 +246,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (target == NULL)
@@ -361,13 +359,12 @@ public:
m_arguments.push_back(arg);
}
- virtual
- ~CommandObjectWatchpointEnable () {}
+ ~CommandObjectWatchpointEnable () override {}
protected:
- virtual bool
+ bool
DoExecute (Args& command,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (!CheckTargetForWatchpointOperations(target, result))
@@ -441,12 +438,11 @@ public:
}
- virtual
- ~CommandObjectWatchpointDisable () {}
+ ~CommandObjectWatchpointDisable () override {}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (!CheckTargetForWatchpointOperations(target, result))
@@ -524,12 +520,11 @@ public:
m_arguments.push_back(arg);
}
- virtual
- ~CommandObjectWatchpointDelete () {}
+ ~CommandObjectWatchpointDelete () override {}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (!CheckTargetForWatchpointOperations(target, result))
@@ -607,11 +602,10 @@ public:
m_arguments.push_back(arg);
}
- virtual
- ~CommandObjectWatchpointIgnore () {}
+ ~CommandObjectWatchpointIgnore () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -626,11 +620,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -653,13 +646,13 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_ignore_count = 0;
}
const OptionDefinition *
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -675,9 +668,9 @@ public:
};
protected:
- virtual bool
+ bool
DoExecute (Args& command,
- CommandReturnObject &result)
+ CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (!CheckTargetForWatchpointOperations(target, result))
@@ -763,11 +756,10 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectWatchpointModify () {}
+ ~CommandObjectWatchpointModify () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
@@ -783,11 +775,10 @@ public:
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -810,14 +801,14 @@ public:
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_condition.clear();
m_condition_passed = false;
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -833,8 +824,8 @@ public:
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
if (!CheckTargetForWatchpointOperations(target, result))
@@ -958,11 +949,10 @@ corresponding to the byte size of the data type."
m_option_group.Finalize();
}
- virtual
- ~CommandObjectWatchpointSetVariable () {}
+ ~CommandObjectWatchpointSetVariable () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
@@ -983,8 +973,8 @@ protected:
return 0;
}
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
StackFrame *frame = m_exe_ctx.GetFramePtr();
@@ -1048,7 +1038,7 @@ protected:
valobj_sp = valobj_list.GetValueObjectAtIndex(0);
}
- ClangASTType clang_type;
+ CompilerType compiler_type;
if (valobj_sp)
{
@@ -1061,7 +1051,7 @@ protected:
size = m_option_watchpoint.watch_size == 0 ? valobj_sp->GetByteSize()
: m_option_watchpoint.watch_size;
}
- clang_type = valobj_sp->GetClangType();
+ compiler_type = valobj_sp->GetCompilerType();
}
else
{
@@ -1078,7 +1068,7 @@ protected:
uint32_t watch_type = m_option_watchpoint.watch_type;
error.Clear();
- Watchpoint *wp = target->CreateWatchpoint(addr, size, &clang_type, watch_type, error).get();
+ Watchpoint *wp = target->CreateWatchpoint(addr, size, &compiler_type, watch_type, error).get();
if (wp)
{
wp->SetWatchSpec(command.GetArgumentAtIndex(0));
@@ -1169,22 +1159,21 @@ Examples:
}
- virtual
- ~CommandObjectWatchpointSetExpression () {}
+ ~CommandObjectWatchpointSetExpression () override {}
// Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
- virtual bool
- WantsCompletion() { return true; }
+ bool
+ WantsCompletion() override { return true; }
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_option_group;
}
protected:
- virtual bool
- DoExecute (const char *raw_command, CommandReturnObject &result)
+ bool
+ DoExecute (const char *raw_command, CommandReturnObject &result) override
{
m_option_group.NotifyOptionParsingStarting(); // This is a raw command, so notify the option group
@@ -1295,10 +1284,10 @@ protected:
// Fetch the type from the value object, the type of the watched object is the pointee type
/// of the expression, so convert to that if we found a valid type.
- ClangASTType clang_type(valobj_sp->GetClangType());
+ CompilerType compiler_type(valobj_sp->GetCompilerType());
Error error;
- Watchpoint *wp = target->CreateWatchpoint(addr, size, &clang_type, watch_type, error).get();
+ Watchpoint *wp = target->CreateWatchpoint(addr, size, &compiler_type, watch_type, error).get();
if (wp)
{
Stream &output_stream = result.GetOutputStream();
@@ -1345,8 +1334,7 @@ public:
}
- virtual
- ~CommandObjectWatchpointSet () {}
+ ~CommandObjectWatchpointSet () override {}
};
diff --git a/source/Commands/CommandObjectWatchpoint.h b/source/Commands/CommandObjectWatchpoint.h
index 1b1ebd7..b1926dc 100644
--- a/source/Commands/CommandObjectWatchpoint.h
+++ b/source/Commands/CommandObjectWatchpoint.h
@@ -30,14 +30,12 @@ class CommandObjectMultiwordWatchpoint : public CommandObjectMultiword
public:
CommandObjectMultiwordWatchpoint (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectMultiwordWatchpoint ();
+ ~CommandObjectMultiwordWatchpoint() override;
static bool
VerifyWatchpointIDs(Target *target, Args &args, std::vector<uint32_t> &wp_ids);
-
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectWatchpoint_h_
+#endif // liblldb_CommandObjectWatchpoint_h_
diff --git a/source/Commands/CommandObjectWatchpointCommand.cpp b/source/Commands/CommandObjectWatchpointCommand.cpp
index 84342cc..2fa849f 100644
--- a/source/Commands/CommandObjectWatchpointCommand.cpp
+++ b/source/Commands/CommandObjectWatchpointCommand.cpp
@@ -169,17 +169,16 @@ are no syntax errors may indicate that a function was declared but never called.
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectWatchpointCommandAdd () {}
+ ~CommandObjectWatchpointCommandAdd () override {}
- virtual Options *
- GetOptions ()
+ Options *
+ GetOptions () override
{
return &m_options;
}
- virtual void
- IOHandlerActivated (IOHandler &io_handler)
+ void
+ IOHandlerActivated (IOHandler &io_handler) override
{
StreamFileSP output_sp(io_handler.GetOutputStreamFile());
if (output_sp)
@@ -190,8 +189,8 @@ are no syntax errors may indicate that a function was declared but never called.
}
- virtual void
- IOHandlerInputComplete (IOHandler &io_handler, std::string &line)
+ void
+ IOHandlerInputComplete (IOHandler &io_handler, std::string &line) override
{
io_handler.SetIsDone(true);
@@ -301,11 +300,10 @@ are no syntax errors may indicate that a function was declared but never called.
{
}
- virtual
- ~CommandOptions () {}
+ ~CommandOptions () override {}
- virtual Error
- SetOptionValue (uint32_t option_idx, const char *option_arg)
+ Error
+ SetOptionValue (uint32_t option_idx, const char *option_arg) override
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -356,7 +354,7 @@ are no syntax errors may indicate that a function was declared but never called.
return error;
}
void
- OptionParsingStarting ()
+ OptionParsingStarting () override
{
m_use_commands = true;
m_use_script_language = false;
@@ -369,7 +367,7 @@ are no syntax errors may indicate that a function was declared but never called.
}
const OptionDefinition*
- GetDefinitions ()
+ GetDefinitions () override
{
return g_option_table;
}
@@ -392,8 +390,8 @@ are no syntax errors may indicate that a function was declared but never called.
};
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
@@ -550,12 +548,11 @@ public:
}
- virtual
- ~CommandObjectWatchpointCommandDelete () {}
+ ~CommandObjectWatchpointCommandDelete () override {}
protected:
- virtual bool
- DoExecute (Args& command, CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
@@ -641,13 +638,11 @@ public:
m_arguments.push_back (arg);
}
- virtual
- ~CommandObjectWatchpointCommandList () {}
+ ~CommandObjectWatchpointCommandList () override {}
protected:
- virtual bool
- DoExecute (Args& command,
- CommandReturnObject &result)
+ bool
+ DoExecute (Args& command, CommandReturnObject &result) override
{
Target *target = m_interpreter.GetDebugger().GetSelectedTarget().get();
diff --git a/source/Commands/CommandObjectWatchpointCommand.h b/source/Commands/CommandObjectWatchpointCommand.h
index 3bc9b35..d77b32a 100644
--- a/source/Commands/CommandObjectWatchpointCommand.h
+++ b/source/Commands/CommandObjectWatchpointCommand.h
@@ -13,7 +13,6 @@
// C Includes
// C++ Includes
-
// Other libraries and framework includes
// Project includes
@@ -33,11 +32,9 @@ class CommandObjectWatchpointCommand : public CommandObjectMultiword
public:
CommandObjectWatchpointCommand (CommandInterpreter &interpreter);
- virtual
- ~CommandObjectWatchpointCommand ();
-
+ ~CommandObjectWatchpointCommand() override;
};
} // namespace lldb_private
-#endif // liblldb_CommandObjectWatchpointCommand_h_
+#endif // liblldb_CommandObjectWatchpointCommand_h_
OpenPOWER on IntegriCloud