summaryrefslogtreecommitdiff
path: root/gdb/inf-loop.c
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2008-11-05 20:23:06 +0000
committerPedro Alves <pedro@codesourcery.com>2008-11-05 20:23:06 +0000
commitb30d4db9c6c02926e2d7c1277a20ea4157947dca (patch)
tree5737fdeb1bcd0ac00c417610affb04e49b4b72d1 /gdb/inf-loop.c
parent3ac2a75a00cb17265fe90f06a0a42a97b3d041ee (diff)
downloadgdb-b30d4db9c6c02926e2d7c1277a20ea4157947dca.tar.gz
* 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 2e0f4d26770..95355e8eb73 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