diff options
author | Keith Seitz <keiths@redhat.com> | 2015-09-30 14:23:12 -0700 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2015-10-01 11:48:39 -0700 |
commit | 23916b7dc0f2f05982da7a76726d931cf738d2cc (patch) | |
tree | b08bad1994250bf0a7d849fe099fd6f5c2d7da80 /gdb/solib.c | |
parent | 398e081380a204e3b9fb4eb4da069ccf471f930e (diff) | |
download | gdb-users/keiths/intelligent-breakpoint_re_set.zip gdb-users/keiths/intelligent-breakpoint_re_set.tar.gz gdb-users/keiths/intelligent-breakpoint_re_set.tar.bz2 |
Initial publication of breakpoint reset project.users/keiths/intelligent-breakpoint_re_set
This is a work-in-progress publication of an intelligent breakpoint_re_set
redesign. See the project wiki page for more information:
https://sourceware.org/gdb/wiki/BreakpointReset
Diffstat (limited to 'gdb/solib.c')
-rw-r--r-- | gdb/solib.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/gdb/solib.c b/gdb/solib.c index 9a6e7de..4fca342 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -969,6 +969,11 @@ solib_add (const char *pattern, int from_tty, struct target_ops *target, int readsyms) { struct so_list *gdb; + struct breakpoint_reset_reason reset_reason; + + init_breakpoint_reset_reason (&reset_reason); + reset_reason.reason = BREAKPOINT_RESET_ADD_OBJFILE; + reset_reason.where = __func__; if (print_symbol_loading_p (from_tty, 0, 0)) { @@ -1025,12 +1030,16 @@ solib_add (const char *pattern, int from_tty, gdb->so_name); } else if (solib_read_symbols (gdb, flags)) - loaded_any_symbols = 1; + { + VEC_safe_push (objfilep, reset_reason.objfile_list, + gdb->objfile); + loaded_any_symbols = 1; + } } } if (loaded_any_symbols) - breakpoint_re_set (); + breakpoint_re_set (&reset_reason); if (from_tty && pattern && ! any_matches) printf_unfiltered @@ -1423,6 +1432,7 @@ reload_shared_libraries (char *ignored, int from_tty, struct cmd_list_element *e) { const struct target_so_ops *ops; + struct breakpoint_reset_reason reset_reason; reload_shared_libraries_1 (from_tty); @@ -1460,7 +1470,10 @@ reload_shared_libraries (char *ignored, int from_tty, solib_add (NULL, 0, NULL, auto_solib_add); - breakpoint_re_set (); + init_breakpoint_reset_reason (&reset_reason); + /*reset_reason.reason = BREAKPOINT_RESET_???;*/ + reset_reason.where = __func__; + breakpoint_re_set (&reset_reason); /* We may have loaded or unloaded debug info for some (or all) shared libraries. However, frames may still reference them. For |