diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-07-20 12:54:57 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2010-07-20 12:54:57 +0000 |
commit | ad34eb2f7c3120f83d22cf2d5371673fc95040b4 (patch) | |
tree | ac720b51fba0aa476611abcc0d7ea699b1067872 | |
parent | 33355866db612467bab9fa405008ff9f3cdccf4f (diff) | |
download | gdb-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.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/linux-nat.c | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f469860..042d5f5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2010-07-20 Jan Kratochvil <jan.kratochvil@redhat.com> + * linux-nat.c (linux_handle_extended_wait): Handle case when + event == PTRACE_EVENT_CLONE && stopping && WSTOPSIG (status) != SIGSTOP. + +2010-07-20 Jan Kratochvil <jan.kratochvil@redhat.com> + Code cleanup. * linux-nat.c (linux_nat_wait_1): Reset STATUS after calling linux_nat_wait_1. Use always LP->STATUS afterwards. 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, |