From: Jeff Law Date: Sun, 25 Jun 1995 02:33:33 +0000 (+0000) Subject: * lynx-nat.c (child_wait): Don't restart new threads and loop X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1657d50b380676617feb4670e8fd3d1cd863ddc7;p=binutils-gdb.git * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c65bcee9e04..2254328a106 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Sat Jun 24 19:27:37 1995 Jeffrey A. Law + + * 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 * remote-nindy (nindy_load): Put in target specific load, it's diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c index 0a622299870..f0e817e5653 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