diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-08-26 21:45:24 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-08-26 21:45:24 +0000 |
commit | 353d1d731afffb8550c9451e783b02be4121f461 (patch) | |
tree | 96be8c17fc0bb39b58c322ab3f50deed741f526e /gdb/utils.c | |
parent | 5c07461a748143e1ad1931bd0f5054aabde9c306 (diff) | |
download | gdb-353d1d731afffb8550c9451e783b02be4121f461.zip gdb-353d1d731afffb8550c9451e783b02be4121f461.tar.gz gdb-353d1d731afffb8550c9451e783b02be4121f461.tar.bz2 |
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.
Diffstat (limited to 'gdb/utils.c')
-rw-r--r-- | gdb/utils.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gdb/utils.c b/gdb/utils.c index 13e99b4..4654870 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -3674,6 +3674,23 @@ parse_pid_to_attach (char *args) return pid; } +/* Helper for make_bpstat_clear_actions_cleanup. */ + +static void +do_bpstat_clear_actions_cleanup (void *unused) +{ + bpstat_clear_actions (); +} + +/* Call bpstat_clear_actions for the case an exception is throw. You should + discard_cleanups if no exception is caught. */ + +struct cleanup * +make_bpstat_clear_actions_cleanup (void) +{ + return make_cleanup (do_bpstat_clear_actions_cleanup, NULL); +} + /* Provide a prototype to silence -Wmissing-prototypes. */ extern initialize_file_ftype _initialize_utils; |