aboutsummaryrefslogtreecommitdiff
path: root/gdbserver
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2022-04-04 21:12:03 +0100
committerPedro Alves <pedro@palves.net>2023-11-13 14:16:10 +0000
commit00b0dc819d1aac88ee45b18fdb05337e01a2df67 (patch)
tree55ae956f21ac609e8a6b74abdac218aa11eb6ec4 /gdbserver
parent6bd50ebd29883ac003fc936a5730ca55364f34e7 (diff)
downloadfsf-binutils-gdb-00b0dc819d1aac88ee45b18fdb05337e01a2df67.zip
fsf-binutils-gdb-00b0dc819d1aac88ee45b18fdb05337e01a2df67.tar.gz
fsf-binutils-gdb-00b0dc819d1aac88ee45b18fdb05337e01a2df67.tar.bz2
all-stop/synchronous RSP support thread-exit events
Currently, GDB does not understand the THREAD_EXITED stop reply in remote all-stop mode. There's no good reason for this, it just happened that THREAD_EXITED was only ever reported in non-stop mode so far. This patch teaches GDB to parse that event in all-stop RSP too. There is no need to add a qSupported feature for this, because the server won't send a THREAD_EXITED event unless GDB explicitly asks for it, with QThreadEvents, or with the GDB_THREAD_OPTION_EXIT QThreadOptions option added in the next patch. Change-Id: Ide5d12391adf432779fe4c79526801c4a5630966
Diffstat (limited to 'gdbserver')
-rw-r--r--gdbserver/server.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index 2a70ca6..4a312da 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -3045,6 +3045,7 @@ resume (struct thread_resume *actions, size_t num_actions)
if (cs.last_status.kind () != TARGET_WAITKIND_EXITED
&& cs.last_status.kind () != TARGET_WAITKIND_SIGNALLED
+ && cs.last_status.kind () != TARGET_WAITKIND_THREAD_EXITED
&& cs.last_status.kind () != TARGET_WAITKIND_NO_RESUMED)
current_thread->last_status = cs.last_status;