forked from OSchip/llvm-project
Add plugin.process.gdb-remote.use-libraries-svr4 option
Summary: This option allow the toggling of the libraries-svr4 usage in ProcessGDBRemote. It's a follow up of https://reviews.llvm.org/D62503#1564296 and it's meant to test / tweak this new packet with, hopefully, minimum impact and in a faster way. Enable it with `settings set plugin.process.gdb-remote.use-libraries-svr4 true`. For now, by default it's false. I didn't put tests up for this but I did test it manually. Reviewers: labath, jankratochvil Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D64112 llvm-svn: 365059
This commit is contained in:
parent
83bbe2f418
commit
f8251f1ee6
|
@ -111,18 +111,40 @@ void DumpProcessGDBRemotePacketHistory(void *p, const char *path) {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
static constexpr PropertyDefinition g_properties[] = {
|
static constexpr PropertyDefinition g_properties[] = {
|
||||||
{"packet-timeout", OptionValue::eTypeUInt64, true, 5
|
{"packet-timeout",
|
||||||
|
OptionValue::eTypeUInt64,
|
||||||
|
true,
|
||||||
|
5
|
||||||
#if defined(__has_feature)
|
#if defined(__has_feature)
|
||||||
#if __has_feature(address_sanitizer)
|
#if __has_feature(address_sanitizer)
|
||||||
* 2
|
* 2
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
, nullptr, {},
|
,
|
||||||
|
nullptr,
|
||||||
|
{},
|
||||||
"Specify the default packet timeout in seconds."},
|
"Specify the default packet timeout in seconds."},
|
||||||
{"target-definition-file", OptionValue::eTypeFileSpec, true, 0, nullptr, {},
|
{"target-definition-file",
|
||||||
"The file that provides the description for remote target registers."}};
|
OptionValue::eTypeFileSpec,
|
||||||
|
true,
|
||||||
|
0,
|
||||||
|
nullptr,
|
||||||
|
{},
|
||||||
|
"The file that provides the description for remote target registers."},
|
||||||
|
{"use-libraries-svr4",
|
||||||
|
OptionValue::eTypeBoolean,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
nullptr,
|
||||||
|
{},
|
||||||
|
"If true, the libraries-svr4 feature will be used to get a hold of the "
|
||||||
|
"process's loaded modules."}};
|
||||||
|
|
||||||
enum { ePropertyPacketTimeout, ePropertyTargetDefinitionFile };
|
enum {
|
||||||
|
ePropertyPacketTimeout,
|
||||||
|
ePropertyTargetDefinitionFile,
|
||||||
|
ePropertyUseSVR4
|
||||||
|
};
|
||||||
|
|
||||||
class PluginProperties : public Properties {
|
class PluginProperties : public Properties {
|
||||||
public:
|
public:
|
||||||
|
@ -152,6 +174,12 @@ public:
|
||||||
const uint32_t idx = ePropertyTargetDefinitionFile;
|
const uint32_t idx = ePropertyTargetDefinitionFile;
|
||||||
return m_collection_sp->GetPropertyAtIndexAsFileSpec(nullptr, idx);
|
return m_collection_sp->GetPropertyAtIndexAsFileSpec(nullptr, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GetUseSVR4() const {
|
||||||
|
const uint32_t idx = ePropertyUseSVR4;
|
||||||
|
return m_collection_sp->GetPropertyAtIndexAsBoolean(
|
||||||
|
nullptr, idx, g_properties[idx].default_uint_value != 0);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::shared_ptr<PluginProperties> ProcessKDPPropertiesSP;
|
typedef std::shared_ptr<PluginProperties> ProcessKDPPropertiesSP;
|
||||||
|
@ -4681,9 +4709,10 @@ Status ProcessGDBRemote::GetLoadedModuleList(LoadedModuleInfoList &list) {
|
||||||
log->Printf("ProcessGDBRemote::%s", __FUNCTION__);
|
log->Printf("ProcessGDBRemote::%s", __FUNCTION__);
|
||||||
|
|
||||||
GDBRemoteCommunicationClient &comm = m_gdb_comm;
|
GDBRemoteCommunicationClient &comm = m_gdb_comm;
|
||||||
|
bool can_use_svr4 = GetGlobalPluginProperties()->GetUseSVR4();
|
||||||
|
|
||||||
// check that we have extended feature read support
|
// check that we have extended feature read support
|
||||||
if (comm.GetQXferLibrariesSVR4ReadSupported()) {
|
if (can_use_svr4 && comm.GetQXferLibrariesSVR4ReadSupported()) {
|
||||||
list.clear();
|
list.clear();
|
||||||
|
|
||||||
// request the loaded library list
|
// request the loaded library list
|
||||||
|
|
Loading…
Reference in New Issue