diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2008-05-05 09:02:59 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2008-05-05 09:02:59 +0000 |
commit | fcfb8b02aa46c3a70ccb1d74e243bcfadbcf2711 (patch) | |
tree | 019d1eb01f71d40d638519927ee6fd3f8e929def /gdb/inf-loop.c | |
parent | 6766b6945a6f1948c75309cc69ccf9dea9cdc684 (diff) | |
download | gdb-fcfb8b02aa46c3a70ccb1d74e243bcfadbcf2711.zip gdb-fcfb8b02aa46c3a70ccb1d74e243bcfadbcf2711.tar.gz gdb-fcfb8b02aa46c3a70ccb1d74e243bcfadbcf2711.tar.bz2 |
* inf-loop.c (inferior_event_handler): Call bpstat_do_action,
and catch all exceptions from it.
* top.c (command_line_handler_continuation): Don't
call bpstat_do_action here.
Diffstat (limited to 'gdb/inf-loop.c')
-rw-r--r-- | gdb/inf-loop.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/inf-loop.c b/gdb/inf-loop.c index 4c61dae..4889c6f 100644 --- a/gdb/inf-loop.c +++ b/gdb/inf-loop.c @@ -43,6 +43,7 @@ void inferior_event_handler (enum inferior_event_type event_type, gdb_client_data client_data) { + struct gdb_exception e; int was_sync = 0; switch (event_type) { @@ -91,6 +92,12 @@ inferior_event_handler (enum inferior_event_type event_type, was_sync = sync_execution; async_enable_stdin (); + /* If there's an error doing breakpoint commands, we don't + want to throw -- continuation might still do something. */ + TRY_CATCH (e, RETURN_MASK_ALL) + { + bpstat_do_actions (&stop_bpstat); + } /* 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 |