mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-24 12:39:59 +00:00
* infrun.c (handle_inferior_event): Update comment around trying
to revert back to a stepping thread that has exited.
This commit is contained in:
parent
d0c6ba3d4d
commit
66852e9c4d
@ -1,3 +1,8 @@
|
||||
2009-06-10 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* infrun.c (handle_inferior_event): Update comment around trying
|
||||
to revert back to a stepping thread that has exited.
|
||||
|
||||
2009-06-10 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* dwarf2read.c (dwarf_decode_lines): Recognize and ignore
|
||||
|
22
gdb/infrun.c
22
gdb/infrun.c
@ -3496,9 +3496,25 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* If the stepping thread exited, then don't try reverting
|
||||
back to it, just keep going. We need to query the target
|
||||
in case it doesn't support thread exit events. */
|
||||
/* If the stepping thread exited, then don't try to switch
|
||||
back and resume it, which could fail in several different
|
||||
ways depending on the target. Instead, just keep going.
|
||||
|
||||
We can find a stepping dead thread in the thread list in
|
||||
two cases:
|
||||
|
||||
- The target supports thread exit events, and when the
|
||||
target tries to delete the thread from the thread list,
|
||||
inferior_ptid pointed at the exiting thread. In such
|
||||
case, calling delete_thread does not really remove the
|
||||
thread from the list; instead, the thread is left listed,
|
||||
with 'exited' state.
|
||||
|
||||
- The target's debug interface does not support thread
|
||||
exit events, and so we have no idea whatsoever if the
|
||||
previously stepping thread is still alive. For that
|
||||
reason, we need to synchronously query the target
|
||||
now. */
|
||||
if (is_exited (tp->ptid)
|
||||
|| !target_thread_alive (tp->ptid))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user