From: Yao Qi Date: Fri, 18 Nov 2011 01:03:51 +0000 (+0000) Subject: * breakpoint.c (install_breakpoint): Add one more parameter so that X-Git-Tag: gdb_7_4-2011-12-13-branchpoint~232 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ea46bff735f66cca658e990155816c57cc194d3;p=thirdparty%2Fbinutils-gdb.git * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cfc14d38dcf..722eb207d9d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2011-11-18 Yao Qi + + * 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 * spu-tdep.c (spu_return_value): Fix handling of diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 1dabd0fa669..2edbe7fe367 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 8f0929619bf..2554337b0fd 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 506ae807217..8e03264c389 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,