forked from Imagelibrary/binutils-gdb
gdb/
* breakpoint.c (bpstat_do_actions): New variable cleanup_if_error, call make_bpstat_clear_actions_cleanup and discard_cleanups for it. * defs.h (make_bpstat_clear_actions_cleanup): New declaration. * exceptions.c (throw_exception): Remove the bpstat_clear_actions call. * inf-loop.c (inferior_event_handler): New variable cleanup_if_error, call make_bpstat_clear_actions_cleanup and discard_cleanups for it. Call bpstat_clear_actions for failed fetch_inferior_event_wrapper. * infrun.c (fetch_inferior_event): Call make_bpstat_clear_actions_cleanup. * top.c (execute_command): New variable cleanup_if_error, call make_bpstat_clear_actions_cleanup and discard_cleanups for it. * utils.c (do_bpstat_clear_actions_cleanup) (make_bpstat_clear_actions_cleanup): New functions. gdb/testsuite/ * gdb.base/commands.exp (error_clears_commands_left): New function. (): Call it.
This commit is contained in:
@@ -2779,6 +2779,10 @@ fetch_inferior_event (void *client_data)
|
||||
else
|
||||
ts_old_chain = make_cleanup (finish_thread_state_cleanup, &ecs->ptid);
|
||||
|
||||
/* Get executed before make_cleanup_restore_current_thread above to apply
|
||||
still for the thread which has thrown the exception. */
|
||||
make_bpstat_clear_actions_cleanup ();
|
||||
|
||||
/* Now figure out what to do with the result of the result. */
|
||||
handle_inferior_event (ecs);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user