aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectApropos.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-08-22 17:17:09 +0000
committerGreg Clayton <gclayton@apple.com>2012-08-22 17:17:09 +0000
commit67cc06366cdb20795d21c31f89624d81e97af799 (patch)
tree43edfb98f1f542853282474c9685a5e071d2e1d9 /lldb/source/Commands/CommandObjectApropos.cpp
parent40dd4d9bf396f17b28fe823160f3e103d2943cfb (diff)
downloadllvm-67cc06366cdb20795d21c31f89624d81e97af799.zip
llvm-67cc06366cdb20795d21c31f89624d81e97af799.tar.gz
llvm-67cc06366cdb20795d21c31f89624d81e97af799.tar.bz2
Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation:
- no setting auto completion - very manual and error prone way of getting/setting variables - tons of code duplication - useless instance names for processes, threads Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing". llvm-svn: 162366
Diffstat (limited to 'lldb/source/Commands/CommandObjectApropos.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectApropos.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/lldb/source/Commands/CommandObjectApropos.cpp b/lldb/source/Commands/CommandObjectApropos.cpp
index a71c2b6..a8713d0 100644
--- a/lldb/source/Commands/CommandObjectApropos.cpp
+++ b/lldb/source/Commands/CommandObjectApropos.cpp
@@ -86,27 +86,22 @@ CommandObjectApropos::DoExecute (Args& args, CommandReturnObject &result)
for (size_t i = 0; i < commands_found.GetSize(); ++i)
m_interpreter.OutputFormattedHelpText (result.GetOutputStream(),
commands_found.GetStringAtIndex(i),
- "--", commands_help.
- GetStringAtIndex(i),
+ "--",
+ commands_help.GetStringAtIndex(i),
max_len);
}
- StreamString settings_search_results;
- lldb::UserSettingsControllerSP root = Debugger::GetSettingsController ();
- const char *settings_prefix = root->GetLevelName().GetCString();
-
- UserSettingsController::SearchAllSettingsDescriptions (m_interpreter,
- root,
- settings_prefix,
- search_word,
- settings_search_results);
-
- if (settings_search_results.GetSize() > 0)
+ std::vector<const Property *> properties;
+ const size_t num_properties = m_interpreter.GetDebugger().Apropos(search_word, properties);
+ if (num_properties)
{
+ const bool dump_qualified_name = true;
result.AppendMessageWithFormat ("\nThe following settings variables may relate to '%s': \n\n", search_word);
- result.AppendMessageWithFormat ("%s", settings_search_results.GetData());
+ for (size_t i=0; i<num_properties; ++i)
+ properties[i]->DumpDescription (m_interpreter, result.GetOutputStream(), 0, dump_qualified_name);
+
}
result.SetStatus (eReturnStatusSuccessFinishNoResult);