aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/lynx-nat.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c
index 4b2d288..8122cf4 100644
--- a/gdb/lynx-nat.c
+++ b/gdb/lynx-nat.c
@@ -666,6 +666,22 @@ child_wait (pid, ourstatus)
error ("Signal for unknown thread was not SIGNEWTHREAD");
}
+ /* Check for thread termination. */
+ else if (WIFSTOPPED(status)
+ && WSTOPSIG(status) == SIGTRAP
+ && in_thread_list (pid))
+ {
+ int realsig;
+
+ realsig = ptrace (PTRACE_GETTRACESIG, pid, (PTRACE_ARG3_TYPE)0, 0);
+
+ if (realsig == SIGTHREADEXIT)
+ {
+ ptrace (PTRACE_CONT, PIDGET (pid), (PTRACE_ARG3_TYPE)0, 0);
+ continue;
+ }
+ }
+
#ifdef SPARC
/* SPARC Lynx uses an byte reversed wait status; we must use the
host macros to access it. These lines just a copy of