summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Core/UserSettingsController.h36
-rw-r--r--lldb/source/Commands/CommandObjectApropos.cpp7
-rw-r--r--lldb/source/Commands/CommandObjectSettings.cpp201
-rw-r--r--lldb/source/Core/UserSettingsController.cpp541
-rw-r--r--lldb/source/Target/Target.cpp24
-rw-r--r--lldb/test/abbreviation_tests/TestAbbreviations.py8
-rw-r--r--lldb/test/settings/TestSettings.py44
7 files changed, 427 insertions, 434 deletions
diff --git a/lldb/include/lldb/Core/UserSettingsController.h b/lldb/include/lldb/Core/UserSettingsController.h
index 0a675eb6c12..3211c083062 100644
--- a/lldb/include/lldb/Core/UserSettingsController.h
+++ b/lldb/include/lldb/Core/UserSettingsController.h
@@ -135,41 +135,53 @@ public:
static void
FindAllSettingsDescriptions (CommandInterpreter &interpreter,
- lldb::UserSettingsControllerSP root,
- std::string &current_prefix,
+ const lldb::UserSettingsControllerSP& usc_sp,
+ const const char *current_prefix,
Stream &result_stream,
Error &err);
static void
FindSettingsDescriptions (CommandInterpreter &interpreter,
- lldb::UserSettingsControllerSP root,
- std::string &current_prefix,
+ const lldb::UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
const char *search_name,
Stream &result_stream,
Error &err);
static void
SearchAllSettingsDescriptions (CommandInterpreter &interpreter,
- lldb::UserSettingsControllerSP root,
- std::string &current_prefix,
+ const lldb::UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
const char *search_word,
Stream &result_stream);
static void
GetAllVariableValues (CommandInterpreter &interpreter,
- lldb::UserSettingsControllerSP root,
- std::string &current_prefix,
+ const lldb::UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
Stream &result_stream,
Error &err);
+ static bool
+ DumpValue (CommandInterpreter &interpreter,
+ const lldb::UserSettingsControllerSP& usc_sp,
+ const char *variable_dot_name,
+ Stream &strm);
+
+ static bool
+ DumpValue (const char *variable_dot_name,
+ SettableVariableType var_type,
+ const StringList &variable_value,
+ Stream &strm);
+
static int
- CompleteSettingsNames (lldb::UserSettingsControllerSP root_settings,
+ CompleteSettingsNames (const lldb::UserSettingsControllerSP& usc_sp,
Args &partial_setting_name_pieces,
bool &word_complete,
StringList &matches);
static int
- CompleteSettingsValue (lldb::UserSettingsControllerSP root_settings,
+ CompleteSettingsValue (const lldb::UserSettingsControllerSP& usc_sp,
const char *full_dot_name,
const char *partial_value,
bool &word_complete,
@@ -341,10 +353,12 @@ protected:
private:
UserSettingDefinition m_settings;
+
+ typedef std::map<std::string,InstanceSettings*> InstanceSettingsMap;
std::vector<lldb::UserSettingsControllerSP> m_children;
std::map <std::string, lldb::InstanceSettingsSP> m_pending_settings;
- std::map <std::string, InstanceSettings *> m_live_settings; // live settings should never be NULL (hence 'live')
+ InstanceSettingsMap m_live_settings; // live settings should never be NULL (hence 'live')
mutable Mutex m_children_mutex;
mutable Mutex m_pending_settings_mutex;
mutable Mutex m_live_settings_mutex;
diff --git a/lldb/source/Commands/CommandObjectApropos.cpp b/lldb/source/Commands/CommandObjectApropos.cpp
index 1d003fc888e..3b4b3501596 100644
--- a/lldb/source/Commands/CommandObjectApropos.cpp
+++ b/lldb/source/Commands/CommandObjectApropos.cpp
@@ -99,9 +99,12 @@ CommandObjectApropos::Execute
StreamString settings_search_results;
lldb::UserSettingsControllerSP root = Debugger::GetSettingsController ();
- std::string settings_prefix = root->GetLevelName().AsCString();
+ const char *settings_prefix = root->GetLevelName().GetCString();
- UserSettingsController::SearchAllSettingsDescriptions (m_interpreter, root, settings_prefix, search_word,
+ UserSettingsController::SearchAllSettingsDescriptions (m_interpreter,
+ root,
+ settings_prefix,
+ search_word,
settings_search_results);
if (settings_search_results.GetSize() > 0)
diff --git a/lldb/source/Commands/CommandObjectSettings.cpp b/lldb/source/Commands/CommandObjectSettings.cpp
index 02a3287f4ea..e43c16a0743 100644
--- a/lldb/source/Commands/CommandObjectSettings.cpp
+++ b/lldb/source/Commands/CommandObjectSettings.cpp
@@ -30,27 +30,15 @@ CommandObjectMultiwordSettings::CommandObjectMultiwordSettings (CommandInterpret
"A set of commands for manipulating internal settable debugger variables.",
"settings <command> [<command-options>]")
{
- bool status;
-
- CommandObjectSP set_command_object (new CommandObjectSettingsSet (interpreter));
- CommandObjectSP show_command_object (new CommandObjectSettingsShow (interpreter));
- CommandObjectSP list_command_object (new CommandObjectSettingsList (interpreter));
- CommandObjectSP remove_command_object (new CommandObjectSettingsRemove (interpreter));
- CommandObjectSP replace_command_object (new CommandObjectSettingsReplace (interpreter));
- CommandObjectSP insert_before_command_object (new CommandObjectSettingsInsertBefore (interpreter));
- CommandObjectSP insert_after_command_object (new CommandObjectSettingsInsertAfter(interpreter));
- CommandObjectSP append_command_object (new CommandObjectSettingsAppend(interpreter));
- CommandObjectSP clear_command_object (new CommandObjectSettingsClear(interpreter));
-
- status = LoadSubCommand ("set", set_command_object);
- status = LoadSubCommand ("show", show_command_object);
- status = LoadSubCommand ("list", list_command_object);
- status = LoadSubCommand ("remove", remove_command_object);
- status = LoadSubCommand ("replace", replace_command_object);
- status = LoadSubCommand ("insert-before", insert_before_command_object);
- status = LoadSubCommand ("insert-after", insert_after_command_object);
- status = LoadSubCommand ("append", append_command_object);
- status = LoadSubCommand ("clear", clear_command_object);
+ LoadSubCommand ("set", CommandObjectSP (new CommandObjectSettingsSet (interpreter)));
+ LoadSubCommand ("show", CommandObjectSP (new CommandObjectSettingsShow (interpreter)));
+ LoadSubCommand ("list", CommandObjectSP (new CommandObjectSettingsList (interpreter)));
+ LoadSubCommand ("remove", CommandObjectSP (new CommandObjectSettingsRemove (interpreter)));
+ LoadSubCommand ("replace", CommandObjectSP (new CommandObjectSettingsReplace (interpreter)));
+ LoadSubCommand ("insert-before", CommandObjectSP (new CommandObjectSettingsInsertBefore (interpreter)));
+ LoadSubCommand ("insert-after", CommandObjectSP (new CommandObjectSettingsInsertAfter (interpreter)));
+ LoadSubCommand ("append", CommandObjectSP (new CommandObjectSettingsAppend (interpreter)));
+ LoadSubCommand ("clear", CommandObjectSP (new CommandObjectSettingsClear (interpreter)));
}
CommandObjectMultiwordSettings::~CommandObjectMultiwordSettings ()
@@ -123,7 +111,7 @@ CommandObjectSettingsSet::~CommandObjectSettingsSet()
bool
CommandObjectSettingsSet::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -161,11 +149,11 @@ CommandObjectSettingsSet::Execute (Args& command, CommandReturnObject &result)
}
else
{
- Error err = root_settings->SetVariable (var_name_string.c_str(),
- var_value,
- eVarSetOperationAssign,
- m_options.m_override,
- m_interpreter.GetDebugger().GetInstanceName().AsCString());
+ Error err = usc_sp->SetVariable (var_name_string.c_str(),
+ var_value,
+ eVarSetOperationAssign,
+ m_options.m_override,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString());
if (err.Fail ())
{
result.AppendError (err.AsCString());
@@ -209,11 +197,11 @@ CommandObjectSettingsSet::HandleArgumentCompletion (Args &input,
&& completion_str.compare (matches.GetStringAtIndex(0)) == 0))
{
matches.Clear();
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController();
+ UserSettingsControllerSP usc_sp = Debugger::GetSettingsController();
if (cursor_index == 1)
{
// The user is at the end of the variable name, which is complete and valid.
- UserSettingsController::CompleteSettingsValue (root_settings,
+ UserSettingsController::CompleteSettingsValue (usc_sp,
input.GetArgumentAtIndex (1), // variable name
NULL, // empty value string
word_complete,
@@ -222,7 +210,7 @@ CommandObjectSettingsSet::HandleArgumentCompletion (Args &input,
else
{
// The user is partly into the variable value.
- UserSettingsController::CompleteSettingsValue (root_settings,
+ UserSettingsController::CompleteSettingsValue (usc_sp,
input.GetArgumentAtIndex (1), // variable name
completion_str.c_str(), // partial value string
word_complete,
@@ -328,11 +316,10 @@ CommandObjectSettingsShow::~CommandObjectSettingsShow()
bool
-CommandObjectSettingsShow::Execute (Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsShow::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
- std::string current_prefix = root_settings->GetLevelName().AsCString();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
+ const char *current_prefix = usc_sp->GetLevelName().GetCString();
Error err;
@@ -341,48 +328,27 @@ CommandObjectSettingsShow::Execute (Args& command,
// The user requested to see the value of a particular variable.
SettableVariableType var_type;
const char *variable_name = command.GetArgumentAtIndex (0);
- StringList value = root_settings->GetVariable (variable_name, var_type,
- m_interpreter.GetDebugger().GetInstanceName().AsCString(),
- err);
+ StringList value = usc_sp->GetVariable (variable_name,
+ var_type,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString(),
+ err);
if (err.Fail ())
{
result.AppendError (err.AsCString());
result.SetStatus (eReturnStatusFailed);
- }
+ }
else
{
- StreamString tmp_str;
- char *type_name = (char *) "";
- if (var_type != eSetVarTypeNone)
- {
- tmp_str.Printf (" (%s)", UserSettingsController::GetTypeString (var_type));
- type_name = (char *) tmp_str.GetData();
- }
-
- if (value.GetSize() == 0)
- result.AppendMessageWithFormat ("%s%s = ''\n", variable_name, type_name);
- else if ((var_type != eSetVarTypeArray) && (var_type != eSetVarTypeDictionary))
- result.AppendMessageWithFormat ("%s%s = '%s'\n", variable_name, type_name, value.GetStringAtIndex (0));
- else
- {
- result.AppendMessageWithFormat ("%s%s:\n", variable_name, type_name);
- for (unsigned i = 0, e = value.GetSize(); i != e; ++i)
- {
- if (var_type == eSetVarTypeArray)
- result.AppendMessageWithFormat (" [%d]: '%s'\n", i, value.GetStringAtIndex (i));
- else if (var_type == eSetVarTypeDictionary)
- result.AppendMessageWithFormat (" '%s'\n", value.GetStringAtIndex (i));
- }
- }
- result.SetStatus (eReturnStatusSuccessFinishNoResult);
+ UserSettingsController::DumpValue(m_interpreter, usc_sp, variable_name, result.GetOutputStream());
+ result.SetStatus (eReturnStatusSuccessFinishResult);
}
}
else
{
UserSettingsController::GetAllVariableValues (m_interpreter,
- root_settings,
+ usc_sp,
current_prefix,
result.GetOutputStream(),
err);
@@ -459,18 +425,17 @@ CommandObjectSettingsList::~CommandObjectSettingsList()
bool
-CommandObjectSettingsList::Execute ( Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsList::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
- std::string current_prefix = root_settings->GetLevelName().AsCString();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
+ const char *current_prefix = usc_sp->GetLevelName().GetCString();
Error err;
if (command.GetArgumentCount() == 0)
{
UserSettingsController::FindAllSettingsDescriptions (m_interpreter,
- root_settings,
+ usc_sp,
current_prefix,
result.GetOutputStream(),
err);
@@ -479,7 +444,7 @@ CommandObjectSettingsList::Execute ( Args& command,
{
const char *search_name = command.GetArgumentAtIndex (0);
UserSettingsController::FindSettingsDescriptions (m_interpreter,
- root_settings,
+ usc_sp,
current_prefix,
search_name,
result.GetOutputStream(),
@@ -574,10 +539,9 @@ CommandObjectSettingsRemove::~CommandObjectSettingsRemove ()
}
bool
-CommandObjectSettingsRemove::Execute ( Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsRemove::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -611,12 +575,12 @@ CommandObjectSettingsRemove::Execute ( Args& command,
index_value_string = index_value;
- Error err = root_settings->SetVariable (var_name_string.c_str(),
- NULL,
- eVarSetOperationRemove,
- true,
- m_interpreter.GetDebugger().GetInstanceName().AsCString(),
- index_value_string.c_str());
+ Error err = usc_sp->SetVariable (var_name_string.c_str(),
+ NULL,
+ eVarSetOperationRemove,
+ true,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString(),
+ index_value_string.c_str());
if (err.Fail ())
{
result.AppendError (err.AsCString());
@@ -710,10 +674,9 @@ CommandObjectSettingsReplace::~CommandObjectSettingsReplace ()
}
bool
-CommandObjectSettingsReplace::Execute ( Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsReplace::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -761,12 +724,12 @@ CommandObjectSettingsReplace::Execute ( Args& command,
}
else
{
- Error err = root_settings->SetVariable (var_name_string.c_str(),
- var_value,
- eVarSetOperationReplace,
- true,
- m_interpreter.GetDebugger().GetInstanceName().AsCString(),
- index_value_string.c_str());
+ Error err = usc_sp->SetVariable (var_name_string.c_str(),
+ var_value,
+ eVarSetOperationReplace,
+ true,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString(),
+ index_value_string.c_str());
if (err.Fail ())
{
result.AppendError (err.AsCString());
@@ -855,10 +818,9 @@ CommandObjectSettingsInsertBefore::~CommandObjectSettingsInsertBefore ()
}
bool
-CommandObjectSettingsInsertBefore::Execute ( Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsInsertBefore::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -907,12 +869,12 @@ CommandObjectSettingsInsertBefore::Execute ( Args&
}
else
{
- Error err = root_settings->SetVariable (var_name_string.c_str(),
- var_value,
- eVarSetOperationInsertBefore,
- true,
- m_interpreter.GetDebugger().GetInstanceName().AsCString(),
- index_value_string.c_str());
+ Error err = usc_sp->SetVariable (var_name_string.c_str(),
+ var_value,
+ eVarSetOperationInsertBefore,
+ true,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString(),
+ index_value_string.c_str());
if (err.Fail ())
{
result.AppendError (err.AsCString());
@@ -1002,10 +964,9 @@ CommandObjectSettingsInsertAfter::~CommandObjectSettingsInsertAfter ()
}
bool
-CommandObjectSettingsInsertAfter::Execute ( Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsInsertAfter::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -1054,12 +1015,12 @@ CommandObjectSettingsInsertAfter::Execute ( Args& co
}
else
{
- Error err = root_settings->SetVariable (var_name_string.c_str(),
- var_value,
- eVarSetOperationInsertAfter,
- true,
- m_interpreter.GetDebugger().GetInstanceName().AsCString(),
- index_value_string.c_str());
+ Error err = usc_sp->SetVariable (var_name_string.c_str(),
+ var_value,
+ eVarSetOperationInsertAfter,
+ true,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString(),
+ index_value_string.c_str());
if (err.Fail ())
{
result.AppendError (err.AsCString());
@@ -1139,10 +1100,9 @@ CommandObjectSettingsAppend::~CommandObjectSettingsAppend ()
}
bool
-CommandObjectSettingsAppend::Execute (Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsAppend::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -1179,11 +1139,11 @@ CommandObjectSettingsAppend::Execute (Args& command,
}
else
{
- Error err = root_settings->SetVariable (var_name_string.c_str(),
- var_value,
- eVarSetOperationAppend,
- true,
- m_interpreter.GetDebugger().GetInstanceName().AsCString());
+ Error err = usc_sp->SetVariable (var_name_string.c_str(),
+ var_value,
+ eVarSetOperationAppend,
+ true,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString());
if (err.Fail ())
{
result.AppendError (err.AsCString());
@@ -1253,10 +1213,9 @@ CommandObjectSettingsClear::~CommandObjectSettingsClear ()
}
bool
-CommandObjectSettingsClear::Execute ( Args& command,
- CommandReturnObject &result)
+CommandObjectSettingsClear::Execute (Args& command, CommandReturnObject &result)
{
- UserSettingsControllerSP root_settings = Debugger::GetSettingsController ();
+ UserSettingsControllerSP usc_sp (Debugger::GetSettingsController ());
const int argc = command.GetArgumentCount ();
@@ -1275,11 +1234,11 @@ CommandObjectSettingsClear::Execute ( Args& command,
return false;
}
- Error err = root_settings->SetVariable (var_name,
- NULL,
- eVarSetOperationClear,
- false,
- m_interpreter.GetDebugger().GetInstanceName().AsCString());
+ Error err = usc_sp->SetVariable (var_name,
+ NULL,
+ eVarSetOperationClear,
+ false,
+ m_interpreter.GetDebugger().GetInstanceName().AsCString());
if (err.Fail ())
{
diff --git a/lldb/source/Core/UserSettingsController.cpp b/lldb/source/Core/UserSettingsController.cpp
index 60c2aa36b13..da1b49b7a7d 100644
--- a/lldb/source/Core/UserSettingsController.cpp
+++ b/lldb/source/Core/UserSettingsController.cpp
@@ -22,7 +22,7 @@ using namespace lldb_private;
static void
DumpSettingEntry (CommandInterpreter &interpreter,
- Stream &result_stream,
+ Stream &strm,
const uint32_t max_len,
const SettingEntry &entry)
{
@@ -34,7 +34,7 @@ DumpSettingEntry (CommandInterpreter &interpreter,
if (entry.default_value && entry.default_value[0])
description.Printf (" (default: %s)", entry.default_value);
- interpreter.OutputFormattedHelpText (result_stream,
+ interpreter.OutputFormattedHelpText (strm,
entry.var_name,
"--",
description.GetData(),
@@ -42,7 +42,7 @@ DumpSettingEntry (CommandInterpreter &interpreter,
if (entry.enum_values && entry.enum_values[0].string_value)
{
- interpreter.OutputFormattedHelpText (result_stream,
+ interpreter.OutputFormattedHelpText (strm,
"",
" ",
"Enumeration values:",
@@ -56,7 +56,7 @@ DumpSettingEntry (CommandInterpreter &interpreter,
entry.enum_values[enum_idx].usage);
else
description.Printf ("%s", entry.enum_values[enum_idx].string_value);
- interpreter.OutputFormattedHelpText (result_stream,
+ interpreter.OutputFormattedHelpText (strm,
"",
" ",
description.GetData(),
@@ -82,6 +82,7 @@ UserSettingsController::UserSettingsController (const char *level_name,
UserSettingsController::~UserSettingsController ()
{
+ Mutex::Locker locker (m_live_settings_mutex);
m_live_settings.clear();
}
@@ -141,7 +142,7 @@ void
UserSettingsController::InitializeGlobalVariables ()
{
int num_entries;
- const char *prefix = GetLevelName().AsCString();
+ const char *prefix = GetLevelName().GetCString();
num_entries = m_settings.global_settings.size();
for (int i = 0; i < num_entries; ++i)
@@ -247,7 +248,7 @@ UserSettingsController::BuildParentPrefix (std::string &parent_prefix)
if (parent_prefix.length() > 0)
parent_prefix.append (".");
}
- parent_prefix.append (GetLevelName().AsCString());
+ parent_prefix.append (GetLevelName().GetCString());
}
void
@@ -337,7 +338,7 @@ UserSettingsController::SetVariable (const char *full_dot_name,
if (entry == NULL)
{
err.SetErrorStringWithFormat ("Unable to find variable '%s.%s'; cannot assign value.\n",
- prefix.AsCString(), const_var_name.AsCString());
+ prefix.GetCString(), const_var_name.GetCString());
return err;
}
else
@@ -424,7 +425,7 @@ UserSettingsController::SetVariable (const char *full_dot_name,
if (entry == NULL)
{
err.SetErrorStringWithFormat ("Unknown instance variable '%s'; cannot assign value.\n",
- const_var_name.AsCString());
+ const_var_name.GetCString());
return err;
}
@@ -465,7 +466,7 @@ UserSettingsController::SetVariable (const char *full_dot_name,
{ // Scope for mutex.
Mutex::Locker locker (m_pending_settings_mutex);
- m_pending_settings[instance_name.AsCString()] = current_settings_sp;
+ m_pending_settings[instance_name.GetCString()] = current_settings_sp;
}
if (override)
@@ -522,7 +523,7 @@ UserSettingsController::SetVariable (const char *full_dot_name,
else
{
err.SetErrorStringWithFormat ("'%s' is not a valid level name; was expecting '%s'. Cannot assign value.\n",
- prefix.AsCString(), m_settings.level_name.AsCString());
+ prefix.GetCString(), m_settings.level_name.GetCString());
}
return err;
@@ -604,7 +605,7 @@ UserSettingsController::GetVariable
{
// Look for instance name setting in pending settings.
- std::string inst_name_str = instance_name.AsCString();
+ std::string inst_name_str = instance_name.GetCString();
std::map<std::string, InstanceSettingsSP>::iterator pos;
pos = m_pending_settings.find (inst_name_str);
@@ -684,10 +685,10 @@ UserSettingsController::RemovePendingSettings (const ConstString &instance_name)
// Add surrounding brackets to instance name if not already present.
- if (instance_name.AsCString()[0] != '[')
- tmp_name.Printf ("[%s]", instance_name.AsCString());
+ if (instance_name.GetCString()[0] != '[')
+ tmp_name.Printf ("[%s]", instance_name.GetCString());
else
- tmp_name.Printf ("%s", instance_name.AsCString());
+ tmp_name.Printf ("%s", instance_name.GetCString());
std::string instance_name_str (tmp_name.GetData());
std::map<std::string, InstanceSettingsSP>::iterator pos;
@@ -704,10 +705,10 @@ UserSettingsController::FindPendingSettings (const ConstString &instance_name)
// Add surrounding brackets to instance name if not already present.
- if (instance_name.AsCString()[0] != '[')
- tmp_name.Printf ("[%s]", instance_name.AsCString());
+ if (instance_name.GetCString()[0] != '[')
+ tmp_name.Printf ("[%s]", instance_name.GetCString());
else
- tmp_name.Printf ("%s", instance_name.AsCString());
+ tmp_name.Printf ("%s", instance_name.GetCString());
std::string instance_name_str (tmp_name.GetData()); // Need std::string for std::map look-up
@@ -776,7 +777,7 @@ UserSettingsController::CopyDefaultSettings (const InstanceSettingsSP &actual_se
InstanceSettingsSP
UserSettingsController::PendingSettingsForInstance (const ConstString &instance_name)
{
- std::string name_str (instance_name.AsCString());
+ std::string name_str (instance_name.GetCString());
std::map<std::string, InstanceSettingsSP>::iterator pos;
Mutex::Locker locker (m_pending_settings_mutex);
@@ -788,7 +789,7 @@ UserSettingsController::PendingSettingsForInstance (const ConstString &instance_
}
else
{
- InstanceSettingsSP new_settings_sp = CreateInstanceSettings (instance_name.AsCString());
+ InstanceSettingsSP new_settings_sp = CreateInstanceSettings (instance_name.GetCString());
CopyDefaultSettings (new_settings_sp, instance_name, true);
m_pending_settings[name_str] = new_settings_sp;
return new_settings_sp;
@@ -802,50 +803,30 @@ UserSettingsController::PendingSettingsForInstance (const ConstString &instance_
}
void
-UserSettingsController::GetAllDefaultSettingValues (Stream &result_stream)
+UserSettingsController::GetAllDefaultSettingValues (Stream &strm)
{
std::string parent_prefix;
BuildParentPrefix (parent_prefix);
- const char *prefix = parent_prefix.c_str();
for (int i = 0; i < m_settings.instance_settings.size(); ++i)
{
SettingEntry &entry = m_settings.instance_settings[i];
ConstString var_name (entry.var_name);
- StringList tmp_value;
- m_default_settings->GetInstanceSettingsValue (entry, var_name, tmp_value, NULL);
-
- StreamString value_string;
- bool multi_value = false;
-
- if (tmp_value.GetSize() == 1)
- value_string.Printf ("%s", tmp_value.GetStringAtIndex (0));
- else
- {
- for (int j = 0; j < tmp_value.GetSize(); ++j)
- {
- if (entry.var_type == eSetVarTypeArray)
- value_string.Printf ("\n [%d]: '%s'", j, tmp_value.GetStringAtIndex (j));
- else if (entry.var_type == eSetVarTypeDictionary)
- value_string.Printf ("\n '%s'", tmp_value.GetStringAtIndex (j));
- }
- multi_value = true;
- }
-
- if (! parent_prefix.empty())
- {
- if (multi_value)
- result_stream.Printf ("%s.%s (%s):%s\n", prefix, var_name.AsCString(),
- UserSettingsController::GetTypeString (entry.var_type), value_string.GetData());
- else
- result_stream.Printf ("%s.%s (%s) = '%s'\n", prefix, var_name.AsCString(),
- UserSettingsController::GetTypeString (entry.var_type), value_string.GetData());
- }
+ StringList value;
+ m_default_settings->GetInstanceSettingsValue (entry, var_name, value, NULL);
+
+ if (!parent_prefix.empty())
+ strm.Printf ("%s.", parent_prefix.c_str());
+
+ DumpValue (var_name.GetCString(),
+ entry.var_type,
+ value,
+ strm);
}
}
void
-UserSettingsController::GetAllPendingSettingValues (Stream &result_stream)
+UserSettingsController::GetAllPendingSettingValues (Stream &strm)
{
std::map<std::string, InstanceSettingsSP>::iterator pos;
@@ -881,13 +862,13 @@ UserSettingsController::GetAllPendingSettingValues (Stream &result_stream)
if (parent_prefix.length() > 0)
{
- result_stream.Printf ("%s.%s.%s (%s) = '%s' [pending]\n", prefix, instance_name.AsCString(),
- var_name.AsCString(), UserSettingsController::GetTypeString (entry.var_type),
+ strm.Printf ("%s.%s.%s (%s) = '%s' [pending]\n", prefix, instance_name.GetCString(),
+ var_name.GetCString(), UserSettingsController::GetTypeString (entry.var_type),
value_str.GetData());
}
else
{
- result_stream.Printf ("%s (%s) = '%s' [pending]\n", var_name.AsCString(),
+ strm.Printf ("%s (%s) = '%s' [pending]\n", var_name.GetCString(),
UserSettingsController::GetTypeString (entry.var_type),
value_str.GetData());
}
@@ -898,30 +879,24 @@ UserSettingsController::GetAllPendingSettingValues (Stream &result_stream)
InstanceSettings *
UserSettingsController::FindSettingsForInstance (const ConstString &instance_name)
{
- std::string instance_name_str (instance_name.AsCString());
- std::map<std::string, InstanceSettings *>::iterator pos;
-
- pos = m_live_settings.find (instance_name_str);
+ std::string instance_name_str (instance_name.GetCString());
+ Mutex::Locker locker (m_live_settings_mutex);
+ InstanceSettingsMap::iterator pos = m_live_settings.find (instance_name_str);
if (pos != m_live_settings.end ())
- {
- InstanceSettings *settings = pos->second;
- return settings;
- }
-
+ return pos->second;
return NULL;
}
void
UserSettingsController::GetAllInstanceVariableValues (CommandInterpreter &interpreter,
- Stream &result_stream)
+ Stream &strm)
{
- std::map<std::string, InstanceSettings *>::iterator pos;
std::string parent_prefix;
BuildParentPrefix (parent_prefix);
- const char *prefix = parent_prefix.c_str();
StreamString description;
- for (pos = m_live_settings.begin(); pos != m_live_settings.end(); ++pos)
+ Mutex::Locker locker (m_live_settings_mutex);
+ for (InstanceSettingsMap::iterator pos = m_live_settings.begin(); pos != m_live_settings.end(); ++pos)
{
std::string instance_name = pos->first;
InstanceSettings *settings = pos->second;
@@ -932,31 +907,11 @@ UserSettingsController::GetAllInstanceVariableValues (CommandInterpreter &interp
const ConstString var_name (entry.var_name);
StringList tmp_value;
settings->GetInstanceSettingsValue (entry, var_name, tmp_value, NULL);
- StreamString tmp_value_str;
-
- if (tmp_value.GetSize() == 0)
- tmp_value_str.Printf ("");
- else if (tmp_value.GetSize() == 1)
- tmp_value_str.Printf ("%s", tmp_value.GetStringAtIndex (0));
- else
- {
- for (int j = 0; j < tmp_value.GetSize(); ++j)
- tmp_value_str.Printf ("%s ",tmp_value.GetStringAtIndex (j));
- }
- description.Clear();
- if (parent_prefix.length() > 0)
- {
- description.Printf ("%s.%s.%s (%s) = '%s'", prefix, instance_name.c_str(), var_name.AsCString(),
- UserSettingsController::GetTypeString (entry.var_type),
- tmp_value_str.GetData());
- }
- else
- {
- description.Printf ("%s (%s) = '%s'", var_name.AsCString(),
- UserSettingsController::GetTypeString (entry.var_type), tmp_value_str.GetData());
- }
- result_stream.Printf ("%s\n", description.GetData());
+ if (!parent_prefix.empty())
+ strm.Printf ("%s.", parent_prefix.c_str());
+
+ DumpValue(var_name.GetCString(), entry.var_type, tmp_value, strm);
}
}
}
@@ -968,14 +923,14 @@ UserSettingsController::OverrideAllInstances (const ConstString &var_name,
const char *index_value,
Error &err)
{
- std::map<std::string, InstanceSettings *>::iterator pos;
StreamString description;
- for (pos = m_live_settings.begin(); pos != m_live_settings.end(); ++pos)
+ Mutex::Locker locker (m_live_settings_mutex);
+ for (InstanceSettingsMap::iterator pos = m_live_settings.begin(); pos != m_live_settings.end(); ++pos)
{
InstanceSettings *settings = pos->second;
StreamString tmp_name;
- tmp_name.Printf ("[%s]", settings->GetInstanceName().AsCString());
+ tmp_name.Printf ("[%s]", settings->GetInstanceName().GetCString());
const ConstString instance_name (tmp_name.GetData());
const SettingEntry *entry = GetInstanceEntry (var_name);
settings->UpdateInstanceSettingsVariable (var_name, index_value, value, instance_name, *entry, op, err, false);
@@ -988,10 +943,10 @@ UserSettingsController::RegisterInstanceSettings (InstanceSettings *instance_set
{
Mutex::Locker locker (m_live_settings_mutex);
StreamString tmp_name;
- tmp_name.Printf ("[%s]", instance_settings->GetInstanceName().AsCString());
+ tmp_name.Printf ("[%s]", instance_settings->GetInstanceName().GetCString());
const ConstString instance_name (tmp_name.GetData());
- std::string instance_name_str (instance_name.AsCString());
- if (instance_name_str.compare (InstanceSettings::GetDefaultName().AsCString()) != 0)
+ std::string instance_name_str (instance_name.GetCString());
+ if (instance_name_str.compare (InstanceSettings::GetDefaultName().GetCString()) != 0)
m_live_settings[instance_name_str] = instance_settings;
}
@@ -1000,12 +955,10 @@ UserSettingsController::UnregisterInstanceSettings (InstanceSettings *instance)
{
Mutex::Locker locker (m_live_settings_mutex);
StreamString tmp_name;
- tmp_name.Printf ("[%s]", instance->GetInstanceName().AsCString());
+ tmp_name.Printf ("[%s]", instance->GetInstanceName().GetCString());
std::string instance_name (tmp_name.GetData());
- std::map <std::string, InstanceSettings *>::iterator pos;
-
- pos = m_live_settings.find (instance_name);
+ InstanceSettingsMap::iterator pos = m_live_settings.find (instance_name);
if (pos != m_live_settings.end())
m_live_settings.erase (pos);
}
@@ -1022,7 +975,7 @@ UserSettingsController::CreateSettingsVector (const SettingEntry *table,
SettingEntry new_entry;
new_entry = table_entry;
- new_entry.var_name = const_var_name.AsCString();
+ new_entry.var_name = const_var_name.GetCString();
if (global)
m_settings.global_settings.push_back (new_entry);
@@ -1090,73 +1043,80 @@ UserSettingsController::PrintEnumValues (const OptionEnumValueElement *enum_valu
void
UserSettingsController::FindAllSettingsDescriptions (CommandInterpreter &interpreter,
- UserSettingsControllerSP root,
- std::string &current_prefix,
- Stream &result_stream,
+ const UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
+ Stream &strm,
Error &err)
{
// Write out current prefix line.
StreamString prefix_line;
StreamString description;
- uint32_t max_len = FindMaxNameLength (root->m_settings.global_settings);
- int num_entries = root->m_settings.global_settings.size();
+ uint32_t max_len = FindMaxNameLength (usc_sp->m_settings.global_settings);
+ int num_entries = usc_sp->m_settings.global_settings.size();
- if (! current_prefix.empty())
- result_stream.Printf ("\n'%s' variables:\n\n", current_prefix.c_str());
+ if (current_prefix && current_prefix[0])
+ strm.Printf ("\n'%s' variables:\n\n", current_prefix);
else
- result_stream.Printf ("\nTop level variables:\n\n");
+ strm.Printf ("\nTop level variables:\n\n");
if (num_entries > 0)
{
// Write out all "global" variables.
for (int i = 0; i < num_entries; ++i)
{
- DumpSettingEntry (interpreter, result_stream, max_len, root->m_settings.global_settings[i]);
+ DumpSettingEntry (interpreter, strm, max_len, usc_sp->m_settings.global_settings[i]);
}
}
- num_entries = root->m_settings.instance_settings.size();
- max_len = FindMaxNameLength (root->m_settings.instance_settings);
+ num_entries = usc_sp->m_settings.instance_settings.size();
+ max_len = FindMaxNameLength (usc_sp->m_settings.instance_settings);
if (num_entries > 0)
{
// Write out all instance variables.
for (int i = 0; i < num_entries; ++i)
{
- DumpSettingEntry (interpreter, result_stream, max_len, root->m_settings.instance_settings[i]);
+ DumpSettingEntry (interpreter, strm, max_len, usc_sp->m_settings.instance_settings[i]);
}
}
// Now, recurse across all children.
- int num_children = root->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
for (int i = 0; i < num_children; ++i)
{
- UserSettingsControllerSP child = root->GetChildAtIndex (i);
+ UserSettingsControllerSP child = usc_sp->GetChildAtIndex (i);
if (child)
{
ConstString child_prefix = child->GetLevelName();
- StreamString new_prefix;
- if (! current_prefix.empty())
- new_prefix.Printf ("%s.%s", current_prefix.c_str(), child_prefix.AsCString());
+ if (current_prefix && current_prefix[0])
+ {
+ StreamString new_prefix;
+ new_prefix.Printf ("%s.%s", current_prefix, child_prefix.GetCString());
+ UserSettingsController::FindAllSettingsDescriptions (interpreter,
+ child,
+ new_prefix.GetData(),
+ strm,
+ err);
+ }
else
- new_prefix.Printf ("%s", child_prefix.AsCString());
- std::string new_prefix_str = new_prefix.GetData();
- UserSettingsController::FindAllSettingsDescriptions (interpreter,
- child,
- new_prefix_str,
- result_stream,
- err);
+ {
+ UserSettingsController::FindAllSettingsDescriptions (interpreter,
+ child,
+ child_prefix.GetCString(),
+ strm,
+ err);
+ }
}
}
}
void
UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interpreter,
- UserSettingsControllerSP root,
- std::string &current_prefix,
+ const UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
const char *search_name,
- Stream &result_stream,
+ Stream &strm,
Error &err)
{
Args names = UserSettingsController::BreakNameIntoPieces (search_name);
@@ -1165,15 +1125,15 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
if (num_pieces == 0)
return;
- if (root->GetLevelName().GetLength() > 0)
+ if (usc_sp->GetLevelName().GetLength() > 0)
{
ConstString prefix (names.GetArgumentAtIndex (0));
- if (prefix != root->GetLevelName())
+ if (prefix != usc_sp->GetLevelName())
{
std::string parent_prefix;
- root->BuildParentPrefix (parent_prefix);
+ usc_sp->BuildParentPrefix (parent_prefix);
err.SetErrorStringWithFormat ("Cannot find match for '%s.%s'\n", parent_prefix.c_str(),
- prefix.AsCString());
+ prefix.GetCString());
return;
}
else
@@ -1189,30 +1149,30 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
StreamString prefix_line;
StreamString description;
uint32_t max_len;
- int num_entries = root->m_settings.global_settings.size();
+ int num_entries = usc_sp->m_settings.global_settings.size();
- max_len = FindMaxNameLength (root->m_settings.global_settings);
+ max_len = FindMaxNameLength (usc_sp->m_settings.global_settings);
- result_stream.Printf ("\n'%s' variables:\n\n", search_name);
+ strm.Printf ("\n'%s' variables:\n\n", search_name);
if (num_entries > 0)
{
// Write out all "global" variables.
for (int i = 0; i < num_entries; ++i)
{
- DumpSettingEntry (interpreter, result_stream, max_len, root->m_settings.global_settings[i]);
+ DumpSettingEntry (interpreter, strm, max_len, usc_sp->m_settings.global_settings[i]);
}
}
- num_entries = root->m_settings.instance_settings.size();
- max_len = FindMaxNameLength (root->m_settings.instance_settings);
+ num_entries = usc_sp->m_settings.instance_settings.size();
+ max_len = FindMaxNameLength (usc_sp->m_settings.instance_settings);
if (num_entries > 0)
{
// Write out all instance variables.
for (int i = 0; i < num_entries; ++i)
{
- DumpSettingEntry (interpreter, result_stream, max_len, root->m_settings.instance_settings[i]);
+ DumpSettingEntry (interpreter, strm, max_len, usc_sp->m_settings.instance_settings[i]);
}
}
}
@@ -1221,26 +1181,26 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
ConstString var_name (names.GetArgumentAtIndex (0));
bool is_global = false;
- const SettingEntry *setting_entry = root->GetGlobalEntry (var_name);
+ const SettingEntry *setting_entry = usc_sp->GetGlobalEntry (var_name);
if (setting_entry == NULL)
- setting_entry = root->GetInstanceEntry (var_name);
+ setting_entry = usc_sp->GetInstanceEntry (var_name);
else
is_global = true;
// Check to see if it is a global or instance variable name.
if (setting_entry != NULL)
{
- DumpSettingEntry (interpreter, result_stream, var_name.GetLength(), *setting_entry);
+ DumpSettingEntry (interpreter, strm, var_name.GetLength(), *setting_entry);
}
else
{
// It must be a child name.
- int num_children = root->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
bool found = false;
for (int i = 0; i < num_children && !found; ++i)
{
- UserSettingsControllerSP child = root->GetChildAtIndex (i);
+ UserSettingsControllerSP child = usc_sp->GetChildAtIndex (i);
if (child)
{
ConstString child_prefix = child->GetLevelName();
@@ -1250,8 +1210,8 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
UserSettingsController::FindSettingsDescriptions (interpreter,
child,
current_prefix,
- var_name.AsCString(),
- result_stream,
+ var_name.GetCString(),
+ strm,
err);
}
}
@@ -1259,7 +1219,7 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
if (!found)
{
std::string parent_prefix;
- root->BuildParentPrefix (parent_prefix);
+ usc_sp->BuildParentPrefix (parent_prefix);
err.SetErrorStringWithFormat ("Cannot find match for '%s.%s'\n", parent_prefix.c_str(), search_name);
return;
}
@@ -1278,11 +1238,11 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
rest_of_search_name.Printf (".");
}
- int num_children = root->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
bool found = false;
for (int i = 0; i < num_children && !found; ++i)
{
- UserSettingsControllerSP child = root->GetChildAtIndex (i);
+ UserSettingsControllerSP child = usc_sp->GetChildAtIndex (i);
if (child)
{
ConstString child_prefix = child->GetLevelName();
@@ -1290,7 +1250,7 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
{
found = true;
UserSettingsController::FindSettingsDescriptions (interpreter, child, current_prefix,
- rest_of_search_name.GetData(), result_stream,
+ rest_of_search_name.GetData(), strm,
err);
}
}
@@ -1298,7 +1258,7 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
if (!found)
{
std::string parent_prefix;
- root->BuildParentPrefix (parent_prefix);
+ usc_sp->BuildParentPrefix (parent_prefix);
err.SetErrorStringWithFormat ("Cannot find match for '%s.%s'\n", parent_prefix.c_str(), search_name);
return;
}
@@ -1307,135 +1267,212 @@ UserSettingsController::FindSettingsDescriptions (CommandInterpreter &interprete
void
UserSettingsController::SearchAllSettingsDescriptions (CommandInterpreter &interpreter,
- UserSettingsControllerSP root,
- std::string &current_prefix,
+ const UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
const char *search_word,
- Stream &result_stream)
+ Stream &strm)
{
if ((search_word == NULL) || (strlen (search_word) == 0))
return;
- int num_entries = root->m_settings.global_settings.size();
+ int num_entries = usc_sp->m_settings.global_settings.size();
if (num_entries > 0)
{
for (int i = 0; i < num_entries; ++i)
{
- const SettingEntry &entry = root->m_settings.global_settings[i];
+ const SettingEntry &entry = usc_sp->m_settings.global_settings[i];
if (strcasestr (entry.description, search_word) != NULL)
{
StreamString var_name;
- if (current_prefix.size() > 0)
- var_name.Printf ("%s.%s", current_prefix.c_str(), entry.var_name);
+ if (current_prefix && current_prefix[0])
+ var_name.Printf ("%s.%s", current_prefix, entry.var_name);
else
var_name.Printf ("%s", entry.var_name);
- interpreter.OutputFormattedHelpText (result_stream, var_name.GetData(), "--", entry.description,
+ interpreter.OutputFormattedHelpText (strm, var_name.GetData(), "--", entry.description,
var_name.GetSize());
}
}
}
- num_entries = root->m_settings.instance_settings.size();
+ num_entries = usc_sp->m_settings.instance_settings.size();
if (num_entries > 0)
{
for (int i = 0; i < num_entries; ++i)
{
- SettingEntry &entry = root->m_settings.instance_settings[i];
+ SettingEntry &entry = usc_sp->m_settings.instance_settings[i];
if (strcasestr (entry.description, search_word) != NULL)
{
StreamString var_name;
- if (current_prefix.size() > 0)
- var_name.Printf ("%s.%s", current_prefix.c_str(), entry.var_name);
+ if (current_prefix && current_prefix[0])
+ var_name.Printf ("%s.%s", current_prefix, entry.var_name);
else
var_name.Printf ("%s", entry.var_name);
- interpreter.OutputFormattedHelpText (result_stream, var_name.GetData(), "--", entry.description,
+ interpreter.OutputFormattedHelpText (strm,
+ var_name.GetData(),
+ "--",
+ entry.description,
var_name.GetSize());
}
}
}
- int num_children = root->GetNumChildren ();
+ int num_children = usc_sp->GetNumChildren ();
for (int i = 0; i < num_children; ++i)
{
- UserSettingsControllerSP child = root->GetChildAtIndex (i);
+ UserSettingsControllerSP child = usc_sp->GetChildAtIndex (i);
if (child)
{
ConstString child_prefix = child->GetLevelName();
- StreamString new_prefix;
- if (! current_prefix.empty())
- new_prefix.Printf ("%s.%s", current_prefix.c_str(), child_prefix.AsCString());
+ if (current_prefix && current_prefix[0])
+ {
+ StreamString new_prefix;
+ new_prefix.Printf ("%s.%s", current_prefix, child_prefix.GetCString());
+ UserSettingsController::SearchAllSettingsDescriptions (interpreter,
+ child,
+ new_prefix.GetData(),
+ search_word,
+ strm);
+ }
else
- new_prefix.Printf ("%s", child_prefix.AsCString());
- std::string new_prefix_str = new_prefix.GetData();
- UserSettingsController::SearchAllSettingsDescriptions (interpreter, child, new_prefix_str, search_word,
- result_stream);
+ {
+ UserSettingsController::SearchAllSettingsDescriptions (interpreter,
+ child,
+ child_prefix.GetCString(),
+ search_word,
+ strm);
+ }
+ }
+ }
+}
+
+bool
+UserSettingsController::DumpValue (CommandInterpreter &interpreter,
+ const UserSettingsControllerSP& usc_sp,
+ const char *variable_dot_name,
+ Stream &strm)
+{
+ SettableVariableType var_type;
+ Error err;
+ StringList value = usc_sp->GetVariable (variable_dot_name,
+ var_type,
+ interpreter.GetDebugger().GetInstanceName().GetCString(),
+ err);
+
+ if (err.Success())
+ return DumpValue (variable_dot_name, var_type, value, strm);
+ return false;
+}
+
+
+bool
+UserSettingsController::DumpValue (const char *variable_dot_name,
+ SettableVariableType var_type,
+ const StringList &value,
+ Stream &strm)
+{
+ const char *type_name = UserSettingsController::GetTypeString (var_type);
+
+ strm.Printf ("%s (%s) = ", variable_dot_name, type_name);
+ if (value.GetSize() == 0)
+ {
+ strm.EOL();
+ }
+ else
+ {
+ switch (var_type)
+ {
+ case eSetVarTypeNone:
+ case eSetVarTypeEnum:
+ case eSetVarTypeInt:
+ case eSetVarTypeBoolean:
+ strm.Printf ("%s\n", value.GetStringAtIndex (0));
+ break;
+
+ case eSetVarTypeString:
+ strm.Printf ("\"%s\"\n", value.GetStringAtIndex (0));
+ break;
+
+ case eSetVarTypeArray:
+ {
+ strm.EOL();
+ for (unsigned i = 0, e = value.GetSize(); i != e; ++i)
+ strm.Printf (" [%u]: \"%s\"\n", i, value.GetStringAtIndex (i));
+ }
+ break;
+
+ case eSetVarTypeDictionary:
+ {
+ strm.EOL();
+ for (unsigned i = 0, e = value.GetSize(); i != e; ++i)
+ strm.Printf (" %s\n", value.GetStringAtIndex (i));
+ }
+ break;
+
+ default:
+ return false;
}
}
+ return true;
}
void
UserSettingsController::GetAllVariableValues (CommandInterpreter &interpreter,
- UserSettingsControllerSP root,
- std::string &current_prefix,
- Stream &result_stream,
+ const UserSettingsControllerSP& usc_sp,
+ const char *current_prefix,
+ Stream &strm,
Error &err)
{
StreamString description;
- int num_entries = root->m_settings.global_settings.size();
- SettableVariableType var_type;
-
+ int num_entries = usc_sp->m_settings.global_settings.size();
for (int i = 0; i < num_entries; ++i)
{
StreamString full_var_name;
- const SettingEntry &entry = root->m_settings.global_settings[i];
- if (! current_prefix.empty())
- full_var_name.Printf ("%s.%s", current_prefix.c_str(), entry.var_name);
+ const SettingEntry &entry = usc_sp->m_settings.global_settings[i];
+
+ if (current_prefix && current_prefix[0])
+ full_var_name.Printf ("%s.%s", current_prefix, entry.var_name);
else
full_var_name.Printf ("%s", entry.var_name);
- StringList value = root->GetVariable (full_var_name.GetData(), var_type,
- interpreter.GetDebugger().GetInstanceName().AsCString(), err);
- description.Clear();
- if (value.GetSize() == 1)
- description.Printf ("%s (%s) = '%s'", full_var_name.GetData(), GetTypeString (entry.var_type),
- value.GetStringAtIndex (0));
- else
- {
- description.Printf ("%s (%s):\n", full_var_name.GetData(), GetTypeString (entry.var_type));
- for (int j = 0; j < value.GetSize(); ++j)
- if (entry.var_type == eSetVarTypeArray)
- description.Printf (" [%d]: '%s'\n", j, value.GetStringAtIndex (j));
- else if (entry.var_type == eSetVarTypeDictionary)
- description.Printf (" '%s'\n", value.GetStringAtIndex (j));
- }
-
- result_stream.Printf ("%s\n", description.GetData());
+
+ DumpValue (interpreter, usc_sp, full_var_name.GetData(), strm);
}
- root->GetAllInstanceVariableValues (interpreter, result_stream);
- root->GetAllPendingSettingValues (result_stream);
- if (root->GetLevelName().GetLength() > 0) // Don't bother with default values for Debugger level.
- root->GetAllDefaultSettingValues (result_stream);
+ usc_sp->GetAllInstanceVariableValues (interpreter, strm);
+ usc_sp->GetAllPendingSettingValues (strm);
+ if (usc_sp->GetLevelName().GetLength() > 0) // Don't bother with default values for Debugger level.
+ usc_sp->GetAllDefaultSettingValues (strm);
// Now, recurse across all children.
- int num_children = root->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
for (int i = 0; i < num_children; ++i)
{
- UserSettingsControllerSP child = root->GetChildAtIndex (i);
+ UserSettingsControllerSP child = usc_sp->GetChildAtIndex (i);
if (child)
{
ConstString child_prefix = child->GetLevelName();
- StreamString new_prefix;
- if (! current_prefix.empty())
- new_prefix.Printf ("%s.%s", current_prefix.c_str(), child_prefix.AsCString());
+ if (current_prefix && current_prefix[0])
+ {
+ StreamString new_prefix;
+ new_prefix.Printf ("%s.%s", current_prefix, child_prefix.GetCString());
+ UserSettingsController::GetAllVariableValues (interpreter,
+ child,
+ new_prefix.GetData(),
+ strm,
+ err);
+ }
else
- new_prefix.Printf ("%s", child_prefix.AsCString());
- std::string new_prefix_str = new_prefix.GetData();
- UserSettingsController::GetAllVariableValues (interpreter, child, new_prefix_str, result_stream,
- err);
+ {
+ UserSettingsController::GetAllVariableValues (interpreter,
+ child,
+ child_prefix.GetCString(),
+ strm,
+ err);
+ }
}
}
@@ -1468,9 +1505,8 @@ UserSettingsController::BreakNameIntoPieces (const char *full_dot_name)
bool
UserSettingsController::IsLiveInstance (const std::string &instance_name)
{
- std::map<std::string, InstanceSettings *>::iterator pos;
-
- pos = m_live_settings.find (instance_name);
+ Mutex::Locker locker (m_live_settings_mutex);
+ InstanceSettingsMap::iterator pos = m_live_settings.find (instance_name);
if (pos != m_live_settings.end())
return true;
@@ -1478,7 +1514,7 @@ UserSettingsController::IsLiveInstance (const std::string &instance_name)
}
int
-UserSettingsController::CompleteSettingsValue (UserSettingsControllerSP root_settings,
+UserSettingsController::CompleteSettingsValue (const UserSettingsControllerSP& usc_sp,
const char *full_dot_name,
const char *partial_value,
bool &word_complete,
@@ -1488,7 +1524,7 @@ UserSettingsController::CompleteSettingsValue (UserSettingsControllerSP root_set
int num_pieces = names.GetArgumentCount();
word_complete = true;
- ConstString root_level = root_settings->GetLevelName();
+ ConstString root_level = usc_sp->GetLevelName();
int num_extra_levels = num_pieces - 2;
if ((num_extra_levels > 0)
&& root_level.GetLength() > 0)
@@ -1507,13 +1543,14 @@ UserSettingsController::CompleteSettingsValue (UserSettingsControllerSP root_set
{
ConstString child_level (names.GetArgumentAtIndex (0));
bool found = false;
- int num_children = root_settings->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
+ UserSettingsControllerSP child_usc_sp = usc_sp;
for (int j = 0; j < num_children && !found; ++j)
{
- if (root_settings->GetChildAtIndex (j)->GetLevelName() == child_level)
+ if (child_usc_sp->GetChildAtIndex (j)->GetLevelName() == child_level)
{
found = true;
- root_settings = root_settings->GetChildAtIndex (j);
+ child_usc_sp = child_usc_sp->GetChildAtIndex (j);
names.Shift();
}
}
@@ -1536,14 +1573,15 @@ UserSettingsController::CompleteSettingsValue (UserSettingsControllerSP root_set
{
// 'next_name' is child name.
bool found = false;
- int num_children = root_settings->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
ConstString child_level (next_name.c_str());
+ UserSettingsControllerSP child_usc_sp = usc_sp;
for (int j = 0; j < num_children && !found; ++j)
{
- if (root_settings->GetChildAtIndex (j)->GetLevelName() == child_level)
+ if (child_usc_sp->GetChildAtIndex (j)->GetLevelName() == child_level)
{
found = true;
- root_settings = root_settings->GetChildAtIndex (j);
+ child_usc_sp = child_usc_sp->GetChildAtIndex (j);
}
}
if (!found)
@@ -1551,9 +1589,9 @@ UserSettingsController::CompleteSettingsValue (UserSettingsControllerSP root_set
}
ConstString var_name (names.GetArgumentAtIndex(0));
- const SettingEntry *entry = root_settings->GetGlobalEntry (var_name);
+ const SettingEntry *entry = usc_sp->GetGlobalEntry (var_name);
if (entry == NULL)
- entry = root_settings->GetInstanceEntry (var_name);
+ entry = usc_sp->GetInstanceEntry (var_name);
if (entry == NULL)
return 0;
@@ -1629,7 +1667,7 @@ UserSettingsController::EnumMatches (const char *partial_value,
}
int
-UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_settings,
+UserSettingsController::CompleteSettingsNames (const UserSettingsControllerSP& usc_sp,
Args &partial_setting_name_pieces,
bool &word_complete,
StringList &matches)
@@ -1646,7 +1684,7 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
// Deal with current level first.
- ConstString root_level = root_settings->GetLevelName();
+ ConstString root_level = usc_sp->GetLevelName();
if ((num_extra_levels > 0)
&& (root_level.GetLength() > 0))
{
@@ -1665,13 +1703,15 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
{
ConstString child_level (partial_setting_name_pieces.GetArgumentAtIndex (0));
bool found = false;
- int num_children = root_settings->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
+ UserSettingsControllerSP child_usc_sp = usc_sp;
+
for (int j = 0; j < num_children && !found; ++j)
{
- if (root_settings->GetChildAtIndex (j)->GetLevelName() == child_level)
+ if (child_usc_sp->GetChildAtIndex (j)->GetLevelName() == child_level)
{
found = true;
- root_settings = root_settings->GetChildAtIndex (j);
+ child_usc_sp = child_usc_sp->GetChildAtIndex (j);
partial_setting_name_pieces.Shift();
}
}
@@ -1695,12 +1735,12 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
// 'next_name' is an instance name. The last name piece must be a non-empty partial match against an
// instance_name, assuming 'next_name' is valid.
- if (root_settings->IsLiveInstance (next_name))
+ if (usc_sp->IsLiveInstance (next_name))
{
std::string complete_prefix;
- root_settings->BuildParentPrefix (complete_prefix);
+ usc_sp->BuildParentPrefix (complete_prefix);
- num_matches = root_settings->InstanceVariableMatches(partial_setting_name_pieces.GetArgumentAtIndex(0),
+ num_matches = usc_sp->InstanceVariableMatches(partial_setting_name_pieces.GetArgumentAtIndex(0),
complete_prefix,
next_name.c_str(),
matches);
@@ -1717,14 +1757,14 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
{
// 'next_name' must be a child name. Find the correct child and pass the remaining piece to be resolved.
bool found = false;
- int num_children = root_settings->GetNumChildren();
+ int num_children = usc_sp->GetNumChildren();
ConstString child_level (next_name.c_str());
for (int i = 0; i < num_children; ++i)
{
- if (root_settings->GetChildAtIndex (i)->GetLevelName() == child_level)
+ if (usc_sp->GetChildAtIndex (i)->GetLevelName() == child_level)
{
found = true;
- return UserSettingsController::CompleteSettingsNames (root_settings->GetChildAtIndex (i),
+ return UserSettingsController::CompleteSettingsNames (usc_sp->GetChildAtIndex (i),
partial_setting_name_pieces,
word_complete, matches);
}
@@ -1736,7 +1776,7 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
else if (num_name_pieces == 1)
{
std::string complete_prefix;
- root_settings->BuildParentPrefix (complete_prefix);
+ usc_sp->BuildParentPrefix (complete_prefix);
word_complete = true;
std::string name (partial_setting_name_pieces.GetArgumentAtIndex (0));
@@ -1745,15 +1785,15 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
{
// It's a partial instance name.
- num_matches = root_settings->LiveInstanceMatches (name.c_str(), complete_prefix, word_complete, matches);
+ num_matches = usc_sp->LiveInstanceMatches (name.c_str(), complete_prefix, word_complete, matches);
}
else
{
// It could be anything *except* an instance name...
- num_matches = root_settings->GlobalVariableMatches (name.c_str(), complete_prefix, matches);
- num_matches += root_settings->InstanceVariableMatches (name.c_str(), complete_prefix, NULL, matches);
- num_matches += root_settings->ChildMatches (name.c_str(), complete_prefix, word_complete, matches);
+ num_matches = usc_sp->GlobalVariableMatches (name.c_str(), complete_prefix, matches);
+ num_matches += usc_sp->InstanceVariableMatches (name.c_str(), complete_prefix, NULL, matches);
+ num_matches += usc_sp->ChildMatches (name.c_str(), complete_prefix, word_complete, matches);
}
if (num_matches > 1)
@@ -1766,11 +1806,11 @@ UserSettingsController::CompleteSettingsNames (UserSettingsControllerSP root_set
// We have a user settings controller with a blank partial string. Return everything possible at this level.
std::string complete_prefix;
- root_settings->BuildParentPrefix (complete_prefix);
- num_matches = root_settings->GlobalVariableMatches (NULL, complete_prefix, matches);
- num_matches += root_settings->InstanceVariableMatches (NULL, complete_prefix, NULL, matches);
- num_matches += root_settings->LiveInstanceMatches (NULL, complete_prefix, word_complete, matches);
- num_matches += root_settings->ChildMatches (NULL, complete_prefix, word_complete, matches);
+ usc_sp->BuildParentPrefix (complete_prefix);
+ num_matches = usc_sp->GlobalVariableMatches (NULL, complete_prefix, matches);
+ num_matches += usc_sp->InstanceVariableMatches (NULL, complete_prefix, NULL, matches);
+ num_matches += usc_sp->LiveInstanceMatches (NULL, complete_prefix, word_complete, matches);
+ num_matches += usc_sp->ChildMatches (NULL, complete_prefix, word_complete, matches);
word_complete = false;
return num_matches;
}
@@ -1860,7 +1900,8 @@ UserSettingsController::LiveInstanceMatches (const char *partial_name,
int partial_len = (partial_name != NULL) ? strlen (partial_name) : 0;
int num_matches = 0;
- std::map<std::string, InstanceSettings*>::iterator pos;
+ InstanceSettingsMap::iterator pos;
+ Mutex::Locker locker (m_live_settings_mutex);
for (pos = m_live_settings.begin(); pos != m_live_settings.end(); ++pos)
{
std::string instance_name = pos->first;
@@ -1895,7 +1936,7 @@ UserSettingsController::ChildMatches (const char *partial_name,
int num_matches = 0;
for (int i = 0; i < num_children; ++i)
{
- std::string child_name (GetChildAtIndex(i)->GetLevelName().AsCString());
+ std::string child_name (GetChildAtIndex(i)->GetLevelName().GetCString());
StreamString match_name;
if ((partial_len == 0)
|| ((partial_len <= child_name.length())
@@ -2239,7 +2280,7 @@ UserSettingsController::RenameInstanceSettings (const char *old_name, const char
size_t len = new_name_key.length();
std::string stripped_new_name = new_name_key.substr (1, len-2); // new name without the '[ ]'
- std::map<std::string, InstanceSettings *>::iterator pos;
+ InstanceSettingsMap::iterator pos;
pos = m_live_settings.find (old_name_key);
if (pos != m_live_settings.end())
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index d08a0fe2bd1..1dadb50e856 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -1289,9 +1289,6 @@ Target::SettingsController::CreateInstanceSettings (const char *instance_name)
#define TSC_DEFAULT_ARCH "default-arch"
#define TSC_EXPR_PREFIX "expr-prefix"
-#define TSC_EXEC_LEVEL "execution-level"
-#define TSC_EXEC_MODE "execution-mode"
-#define TSC_EXEC_OS_TYPE "execution-os-type"
#define TSC_PREFER_DYNAMIC "prefer-dynamic-value"
@@ -1311,27 +1308,6 @@ GetSettingNameForExpressionPrefix ()
}
static const ConstString &
-GetSettingNameForExecutionLevel ()
-{
- static ConstString g_const_string (TSC_EXEC_LEVEL);
- return g_const_string;
-}
-
-static const ConstString &
-GetSettingNameForExecutionMode ()
-{
- static ConstString g_const_string (TSC_EXEC_MODE);
- return g_const_string;
-}
-
-static const ConstString &
-GetSettingNameForExecutionOSType ()
-{
- static ConstString g_const_string (TSC_EXEC_OS_TYPE);
- return g_const_string;
-}
-
-static const ConstString &
GetSettingNameForPreferDynamicValue ()
{
static ConstString g_const_string (TSC_PREFER_DYNAMIC);
diff --git a/lldb/test/abbreviation_tests/TestAbbreviations.py b/lldb/test/abbreviation_tests/TestAbbreviations.py
index 0105ef6489b..7423f8e726c 100644
--- a/lldb/test/abbreviation_tests/TestAbbreviations.py
+++ b/lldb/test/abbreviation_tests/TestAbbreviations.py
@@ -38,12 +38,12 @@ class AbbreviationsTestCase(TestBase):
patterns = ["Executing commands in '.*change_prompt.lldb'"])
self.expect("settings show prompt",
- startstr = "prompt (string) = '[old-oak]'")
+ startstr = 'prompt (string) = "[old-oak]"')
self.runCmd("settings set -r prompt")
self.expect("settings show prompt",
- startstr = "prompt (string) = '(lldb) '")
+ startstr = 'prompt (string) = "(lldb) "')
self.expect("lo li",
@@ -51,11 +51,11 @@ class AbbreviationsTestCase(TestBase):
self.runCmd("se se prompt Sycamore> ")
self.expect("se sh prompt",
- startstr = "prompt (string) = 'Sycamore>'")
+ startstr = 'prompt (string) = "Sycamore>"')
self.runCmd("se se -r prompt")
self.expect("set sh prompt",
- startstr = "prompt (string) = '(lldb) '")
+ startstr = 'prompt (string) = "(lldb) "')
self.runCmd (r'''sc print "\n\n\tHello!\n"''')
diff --git a/lldb/test/settings/TestSettings.py b/lldb/test/settings/TestSettings.py
index 8e70df1f705..01af654a111 100644
--- a/lldb/test/settings/TestSettings.py
+++ b/lldb/test/settings/TestSettings.py
@@ -35,11 +35,11 @@ class SettingsCommandTestCase(TestBase):
# Immediately test the setting.
self.expect("settings show prompt", SETTING_MSG("prompt"),
- startstr = "prompt (string) = 'lldb2'")
+ startstr = 'prompt (string) = "lldb2"')
# The overall display should also reflect the new setting.
self.expect("settings show", SETTING_MSG("prompt"),
- substrs = ["prompt (string) = 'lldb2'"])
+ substrs = ['prompt (string) = "lldb2"'])
# Use '-r' option to reset to the original default prompt.
self.runCmd("settings set -r prompt")
@@ -51,11 +51,11 @@ class SettingsCommandTestCase(TestBase):
# Immediately test the setting.
self.expect("settings show term-width", SETTING_MSG("term-width"),
- startstr = "term-width (int) = '70'")
+ startstr = "term-width (int) = 70")
# The overall display should also reflect the new setting.
self.expect("settings show", SETTING_MSG("term-width"),
- substrs = ["term-width (int) = '70'"])
+ substrs = ["term-width (int) = 70"])
def test_set_auto_confirm(self):
"""Test that after 'set auto-confirm true', manual confirmation should not kick in."""
@@ -68,7 +68,7 @@ class SettingsCommandTestCase(TestBase):
# Immediately test the setting.
self.expect("settings show auto-confirm", SETTING_MSG("auto-confirm"),
- startstr = "auto-confirm (boolean) = 'true'")
+ startstr = "auto-confirm (boolean) = true")
# Now 'breakpoint delete' should just work fine without confirmation
# prompt from the command interpreter.
@@ -79,7 +79,7 @@ class SettingsCommandTestCase(TestBase):
# Restore the original setting of auto-confirm.
self.runCmd("settings set -r auto-confirm")
self.expect("settings show auto-confirm", SETTING_MSG("auto-confirm"),
- startstr = "auto-confirm (boolean) = 'false'")
+ startstr = "auto-confirm (boolean) = false")
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_run_args_and_env_vars_with_dsym(self):
@@ -127,7 +127,7 @@ class SettingsCommandTestCase(TestBase):
# By default, inherit-env is 'true'.
self.expect('settings show target.process.inherit-env', "Default inherit-env is 'true'",
- startstr = "target.process.inherit-env (boolean) = 'true'")
+ startstr = "target.process.inherit-env (boolean) = true")
# Set some host environment variables now.
os.environ["MY_HOST_ENV_VAR1"] = "VAR1"
@@ -167,11 +167,11 @@ class SettingsCommandTestCase(TestBase):
self.expect("settings show target.process.error-path",
SETTING_MSG("target.process.error-path"),
- startstr = "target.process.error-path (string) = 'stderr.txt'")
+ startstr = 'target.process.error-path (string) = "stderr.txt"')
self.expect("settings show target.process.output-path",
SETTING_MSG("target.process.output-path"),
- startstr = "target.process.output-path (string) = 'stdout.txt'")
+ startstr = 'target.process.output-path (string) = "stdout.txt"')
self.runCmd("run", RUN_SUCCEEDED)
@@ -201,31 +201,31 @@ class SettingsCommandTestCase(TestBase):
self.runCmd ("settings set -r target.process.env-vars")
self.runCmd ("settings set target.process.env-vars [\"MY_VAR\"]=some-value")
self.expect ("settings show target.process.env-vars",
- substrs = [ "'MY_VAR=some-value'" ])
+ substrs = [ "MY_VAR=some-value" ])
self.runCmd ("settings set -r target.process.env-vars")
def test_print_array_setting(self):
self.runCmd ("settings set -r target.process.run-args")
self.runCmd ("settings set target.process.run-args gobbledy-gook")
self.expect ("settings show target.process.run-args",
- substrs = [ "[0]: 'gobbledy-gook'" ])
+ substrs = [ '[0]: "gobbledy-gook"' ])
self.runCmd ("settings set -r target.process.run-args")
def test_settings_with_quotes (self):
self.runCmd ("settings set -r target.process.run-args")
self.runCmd ("settings set target.process.run-args a b c")
self.expect ("settings show target.process.run-args",
- substrs = [ "[0]: 'a'",
- "[1]: 'b'",
- "[2]: 'c'" ])
+ substrs = [ '[0]: "a"',
+ '[1]: "b"',
+ '[2]: "c"' ])
self.runCmd ("settings set target.process.run-args 'a b c'")
self.expect ("settings show target.process.run-args",
- substrs = [ "[0]: 'a b c'" ])
+ substrs = [ '[0]: "a b c"' ])
self.runCmd ("settings set -r target.process.run-args")
self.runCmd ("settings set -r target.process.env-vars")
- self.runCmd ("settings set target.process.env-vars [\"MY_FILE\"]='this is a file name with spaces.txt'")
+ self.runCmd ('settings set target.process.env-vars ["MY_FILE"]="this is a file name with spaces.txt"')
self.expect ("settings show target.process.env-vars",
- substrs = [ "'MY_FILE=this is a file name with spaces.txt'" ])
+ substrs = [ 'MY_FILE=this is a file name with spaces.txt' ])
self.runCmd ("settings set -r target.process.env-vars")
@@ -238,18 +238,18 @@ class SettingsCommandTestCase(TestBase):
"thread-format (string) = ",
"use-external-editor (boolean) = ",
"auto-confirm (boolean) = ",
- "target.default-arch (string):",
+ "target.default-arch (string) =",
"target.expr-prefix (string) = ",
- "target.process.run-args (array):",
- "target.process.env-vars (dictionary):",
+ "target.process.run-args (array) =",
+ "target.process.env-vars (dictionary) =",
"target.process.inherit-env (boolean) = ",
"target.process.input-path (string) = ",
"target.process.output-path (string) = ",
"target.process.error-path (string) = ",
- "target.process.plugin (enum):",
+ "target.process.plugin (enum) =",
"target.process.disable-aslr (boolean) = ",
"target.process.disable-stdio (boolean) = ",
- "target.process.thread.step-avoid-regexp (string):",
+ "target.process.thread.step-avoid-regexp (string) =",
"target.process.thread.trace-thread (boolean) =" ])
OpenPOWER on IntegriCloud