Remove further outdated "settings" code and also implement a few missing things.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@162376 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/API/SBDebugger.cpp b/source/API/SBDebugger.cpp
index ca648b7..ccb900e 100644
--- a/source/API/SBDebugger.cpp
+++ b/source/API/SBDebugger.cpp
@@ -908,55 +908,62 @@
const char *
SBDebugger::GetInstanceName()
{
- // TODO: SETTINGS -- fill this in
-// if (m_opaque_sp)
-// return m_opaque_sp->GetInstanceName().AsCString();
-// else
+ if (m_opaque_sp)
+ return m_opaque_sp->GetInstanceName().AsCString();
+ else
return NULL;
}
SBError
SBDebugger::SetInternalVariable (const char *var_name, const char *value, const char *debugger_instance_name)
{
- // TODO: SETTINGS -- fill this in
-// UserSettingsControllerSP root_settings_controller = Debugger::GetSettingsController();
-//
-// Error err = root_settings_controller->SetVariable (var_name,
-// value,
-// eVarSetOperationAssign,
-// true,
-// debugger_instance_name);
-// SBError sb_error;
-// sb_error.SetError (err);
-//
-// return sb_error;
- return SBError();
+ SBError sb_error;
+ DebuggerSP debugger_sp(Debugger::FindDebuggerWithInstanceName (ConstString(debugger_instance_name)));
+ Error error;
+ if (debugger_sp)
+ {
+ ExecutionContext exe_ctx (debugger_sp->GetCommandInterpreter().GetExecutionContext());
+ error = debugger_sp->SetPropertyValue (&exe_ctx,
+ eVarSetOperationAssign,
+ var_name,
+ value);
+ }
+ else
+ {
+ error.SetErrorStringWithFormat ("invalid debugger instance name '%s'", debugger_instance_name);
+ }
+ if (error.Fail())
+ sb_error.SetError(error);
+ return sb_error;
}
SBStringList
SBDebugger::GetInternalVariableValue (const char *var_name, const char *debugger_instance_name)
{
SBStringList ret_value;
- // TODO: SETTINGS -- fill this in
-// SettableVariableType var_type;
-// Error err;
-//
-// UserSettingsControllerSP root_settings_controller = Debugger::GetSettingsController();
-//
-// StringList value = root_settings_controller->GetVariable (var_name, var_type, debugger_instance_name, err);
-//
-// if (err.Success())
-// {
-// for (unsigned i = 0; i != value.GetSize(); ++i)
-// ret_value.AppendString (value.GetStringAtIndex(i));
-// }
-// else
-// {
-// ret_value.AppendString (err.AsCString());
-// }
-//
-//
- return ret_value;
+ DebuggerSP debugger_sp(Debugger::FindDebuggerWithInstanceName (ConstString(debugger_instance_name)));
+ Error error;
+ if (debugger_sp)
+ {
+ ExecutionContext exe_ctx (debugger_sp->GetCommandInterpreter().GetExecutionContext());
+ lldb::OptionValueSP value_sp (debugger_sp->GetPropertyValue (&exe_ctx,
+ var_name,
+ false,
+ error));
+ if (value_sp)
+ {
+ StreamString value_strm;
+ value_sp->DumpValue (&exe_ctx, value_strm, OptionValue::eDumpOptionValue);
+ const std::string &value_str = value_strm.GetString();
+ if (!value_str.empty())
+ {
+ StringList string_list;
+ string_list.SplitIntoLines(value_str.c_str(), value_str.size());
+ return SBStringList(&string_list);
+ }
+ }
+ }
+ return SBStringList();
}
uint32_t