summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2012-07-02 05:40:07 +0000
committerJim Ingham <jingham@apple.com>2012-07-02 05:40:07 +0000
commit03afad8f1e750dad3d1241f511429f4337cf8282 (patch)
treebe46d96f30a60ab344d7665d0038ba65c8e73376 /lldb/source/Target/Process.cpp
parenta77d31d7fddd1dbb7d8f18599e0e86b3cd26e22f (diff)
downloadbcm5719-llvm-03afad8f1e750dad3d1241f511429f4337cf8282.tar.gz
bcm5719-llvm-03afad8f1e750dad3d1241f511429f4337cf8282.zip
Add an "extra-startup-commands" process setting so we can send some command strings to the actual process plugin to interpret as it wishes.
llvm-svn: 159511
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r--lldb/source/Target/Process.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index fceeafd7ab0..dabad32f220 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -4866,7 +4866,9 @@ ProcessInstanceSettings::ProcessInstanceSettings
}
ProcessInstanceSettings::ProcessInstanceSettings (const ProcessInstanceSettings &rhs) :
- InstanceSettings (Process::GetSettingsController(), CreateInstanceName().AsCString())
+ InstanceSettings (Process::GetSettingsController(), CreateInstanceName().AsCString()),
+ m_disable_memory_cache(rhs.m_disable_memory_cache),
+ m_extra_startup_commands (rhs.m_extra_startup_commands)
{
if (m_instance_name != InstanceSettings::GetDefaultName())
{
@@ -4888,6 +4890,8 @@ ProcessInstanceSettings::operator= (const ProcessInstanceSettings &rhs)
{
if (this != &rhs)
{
+ m_disable_memory_cache = rhs.m_disable_memory_cache;
+ m_extra_startup_commands = rhs.m_extra_startup_commands;
}
return *this;
@@ -4919,6 +4923,10 @@ ProcessInstanceSettings::UpdateInstanceSettingsVariable (const ConstString &var_
}
}
+ else if (var_name == GetExtraStartupCommandVarName())
+ {
+ UserSettingsController::UpdateStringArrayVariable (op, index_value, m_extra_startup_commands, value, err);
+ }
}
void
@@ -4947,6 +4955,15 @@ ProcessInstanceSettings::GetInstanceSettingsValue (const SettingEntry &entry,
value.AppendString(m_disable_memory_cache ? "true" : "false");
return true;
}
+ else if (var_name == GetExtraStartupCommandVarName())
+ {
+ if (m_extra_startup_commands.GetArgumentCount() > 0)
+ {
+ for (int i = 0; i < m_extra_startup_commands.GetArgumentCount(); ++i)
+ value.AppendString (m_extra_startup_commands.GetArgumentAtIndex (i));
+ }
+ return true;
+ }
else
{
if (err)
@@ -4976,6 +4993,14 @@ ProcessInstanceSettings::GetDisableMemoryCacheVarName () const
return disable_memory_cache_var_name;
}
+const ConstString &
+ProcessInstanceSettings::GetExtraStartupCommandVarName () const
+{
+ static ConstString extra_startup_command_var_name ("extra-startup-command");
+
+ return extra_startup_command_var_name;
+}
+
//--------------------------------------------------
// SettingsController Variable Tables
//--------------------------------------------------
@@ -4999,6 +5024,7 @@ Process::SettingsController::instance_settings_table[] =
"true",
#endif
NULL, false, false, "Disable reading and caching of memory in fixed-size units." },
+ { "extra-startup-command", eSetVarTypeArray, NULL, NULL, false, false, "A list containing extra commands understood by the particular process plugin used." },
{ NULL, eSetVarTypeNone, NULL, NULL, false, false, NULL }
};
OpenPOWER on IntegriCloud