summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/OptionGroupBoolean.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-09-27 22:26:11 +0000
committerGreg Clayton <gclayton@apple.com>2012-09-27 22:26:11 +0000
commitb5f0feabae967ab27efa82ad1a54536fc5671d22 (patch)
tree9b5a1b5aaf6379c843d554f81819972fae0d804d /lldb/source/Interpreter/OptionGroupBoolean.cpp
parentdaa1c74da8e30a2c2dfab0ad64ade8f2cd25a773 (diff)
downloadbcm5719-llvm-b5f0feabae967ab27efa82ad1a54536fc5671d22.tar.gz
bcm5719-llvm-b5f0feabae967ab27efa82ad1a54536fc5671d22.zip
Wrapped up the work I am going to do for now for the "add-dsym" or "target symfile add" command.
We can now do: Specify a path to a debug symbols file: (lldb) add-dsym <path-to-dsym> Go and download the dSYM file for the "libunc.dylib" module in your target: (lldb) add-dsym --shlib libunc.dylib Go and download the dSYM given a UUID: (lldb) add-dsym --uuid <UUID> Go and download the dSYM file for the current frame: (lldb) add-dsym --frame llvm-svn: 164806
Diffstat (limited to 'lldb/source/Interpreter/OptionGroupBoolean.cpp')
-rw-r--r--lldb/source/Interpreter/OptionGroupBoolean.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/lldb/source/Interpreter/OptionGroupBoolean.cpp b/lldb/source/Interpreter/OptionGroupBoolean.cpp
index f5403cfb992..58ac0f1def8 100644
--- a/lldb/source/Interpreter/OptionGroupBoolean.cpp
+++ b/lldb/source/Interpreter/OptionGroupBoolean.cpp
@@ -21,20 +21,19 @@ OptionGroupBoolean::OptionGroupBoolean (uint32_t usage_mask,
bool required,
const char *long_option,
char short_option,
- uint32_t completion_type,
- lldb::CommandArgumentType argument_type,
const char *usage_text,
- bool default_value) :
+ bool default_value,
+ bool no_argument_toggle_default) :
m_value (default_value, default_value)
{
m_option_definition.usage_mask = usage_mask;
m_option_definition.required = required;
m_option_definition.long_option = long_option;
m_option_definition.short_option = short_option;
- m_option_definition.option_has_arg = required_argument;
+ m_option_definition.option_has_arg = no_argument_toggle_default ? no_argument : required_argument;
m_option_definition.enum_values = NULL;
- m_option_definition.completion_type = completion_type;
- m_option_definition.argument_type = argument_type;
+ m_option_definition.completion_type = 0;
+ m_option_definition.argument_type = eArgTypeBoolean;
m_option_definition.usage_text = usage_text;
}
@@ -47,7 +46,17 @@ OptionGroupBoolean::SetOptionValue (CommandInterpreter &interpreter,
uint32_t option_idx,
const char *option_arg)
{
- Error error (m_value.SetValueFromCString (option_arg));
+ Error error;
+ if (m_option_definition.option_has_arg == no_argument)
+ {
+ // Not argument, toggle the default value and mark the option as having been set
+ m_value.SetCurrentValue (!m_value.GetDefaultValue());
+ m_value.SetOptionWasSet ();
+ }
+ else
+ {
+ error = m_value.SetValueFromCString (option_arg);
+ }
return error;
}
OpenPOWER on IntegriCloud