From e0ba674611b77dce4d02d6b08e90b10255ec3e2d Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 5 Nov 2008 20:23:07 +0000 Subject: * 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) : 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. --- gdb/inf-loop.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gdb/inf-loop.c') 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 -- cgit v1.1