mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 06:40:01 +08:00
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
This commit is contained in:
@@ -87,10 +87,25 @@ public:
|
||||
return m_disable_memory_cache;
|
||||
}
|
||||
|
||||
const Args &
|
||||
GetExtraStartupCommands () const
|
||||
{
|
||||
return m_extra_startup_commands;
|
||||
}
|
||||
|
||||
void
|
||||
SetExtraStartupCommands (const Args &args)
|
||||
{
|
||||
m_extra_startup_commands = args;
|
||||
}
|
||||
|
||||
protected:
|
||||
const ConstString &
|
||||
GetDisableMemoryCacheVarName () const;
|
||||
|
||||
const ConstString &
|
||||
GetExtraStartupCommandVarName () const;
|
||||
|
||||
void
|
||||
CopyInstanceSettings (const lldb::InstanceSettingsSP &new_settings,
|
||||
bool pending);
|
||||
@@ -98,7 +113,8 @@ protected:
|
||||
const ConstString
|
||||
CreateInstanceName ();
|
||||
|
||||
bool m_disable_memory_cache;
|
||||
bool m_disable_memory_cache;
|
||||
Args m_extra_startup_commands;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
@@ -128,8 +128,7 @@ public:
|
||||
{
|
||||
return m_breakpoints_use_platform_avoid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const Args &
|
||||
GetRunArguments () const
|
||||
{
|
||||
|
||||
@@ -729,6 +729,14 @@ ProcessGDBRemote::ConnectToDebugserver (const char *connect_url)
|
||||
m_gdb_comm.GetListThreadsInStopReplySupported ();
|
||||
m_gdb_comm.GetHostInfo ();
|
||||
m_gdb_comm.GetVContSupported ('c');
|
||||
|
||||
size_t num_cmds = GetExtraStartupCommands().GetArgumentCount();
|
||||
for (size_t idx = 0; idx < num_cmds; idx++)
|
||||
{
|
||||
StringExtractorGDBRemote response;
|
||||
printf ("Sending command: \%s.\n", GetExtraStartupCommands().GetArgumentAtIndex(idx));
|
||||
m_gdb_comm.SendPacketAndWaitForResponse (GetExtraStartupCommands().GetArgumentAtIndex(idx), response, false);
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user