aboutsummaryrefslogtreecommitdiff
path: root/gdb
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
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')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/lynx-nat.c15
2 files changed, 15 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c65bcee..2254328 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+Sat Jun 24 19:27:37 1995 Jeffrey A. Law <law@rtl.cygnus.com>
+
+ * 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.
+
Fri Jun 23 11:51:58 1995 Kung Hsu <kung@mexican.cygnus.com>
* remote-nindy (nindy_load): Put in target specific load, it's
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