From 7cb18bf537ed319eaa06f12ed39f85594bed641a Mon Sep 17 00:00:00 2001 From: Tamas Berghammer Date: Tue, 24 Mar 2015 11:15:23 +0000 Subject: 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//maps). Differential revision: http://reviews.llvm.org/D8547 llvm-svn: 233061 --- .../gdb-remote/GDBRemoteCommunicationServerCommon.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp') 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 +} -- cgit v1.2.3