summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/gdb-remote
diff options
context:
space:
mode:
authorStephane Sezer <sas@cd80.net>2015-08-21 16:51:56 +0000
committerStephane Sezer <sas@cd80.net>2015-08-21 16:51:56 +0000
commit2618e912407cd0965cce02cde5232d0c36c21a2b (patch)
tree065691a9806febeb1396b1e5fa2b0f0036761778 /lldb/source/Plugins/Process/gdb-remote
parent103fc94d2d58adbdf6840055d5e6e12c0426fbd4 (diff)
downloadbcm5719-llvm-2618e912407cd0965cce02cde5232d0c36c21a2b.tar.gz
bcm5719-llvm-2618e912407cd0965cce02cde5232d0c36c21a2b.zip
Implement handling of `library:` keys in thread stop replies.
Summary: When a windows remote stops because of a DLL load/unload, the debug server sends a stop reply packet that contains a `library` key with any value (usually just `library:1`). This indicates to the debugger that a library has been loaded or unloaded and that the list of libraries should be refreshed (usually with `qXfer:libraries:read`). This change just triggers a call to `LoadModules()` which in turns will send a remote library read command when a stop reply that requests it is received. Reviewers: clayborg, zturner, tberghammer Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12218 llvm-svn: 245708
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 7627f6e1c8b..dbbdd2b7b1c 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -2523,6 +2523,10 @@ ProcessGDBRemote::SetThreadStopInfo (StringExtractor& stop_packet)
ostr.Printf("%" PRIu64 " %" PRIu32, wp_addr, wp_index);
description = ostr.GetString().c_str();
}
+ else if (key.compare("library") == 0)
+ {
+ LoadModules();
+ }
else if (key.size() == 2 && ::isxdigit(key[0]) && ::isxdigit(key[1]))
{
uint32_t reg = StringConvert::ToUInt32 (key.c_str(), UINT32_MAX, 16);
OpenPOWER on IntegriCloud