mirror of
https://github.com/intel/llvm.git
synced 2026-01-22 23:49:22 +08:00
<rdar://problem/13793059>
Added a setting to control timeout for kdp response packets. While I was at it, I also added a way to control the response timeout for gdb-remote packets. KDP defaults to 5 seconds, and GDB defaults to 1 second. These were the default values that were in the code prior to adding these settings. (lldb) settings set plugin.process.gdb-remote.packet-timeout 10 (lldb) settings set plugin.process.kdp-remote.packet-timeout 10 llvm-svn: 186360
This commit is contained in:
@@ -1388,15 +1388,17 @@ PluginManager::AutoCompletePlatformName (const char *name, StringList &matches)
|
||||
struct ProcessInstance
|
||||
{
|
||||
ProcessInstance() :
|
||||
name(),
|
||||
description(),
|
||||
create_callback(NULL)
|
||||
name(),
|
||||
description(),
|
||||
create_callback(NULL),
|
||||
debugger_init_callback(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
ConstString name;
|
||||
std::string description;
|
||||
ProcessCreateInstance create_callback;
|
||||
DebuggerInitializeCallback debugger_init_callback;
|
||||
};
|
||||
|
||||
typedef std::vector<ProcessInstance> ProcessInstances;
|
||||
@@ -1417,12 +1419,10 @@ GetProcessInstances ()
|
||||
|
||||
|
||||
bool
|
||||
PluginManager::RegisterPlugin
|
||||
(
|
||||
const ConstString &name,
|
||||
const char *description,
|
||||
ProcessCreateInstance create_callback
|
||||
)
|
||||
PluginManager::RegisterPlugin (const ConstString &name,
|
||||
const char *description,
|
||||
ProcessCreateInstance create_callback,
|
||||
DebuggerInitializeCallback debugger_init_callback)
|
||||
{
|
||||
if (create_callback)
|
||||
{
|
||||
@@ -1432,6 +1432,7 @@ PluginManager::RegisterPlugin
|
||||
if (description && description[0])
|
||||
instance.description = description;
|
||||
instance.create_callback = create_callback;
|
||||
instance.debugger_init_callback = debugger_init_callback;
|
||||
Mutex::Locker locker (GetProcessMutex ());
|
||||
GetProcessInstances ().push_back (instance);
|
||||
}
|
||||
@@ -1851,13 +1852,26 @@ PluginManager::DebuggerInitialize (Debugger &debugger)
|
||||
pos->debugger_init_callback (debugger);
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize the Process plugins
|
||||
{
|
||||
Mutex::Locker locker (GetProcessMutex());
|
||||
ProcessInstances &instances = GetProcessInstances();
|
||||
|
||||
ProcessInstances::iterator pos, end = instances.end();
|
||||
for (pos = instances.begin(); pos != end; ++ pos)
|
||||
{
|
||||
if (pos->debugger_init_callback)
|
||||
pos->debugger_init_callback (debugger);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// This will put a plugin's settings under e.g. "plugin.dynamic-loader.darwin-kernel.SETTINGNAME".
|
||||
// The new preferred ordering is to put plugins under "dynamic-loader.plugin.darwin-kernel.SETTINGNAME"
|
||||
// and if there were a generic dynamic-loader setting, it would be "dynamic-loader.SETTINGNAME".
|
||||
// This is the preferred new way to register plugin specific settings. e.g.
|
||||
// This will put a plugin's settings under e.g. "plugin.<plugin_type_name>.<plugin_type_desc>.SETTINGNAME".
|
||||
static lldb::OptionValuePropertiesSP
|
||||
GetDebuggerPropertyForPluginsOldStyle (Debugger &debugger,
|
||||
GetDebuggerPropertyForPlugins (Debugger &debugger,
|
||||
const ConstString &plugin_type_name,
|
||||
const ConstString &plugin_type_desc,
|
||||
bool can_create)
|
||||
@@ -1894,14 +1908,14 @@ GetDebuggerPropertyForPluginsOldStyle (Debugger &debugger,
|
||||
return lldb::OptionValuePropertiesSP();
|
||||
}
|
||||
|
||||
// This is the preferred new way to register plugin specific settings. e.g.
|
||||
// "platform.plugin.darwin-kernel.SETTINGNAME"
|
||||
// This is deprecated way to register plugin specific settings. e.g.
|
||||
// "<plugin_type_name>.plugin.<plugin_type_desc>.SETTINGNAME"
|
||||
// and Platform generic settings would be under "platform.SETTINGNAME".
|
||||
static lldb::OptionValuePropertiesSP
|
||||
GetDebuggerPropertyForPlugins (Debugger &debugger,
|
||||
const ConstString &plugin_type_name,
|
||||
const ConstString &plugin_type_desc,
|
||||
bool can_create)
|
||||
GetDebuggerPropertyForPluginsOldStyle (Debugger &debugger,
|
||||
const ConstString &plugin_type_name,
|
||||
const ConstString &plugin_type_desc,
|
||||
bool can_create)
|
||||
{
|
||||
static ConstString g_property_name("plugin");
|
||||
lldb::OptionValuePropertiesSP parent_properties_sp (debugger.GetValueProperties());
|
||||
@@ -1939,7 +1953,7 @@ lldb::OptionValuePropertiesSP
|
||||
PluginManager::GetSettingForDynamicLoaderPlugin (Debugger &debugger, const ConstString &setting_name)
|
||||
{
|
||||
lldb::OptionValuePropertiesSP properties_sp;
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPluginsOldStyle (debugger,
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
|
||||
ConstString("dynamic-loader"),
|
||||
ConstString(), // not creating to so we don't need the description
|
||||
false));
|
||||
@@ -1956,7 +1970,7 @@ PluginManager::CreateSettingForDynamicLoaderPlugin (Debugger &debugger,
|
||||
{
|
||||
if (properties_sp)
|
||||
{
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPluginsOldStyle (debugger,
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
|
||||
ConstString("dynamic-loader"),
|
||||
ConstString("Settings for dynamic loader plug-ins"),
|
||||
true));
|
||||
@@ -1977,10 +1991,10 @@ lldb::OptionValuePropertiesSP
|
||||
PluginManager::GetSettingForPlatformPlugin (Debugger &debugger, const ConstString &setting_name)
|
||||
{
|
||||
lldb::OptionValuePropertiesSP properties_sp;
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
|
||||
ConstString("platform"),
|
||||
ConstString(), // not creating to so we don't need the description
|
||||
false));
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPluginsOldStyle (debugger,
|
||||
ConstString("platform"),
|
||||
ConstString(), // not creating to so we don't need the description
|
||||
false));
|
||||
if (plugin_type_properties_sp)
|
||||
properties_sp = plugin_type_properties_sp->GetSubProperty (NULL, setting_name);
|
||||
return properties_sp;
|
||||
@@ -1991,12 +2005,50 @@ PluginManager::CreateSettingForPlatformPlugin (Debugger &debugger,
|
||||
const lldb::OptionValuePropertiesSP &properties_sp,
|
||||
const ConstString &description,
|
||||
bool is_global_property)
|
||||
{
|
||||
if (properties_sp)
|
||||
{
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPluginsOldStyle (debugger,
|
||||
ConstString("platform"),
|
||||
ConstString("Settings for platform plug-ins"),
|
||||
true));
|
||||
if (plugin_type_properties_sp)
|
||||
{
|
||||
plugin_type_properties_sp->AppendProperty (properties_sp->GetName(),
|
||||
description,
|
||||
is_global_property,
|
||||
properties_sp);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
lldb::OptionValuePropertiesSP
|
||||
PluginManager::GetSettingForProcessPlugin (Debugger &debugger, const ConstString &setting_name)
|
||||
{
|
||||
lldb::OptionValuePropertiesSP properties_sp;
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
|
||||
ConstString("process"),
|
||||
ConstString(), // not creating to so we don't need the description
|
||||
false));
|
||||
if (plugin_type_properties_sp)
|
||||
properties_sp = plugin_type_properties_sp->GetSubProperty (NULL, setting_name);
|
||||
return properties_sp;
|
||||
}
|
||||
|
||||
bool
|
||||
PluginManager::CreateSettingForProcessPlugin (Debugger &debugger,
|
||||
const lldb::OptionValuePropertiesSP &properties_sp,
|
||||
const ConstString &description,
|
||||
bool is_global_property)
|
||||
{
|
||||
if (properties_sp)
|
||||
{
|
||||
lldb::OptionValuePropertiesSP plugin_type_properties_sp (GetDebuggerPropertyForPlugins (debugger,
|
||||
ConstString("platform"),
|
||||
ConstString("Settings for platform plug-ins"),
|
||||
ConstString("process"),
|
||||
ConstString("Settings for process plug-ins"),
|
||||
true));
|
||||
if (plugin_type_properties_sp)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user