diff options
author | Tamas Berghammer <tberghammer@google.com> | 2015-03-24 11:15:23 +0000 |
---|---|---|
committer | Tamas Berghammer <tberghammer@google.com> | 2015-03-24 11:15:23 +0000 |
commit | 7cb18bf537ed319eaa06f12ed39f85594bed641a (patch) | |
tree | e5274e908c82a83438c117d6cc750a81c2b67462 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | |
parent | 2a403d1c01e74a6c0fab3a7d70d06ee901209c76 (diff) | |
download | bcm5719-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/ProcessGDBRemote.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index 62695b497a2..d9912cc1e53 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -3398,6 +3398,34 @@ ProcessGDBRemote::SetUserSpecifiedMaxMemoryTransferSize (uint64_t user_specified } } +bool +ProcessGDBRemote::GetModuleSpec(const FileSpec& module_file_spec, + const ArchSpec& arch, + ModuleSpec &module_spec) +{ + Log *log = GetLogIfAnyCategoriesSet (LIBLLDB_LOG_PLATFORM); + + if (!m_gdb_comm.GetModuleInfo (module_file_spec, arch, module_spec)) + { + if (log) + log->Printf ("ProcessGDBRemote::%s - failed to get module info for %s:%s", + __FUNCTION__, module_file_spec.GetPath ().c_str (), + arch.GetTriple ().getTriple ().c_str ()); + return false; + } + + if (log) + { + StreamString stream; + module_spec.Dump (stream); + log->Printf ("ProcessGDBRemote::%s - got module info for (%s:%s) : %s", + __FUNCTION__, module_file_spec.GetPath ().c_str (), + arch.GetTriple ().getTriple ().c_str (), stream.GetString ().c_str ()); + } + + return true; +} + class CommandObjectProcessGDBRemotePacketHistory : public CommandObjectParsed { private: |