diff options
author | Pedro Alves <palves@redhat.com> | 2008-09-08 21:46:21 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2008-09-08 21:46:21 +0000 |
commit | 347bddb745acda8fb591511a547e66bbe00d768b (patch) | |
tree | e1ae89f31d0e51854b0454eaa75ec215a4c42191 /gdb/exceptions.c | |
parent | 078130d0caa5d5ec686abe6ee5589a644885082a (diff) | |
download | gdb-347bddb745acda8fb591511a547e66bbe00d768b.zip gdb-347bddb745acda8fb591511a547e66bbe00d768b.tar.gz gdb-347bddb745acda8fb591511a547e66bbe00d768b.tar.bz2 |
* inferior.h (stop_bpstat): Delete.
* breakpoint.h (bpstat_do_actions): Remove bpstat* argument.
* breakpoint.c (bpstat_do_actions): Rename to ...
(bpstat_do_actions_1): ... this. Make static. Change return type
to int. Return true if a breakpoint proceeded.
(bpstat_do_actions): New, as wrapper around bpstat_do_actions_1.
(delete_breakpoint): Don't reference the global stop_bpstat; it's
gone.
* gdbthread.h (struct thread_info): Add stop_bpstat.
(save_infrun_state, load_infrun_state): Remove stop_bpstat
argument.
* thread.c (load_infrun_state, save_infrun_state): Remove
stop_bpstat argument, and the code referencing it.
* infcall.c: Include "gdbthread.h".
(call_function_by_hand): Adjust.
* exceptions.c: Include "gdbthread.h".
(throw_exception): Adjust.
* infcmd.c (stop_bpstat): Delete.
(continue_command): In all-stop, set the ignore count on the
thread that reported the stop. In non-stop, set it on the current
thread.
(finish_command_continuation): Adjust.
(program_info): Adjust.
* infrun.c (clear_proceed_status): Adjust.
(context_switch): Don't context-switch stop_bpstat.
(handle_inferior_event): Adjust.
(normal_stop): Adjust.
(save_inferior_status, restore_inferior_status): Adjust.
* inf-loop.c (inferior_event_handler): Remove parameter to
bpstat_do_actions call.
* top.c (command_loop): Remove parameter to bpstat_do_actions
call. Call it unconditionally.
* event-top.c (command_handler): Ditto.
* python/python.c (execute_gdb_command): Ditto.
Diffstat (limited to 'gdb/exceptions.c')
-rw-r--r-- | gdb/exceptions.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/exceptions.c b/gdb/exceptions.c index 304c8c6..f917c94 100644 --- a/gdb/exceptions.c +++ b/gdb/exceptions.c @@ -29,6 +29,7 @@ #include "gdb_assert.h" #include "gdb_string.h" #include "serial.h" +#include "gdbthread.h" const struct gdb_exception exception_none = { 0, GDB_NO_ERROR, NULL }; @@ -212,12 +213,18 @@ exceptions_state_mc_action_iter_1 (void) NORETURN void throw_exception (struct gdb_exception exception) { + struct thread_info *tp = NULL; + quit_flag = 0; immediate_quit = 0; + if (!ptid_equal (inferior_ptid, null_ptid)) + tp = find_thread_pid (inferior_ptid); + /* Perhaps it would be cleaner to do this via the cleanup chain (not sure I can think of a reason why that is vital, though). */ - bpstat_clear_actions (stop_bpstat); /* Clear queued breakpoint commands */ + if (tp != NULL) + bpstat_clear_actions (tp->stop_bpstat); /* Clear queued breakpoint commands */ disable_current_display (); do_cleanups (ALL_CLEANUPS); |