aboutsummaryrefslogtreecommitdiff
path: root/gdb/solib.c
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2015-09-30 14:23:12 -0700
committerKeith Seitz <keiths@redhat.com>2015-10-01 11:48:39 -0700
commit23916b7dc0f2f05982da7a76726d931cf738d2cc (patch)
treeb08bad1994250bf0a7d849fe099fd6f5c2d7da80 /gdb/solib.c
parent398e081380a204e3b9fb4eb4da069ccf471f930e (diff)
downloadgdb-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.c19
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