aboutsummaryrefslogtreecommitdiff
path: root/gdb/lynx-nat.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1995-06-25 02:33:33 +0000
committerJeff Law <law@redhat.com>1995-06-25 02:33:33 +0000
commit1657d50b380676617feb4670e8fd3d1cd863ddc7 (patch)
tree5331bcffc9ac2cf7cb4aec534649282ac3fc4e91 /gdb/lynx-nat.c
parentcd5431634a3af614ecc8020a478666582080c58b (diff)
downloadgdb-1657d50b380676617feb4670e8fd3d1cd863ddc7.zip
gdb-1657d50b380676617feb4670e8fd3d1cd863ddc7.tar.gz
gdb-1657d50b380676617feb4670e8fd3d1cd863ddc7.tar.bz2
* lynx-nat.c (child_wait): Don't restart new threads and loop
to the top of child_wait; let the machine independent code in wait_for_inferior deal with new thread notifications. lynx-6100 (partial) Fixes SEGV when multi-threaded program hits a breakpoint in a new thread.
Diffstat (limited to 'gdb/lynx-nat.c')
-rw-r--r--gdb/lynx-nat.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c
index 0a62229..f0e817e 100644
--- a/gdb/lynx-nat.c
+++ b/gdb/lynx-nat.c
@@ -649,13 +649,16 @@ child_wait (pid, ourstatus)
if (realsig == SIGNEWTHREAD)
{
- /* Simply ignore new thread notification, as we can't do anything
- useful with such threads. All ptrace calls at this point just
- fail for no apparent reason. The thread will eventually get a
- real signal when it becomes real. */
- child_resume (pid, 0, TARGET_SIGNAL_0);
- continue;
+ /* It's a new thread notification. Nothing to do here since
+ the machine independent code in wait_for_inferior will
+ add the thread to the thread list and restart the thread
+ when pid != inferior_pid and pid is not in the thread
+ list. We don't even want to much with realsig -- the
+ code in wait_for_inferior expects SIGTRAP. */
+ ;
}
+ else
+ error ("Signal for unknown thread was not SIGNEWTHREAD");
}
#ifdef SPARC