[Lldb-commits] [lldb] r129826 - in /lldb/trunk: include/lldb/Core/UserSettingsController.h source/Commands/CommandObjectApropos.cpp source/Commands/CommandObjectSettings.cpp source/Core/UserSettingsController.cpp source/Target/Target.cpp test/abbreviation_tests/TestAbbreviations.py test/settings/TestSettings.py

Greg Clayton gclayton at apple.com
Tue Apr 19 15:32:36 PDT 2011


Author: gclayton
Date: Tue Apr 19 17:32:36 2011
New Revision: 129826

URL: http://llvm.org/viewvc/llvm-project?rev=129826&view=rev
Log:
General cleanup on the UserSettingsController stuff. There were 5 different
places that were dumping values for the settings. Centralized all of the
value dumping into a single place. When dumping values that aren't strings
we no longer surround the value with single quotes. When dumping values that
are strings, surround the string value with double quotes. When dumping array
values, assume they are always string values, and don't put quotes around
dictionary values.


Modified:
    lldb/trunk/include/lldb/Core/UserSettingsController.h
    lldb/trunk/source/Commands/CommandObjectApropos.cpp
    lldb/trunk/source/Commands/CommandObjectSettings.cpp
    lldb/trunk/source/Core/UserSettingsController.cpp
    lldb/trunk/source/Target/Target.cpp
    lldb/trunk/test/abbreviation_tests/TestAbbreviations.py
    lldb/trunk/test/settings/TestSettings.py

Modified: lldb/trunk/include/lldb/Core/UserSettingsController.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/UserSettingsController.h?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/UserSettingsController.h (original)
+++ lldb/trunk/include/lldb/Core/UserSettingsController.h Tue Apr 19 17:32:36 2011
@@ -135,41 +135,53 @@
 
     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 @@
 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;

Modified: lldb/trunk/source/Commands/CommandObjectApropos.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectApropos.cpp?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectApropos.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectApropos.cpp Tue Apr 19 17:32:36 2011
@@ -99,9 +99,12 @@
             
             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)

Modified: lldb/trunk/source/Commands/CommandObjectSettings.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectSettings.cpp?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectSettings.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectSettings.cpp Tue Apr 19 17:32:36 2011
@@ -30,27 +30,15 @@
                             "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 @@
 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 @@
     }
     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 @@
             && 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 @@
         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 @@
 
 
 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 @@
         // 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 @@
 
 
 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 @@
     {
         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 @@
 }
 
 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 @@
 
     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 @@
 }
 
 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 @@
     }
     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 @@
 }
 
 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 @@
     }
     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 @@
 }
 
 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 @@
     }
     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 @@
 }
 
 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 @@
     }
     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 @@
 }
 
 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 @@
         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 ())
     {

Modified: lldb/trunk/source/Core/UserSettingsController.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/UserSettingsController.cpp?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/source/Core/UserSettingsController.cpp (original)
+++ lldb/trunk/source/Core/UserSettingsController.cpp Tue Apr 19 17:32:36 2011
@@ -22,7 +22,7 @@
 
 static void
 DumpSettingEntry (CommandInterpreter &interpreter, 
-                  Stream &result_stream,
+                  Stream &strm,
                   const uint32_t max_len, 
                   const SettingEntry &entry)
 {
@@ -34,7 +34,7 @@
     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 @@
     
     if (entry.enum_values && entry.enum_values[0].string_value)
     {
-        interpreter.OutputFormattedHelpText (result_stream, 
+        interpreter.OutputFormattedHelpText (strm, 
                                              "", 
                                              "  ", 
                                              "Enumeration values:", 
@@ -56,7 +56,7 @@
                                     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 ()
 {
+    Mutex::Locker locker (m_live_settings_mutex);
     m_live_settings.clear();
 }
 
@@ -141,7 +142,7 @@
 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 @@
         if (parent_prefix.length() > 0)
             parent_prefix.append (".");
     }
-    parent_prefix.append (GetLevelName().AsCString());
+    parent_prefix.append (GetLevelName().GetCString());
 }
 
 void
@@ -337,7 +338,7 @@
                 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 @@
                 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 @@
                     
                     {   // 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 @@
     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 @@
                 {
                     // 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 @@
 
     // 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 @@
 
     // 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 @@
 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 @@
     }
     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 @@
 }
 
 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 @@
             
             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 @@
 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 @@
             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 @@
                                               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 @@
 {
     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 @@
 {
     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 @@
         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 @@
 
 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 @@
     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 @@
         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 @@
         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 (interpreter, 
                                                                           child, 
                                                                           current_prefix,
-                                                                          var_name.AsCString(), 
-                                                                          result_stream, 
+                                                                          var_name.GetCString(), 
+                                                                          strm, 
                                                                           err);
                     }
                 }
@@ -1259,7 +1219,7 @@
             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 @@
                 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 @@
                 {
                     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 @@
         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 @@
 
 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 @@
 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 @@
 }
 
 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 @@
     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 @@
     {
         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 @@
     {
         // '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 @@
     }
 
     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 @@
 }
 
 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 @@
 
         // 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 @@
         {
             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 @@
             // '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 @@
         {
             // '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 @@
     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 @@
         {
             // 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 @@
         // 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 @@
     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 @@
     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 @@
     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())

Modified: lldb/trunk/source/Target/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/source/Target/Target.cpp (original)
+++ lldb/trunk/source/Target/Target.cpp Tue Apr 19 17:32:36 2011
@@ -1289,9 +1289,6 @@
 
 #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 @@
 }
 
 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);

Modified: lldb/trunk/test/abbreviation_tests/TestAbbreviations.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/abbreviation_tests/TestAbbreviations.py?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/test/abbreviation_tests/TestAbbreviations.py (original)
+++ lldb/trunk/test/abbreviation_tests/TestAbbreviations.py Tue Apr 19 17:32:36 2011
@@ -38,12 +38,12 @@
                     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 @@
 
         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"''')
 

Modified: lldb/trunk/test/settings/TestSettings.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/settings/TestSettings.py?rev=129826&r1=129825&r2=129826&view=diff
==============================================================================
--- lldb/trunk/test/settings/TestSettings.py (original)
+++ lldb/trunk/test/settings/TestSettings.py Tue Apr 19 17:32:36 2011
@@ -35,11 +35,11 @@
 
         # 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 @@
 
         # 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 @@
 
         # 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 @@
         # 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 @@
 
         # 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 @@
 
         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 @@
         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 @@
                                  "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) =" ])
         
 





More information about the lldb-commits mailing list