diff options
author | Greg Clayton <gclayton@apple.com> | 2012-09-27 22:26:11 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2012-09-27 22:26:11 +0000 |
commit | b5f0feabae967ab27efa82ad1a54536fc5671d22 (patch) | |
tree | 9b5a1b5aaf6379c843d554f81819972fae0d804d /lldb/source/Interpreter/OptionGroupBoolean.cpp | |
parent | daa1c74da8e30a2c2dfab0ad64ade8f2cd25a773 (diff) | |
download | bcm5719-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.cpp | 23 |
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; } |