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".
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162366 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Interpreter/CommandInterpreter.cpp b/source/Interpreter/CommandInterpreter.cpp
index 979e21a..05384e4 100644
--- a/source/Interpreter/CommandInterpreter.cpp
+++ b/source/Interpreter/CommandInterpreter.cpp
@@ -84,17 +84,10 @@
m_truncation_warning(eNoTruncation),
m_command_source_depth (0)
{
- const char *dbg_name = debugger.GetInstanceName().AsCString();
- std::string lang_name = ScriptInterpreter::LanguageToString (script_language);
- StreamString var_name;
- var_name.Printf ("[%s].script-lang", dbg_name);
- debugger.GetSettingsController()->SetVariable (var_name.GetData(), lang_name.c_str(),
- eVarSetOperationAssign, false,
- m_debugger.GetInstanceName().AsCString());
+ debugger.SetScriptLanguage (script_language);
SetEventName (eBroadcastBitThreadShouldExit, "thread-should-exit");
SetEventName (eBroadcastBitResetPrompt, "reset-prompt");
- SetEventName (eBroadcastBitQuitCommandReceived, "quit");
-
+ SetEventName (eBroadcastBitQuitCommandReceived, "quit");
CheckInWithManager ();
}
@@ -2505,6 +2498,7 @@
while (end > start
&& text[end] != ' ' && text[end] != '\t' && text[end] != '\n')
end--;
+ assert (end > 0);
}
sub_len = end - start;