aboutsummaryrefslogtreecommitdiff
path: root/gdb/linux-nat.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-07-20 12:54:57 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2010-07-20 12:54:57 +0000
commitad34eb2f7c3120f83d22cf2d5371673fc95040b4 (patch)
treeac720b51fba0aa476611abcc0d7ea699b1067872 /gdb/linux-nat.c
parent33355866db612467bab9fa405008ff9f3cdccf4f (diff)
downloadgdb-ad34eb2f7c3120f83d22cf2d5371673fc95040b4.zip
gdb-ad34eb2f7c3120f83d22cf2d5371673fc95040b4.tar.gz
gdb-ad34eb2f7c3120f83d22cf2d5371673fc95040b4.tar.bz2
gdb/
* linux-nat.c (linux_handle_extended_wait): Handle case when event == PTRACE_EVENT_CLONE && stopping && WSTOPSIG (status) != SIGSTOP.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r--gdb/linux-nat.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index b894d84..de0ba58 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -2279,6 +2279,23 @@ linux_handle_extended_wait (struct lwp_info *lp, int status,
linux_ops->to_resume (linux_ops, pid_to_ptid (new_pid),
0, signo);
}
+ else
+ {
+ if (status != 0)
+ {
+ /* We created NEW_LP so it cannot yet contain STATUS. */
+ gdb_assert (new_lp->status == 0);
+
+ /* Save the wait status to report later. */
+ if (debug_linux_nat)
+ fprintf_unfiltered (gdb_stdlog,
+ "LHEW: waitpid of new LWP %ld, "
+ "saving status %s\n",
+ (long) GET_LWP (new_lp->ptid),
+ status_to_str (status));
+ new_lp->status = status;
+ }
+ }
if (debug_linux_nat)
fprintf_unfiltered (gdb_stdlog,