summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
diff options
context:
space:
mode:
authorTamas Berghammer <tberghammer@google.com>2015-03-24 11:15:23 +0000
committerTamas Berghammer <tberghammer@google.com>2015-03-24 11:15:23 +0000
commit7cb18bf537ed319eaa06f12ed39f85594bed641a (patch)
treee5274e908c82a83438c117d6cc750a81c2b67462 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
parent2a403d1c01e74a6c0fab3a7d70d06ee901209c76 (diff)
downloadbcm5719-llvm-7cb18bf537ed319eaa06f12ed39f85594bed641a.tar.gz
bcm5719-llvm-7cb18bf537ed319eaa06f12ed39f85594bed641a.zip
Fetch module specification from remote process also
Previously the remote module sepcification was fetched only from the remote platform. With this CL if we have a remote process then we ask it if it have any information from a given module. It is required because on android the dynamic linker only reports the name of the SO file and the platform can't always find it without a full path (the process can do it based on /proc/<pid>/maps). Differential revision: http://reviews.llvm.org/D8547 llvm-svn: 233061
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
index 74e28639180..3e9ad7c3fdb 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
@@ -1144,12 +1144,7 @@ GDBRemoteCommunicationServerCommon::Handle_qModuleInfo (StringExtractorGDBRemote
packet.GetHexByteString(triple);
ArchSpec arch(triple.c_str());
-#ifdef __ANDROID__
- const FileSpec module_path_spec = HostInfoAndroid::ResolveLibraryPath(module_path, arch);
-#else
- const FileSpec module_path_spec(module_path.c_str(), true);
-#endif
-
+ const FileSpec module_path_spec = FindModuleFile(module_path, arch);
const ModuleSpec module_spec(module_path_spec, arch);
ModuleSpecList module_specs;
@@ -1293,3 +1288,14 @@ GDBRemoteCommunicationServerCommon::CreateProcessInfoResponse_DebugServerStyle (
response.PutCString ("ptrsize:2;");
}
}
+
+FileSpec
+GDBRemoteCommunicationServerCommon::FindModuleFile(const std::string& module_path,
+ const ArchSpec& arch)
+{
+#ifdef __ANDROID__
+ return HostInfoAndroid::ResolveLibraryPath(module_path, arch);
+#else
+ return FileSpec(module_path.c_str(), true);
+#endif
+}
OpenPOWER on IntegriCloud