diff options
author | Jeff Law <law@redhat.com> | 1995-06-25 02:33:33 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1995-06-25 02:33:33 +0000 |
commit | 1657d50b380676617feb4670e8fd3d1cd863ddc7 (patch) | |
tree | 5331bcffc9ac2cf7cb4aec534649282ac3fc4e91 | |
parent | cd5431634a3af614ecc8020a478666582080c58b (diff) | |
download | gdb-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.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/lynx-nat.c | 15 |
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 |