Make gdb/linux-nat.c consider a waitstatus pending on the infrun side
Working on the fix for gdb/19828, I saw gdb.threads/attach-many-short-lived-threads.exp fail once in an unusual way. Unfortunately I didn't keep debug logs, but it's an issue similar to what's been fixed in remote.c a while ago -- linux-nat.c was not fetching the pending status from the right place. gdb/ChangeLog: 2016-05-24 Pedro Alves <palves@redhat.com> PR gdb/19828 * linux-nat.c (get_pending_status): If the thread reported the event to the core and it's pending, use the pending status signal number.
This commit is contained in:
parent
774113b02f
commit
72b049d38c
|
@ -1,3 +1,10 @@
|
||||||
|
2016-05-24 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
PR gdb/19828
|
||||||
|
* linux-nat.c (get_pending_status): If the thread reported the
|
||||||
|
event to the core and it's pending, use the pending status signal
|
||||||
|
number.
|
||||||
|
|
||||||
2016-05-24 Pedro Alves <palves@redhat.com>
|
2016-05-24 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
PR gdb/19828
|
PR gdb/19828
|
||||||
|
|
|
@ -1320,7 +1320,10 @@ get_pending_status (struct lwp_info *lp, int *status)
|
||||||
{
|
{
|
||||||
struct thread_info *tp = find_thread_ptid (lp->ptid);
|
struct thread_info *tp = find_thread_ptid (lp->ptid);
|
||||||
|
|
||||||
signo = tp->suspend.stop_signal;
|
if (tp->suspend.waitstatus_pending_p)
|
||||||
|
signo = tp->suspend.waitstatus.value.sig;
|
||||||
|
else
|
||||||
|
signo = tp->suspend.stop_signal;
|
||||||
}
|
}
|
||||||
else if (!target_is_non_stop_p ())
|
else if (!target_is_non_stop_p ())
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue