aboutsummaryrefslogtreecommitdiff
path: root/gdb/lynx-nat.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1995-07-27 19:57:16 +0000
committerJeff Law <law@redhat.com>1995-07-27 19:57:16 +0000
commitb339391255f1cc90d6f24375a5fb3ae5fe1e0dde (patch)
treed5defd478c3550c3e3bef6b7e79431e6d32b9458 /gdb/lynx-nat.c
parentef920bd889c81fa90ef5140937cfdfba711bb6a4 (diff)
downloadgdb-b339391255f1cc90d6f24375a5fb3ae5fe1e0dde.zip
gdb-b339391255f1cc90d6f24375a5fb3ae5fe1e0dde.tar.gz
gdb-b339391255f1cc90d6f24375a5fb3ae5fe1e0dde.tar.bz2
* lynx-nat.c (child_wait): Handle threads exiting.
Diffstat (limited to 'gdb/lynx-nat.c')
-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