diff options
-rw-r--r-- | gdb/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/ada-lang.c | 2 | ||||
-rw-r--r-- | gdb/breakpoint.c | 18 | ||||
-rw-r--r-- | gdb/breakpoint.h | 6 |
4 files changed, 27 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cfc14d3..722eb20 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2011-11-18 Yao Qi <yao@codesourcery.com> + + * breakpoint.c (install_breakpoint): Add one more parameter so that + update_global_location_list is called conditionally. + (create_fork_vfork_event_catchpoint): Update. + (create_syscall_event_catchpoint): Update. + (create_breakpoint_sal): Update. + (create_breakpoint_sal): Update. Call do_cleanups before + install_breakpoint. + * ada-lang.c (create_ada_exception_catchpoint): Update. + * breakpoint.h (install_breakpoint): Update declaration. + 2011-11-16 Ulrich Weigand <uweigand@de.ibm.com> * spu-tdep.c (spu_return_value): Fix handling of diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 1dabd0f..2edbe7f 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -11705,7 +11705,7 @@ create_ada_exception_catchpoint (struct gdbarch *gdbarch, ops, tempflag, from_tty); c->excep_string = excep_string; create_excep_cond_exprs (c); - install_breakpoint (0, &c->base); + install_breakpoint (0, &c->base, 1); } /* Implement the "catch exception" command. */ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 8f09296..2554337 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -6680,14 +6680,16 @@ init_catchpoint (struct breakpoint *b, } void -install_breakpoint (int internal, struct breakpoint *b) +install_breakpoint (int internal, struct breakpoint *b, int update_gll) { add_to_breakpoint_chain (b); set_breakpoint_number (internal, b); if (!internal) mention (b); observer_notify_breakpoint_created (b); - update_global_location_list (1); + + if (update_gll) + update_global_location_list (1); } static void @@ -6701,7 +6703,7 @@ create_fork_vfork_event_catchpoint (struct gdbarch *gdbarch, c->forked_inferior_pid = null_ptid; - install_breakpoint (0, &c->base); + install_breakpoint (0, &c->base, 1); } /* Exec catchpoints. */ @@ -6822,7 +6824,7 @@ create_syscall_event_catchpoint (int tempflag, VEC(int) *filter, init_catchpoint (&c->base, gdbarch, tempflag, NULL, ops); c->syscalls_to_be_caught = filter; - install_breakpoint (0, &c->base); + install_breakpoint (0, &c->base, 1); } static int @@ -7331,7 +7333,7 @@ create_breakpoint_sal (struct gdbarch *gdbarch, enabled, internal, display_canonical); discard_cleanups (old_chain); - install_breakpoint (internal, b); + install_breakpoint (internal, b, 0); } /* Remove element at INDEX_TO_REMOVE from SAL, shifting other @@ -7961,7 +7963,7 @@ create_breakpoint (struct gdbarch *gdbarch, corresponds to this one */ tp->static_trace_marker_id_idx = i; - install_breakpoint (internal, &tp->base); + install_breakpoint (internal, &tp->base, 0); do_cleanups (old_chain); } @@ -9397,7 +9399,7 @@ watch_command_1 (char *arg, int accessflag, int from_tty, throw_exception (e); } - install_breakpoint (internal, b); + install_breakpoint (internal, b, 1); } /* Return count of debug registers needed to watch the given expression. @@ -9795,7 +9797,7 @@ catch_exec_command_1 (char *arg, int from_tty, &catch_exec_breakpoint_ops); c->exec_pathname = NULL; - install_breakpoint (0, &c->base); + install_breakpoint (0, &c->base, 1); } static enum print_stop_action diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 506ae80..8e03264 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -1098,9 +1098,11 @@ extern void /* Add breakpoint B on the breakpoint list, and notify the user, the target and breakpoint_created observers of its existence. If INTERNAL is non-zero, the breakpoint number will be allocated from - the internal breakpoint count. */ + the internal breakpoint count. If UPDATE_GLL is non-zero, + update_global_location_list will be called. */ -extern void install_breakpoint (int internal, struct breakpoint *b); +extern void install_breakpoint (int internal, struct breakpoint *b, + int update_gll); extern int create_breakpoint (struct gdbarch *gdbarch, char *arg, char *cond_string, int thread, |