aboutsummaryrefslogtreecommitdiff
path: root/gdb/inf-loop.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2008-11-05 20:23:07 +0000
committerPedro Alves <palves@redhat.com>2008-11-05 20:23:07 +0000
commite0ba674611b77dce4d02d6b08e90b10255ec3e2d (patch)
tree2e6dd7afb17800c925cd5c543347e28b03416cf0 /gdb/inf-loop.c
parent6dc6b6558bf7ede38de5f7b9356d8d98e5960c33 (diff)
downloadgdb-e0ba674611b77dce4d02d6b08e90b10255ec3e2d.zip
gdb-e0ba674611b77dce4d02d6b08e90b10255ec3e2d.tar.gz
gdb-e0ba674611b77dce4d02d6b08e90b10255ec3e2d.tar.bz2
* defs.h (add_inferior_continuation)
(do_all_inferior_continuations) (discard_all_inferior_continuations): Declare. * utils.c (add_inferior_continuation) (do_all_inferior_continuations) (discard_all_inferior_continuations): New. * inferior.h (struct inferior) <continuations>: New field. * inferior.c (free_inferior): Discard all the inferior continuations. * inf-loop.c (inferior_event_handler): Do all current inferior continuations. * infcmd.c (attach_command): Register an inferior continuation instead of a thread continuation. * infrun.c (handle_inferior_event): If stop_soon is STOP_QUIETLY_NO_SIGSTOP, also expect a TARGET_SIGNAL_0.
Diffstat (limited to 'gdb/inf-loop.c')
-rw-r--r--gdb/inf-loop.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/inf-loop.c b/gdb/inf-loop.c
index 2e0f4d2..95355e8 100644
--- a/gdb/inf-loop.c
+++ b/gdb/inf-loop.c
@@ -89,6 +89,11 @@ inferior_event_handler (enum inferior_event_type event_type,
was_sync = sync_execution;
async_enable_stdin ();
+ /* Do all continuations associated with the whole inferior (not
+ a particular thread). */
+ if (!ptid_equal (inferior_ptid, null_ptid))
+ do_all_inferior_continuations ();
+
/* If we were doing a multi-step (eg: step n, next n), but it
got interrupted by a breakpoint, still do the pending
continuations. The continuation itself is responsible for