summaryrefslogtreecommitdiff
path: root/gdb/solib.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2004-09-01 18:00:29 +0000
committerJeff Johnston <jjohnstn@redhat.com>2004-09-01 18:00:29 +0000
commit56ce570627c073cbf96a483c0be95ce6bbb10098 (patch)
tree4a7aa8d0a80eb74669131010255d3475a35158ce /gdb/solib.c
parentb18f90c8d87a448995b17088d81741edf5388290 (diff)
downloadgdb-56ce570627c073cbf96a483c0be95ce6bbb10098.tar.gz
2004-09-01 Jeff Johnston <jjohnstn@redhat.com>
* observer.sh: Add struct so_list declaration. * Makefile.in: Add dependencies on observer.h for solib.c and breakpoint.c. * breakpoint.c (disable_breakpoints_in_unloaded_shlib): New function. (_initialize_breakpoint): Register disable_breakpoints_in_unloaded_shlib as an observer of the "solib unloaded" observation event. (re_enable_breakpoints_in_shlibs): For bp_shlib_disabled breakpoints, call decode_line_1 so unfound breakpoint errors are silent. * solib.c (update_solib_list): When a solib is discovered to have been unloaded by the program, notify all observers of the "solib unloaded" observation event.
Diffstat (limited to 'gdb/solib.c')
-rw-r--r--gdb/solib.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/solib.c b/gdb/solib.c
index e722b985ad6..89275687194 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -42,6 +42,7 @@
#include "filenames.h" /* for DOSish file names */
#include "exec.h"
#include "solist.h"
+#include "observer.h"
#include "readline/readline.h"
/* external data declarations */
@@ -478,6 +479,10 @@ update_solib_list (int from_tty, struct target_ops *target)
/* If it's not on the inferior's list, remove it from GDB's tables. */
else
{
+ /* Notify any observer that the SO has been unloaded
+ before we remove it from the gdb tables. */
+ observer_notify_solib_unloaded (gdb);
+
*gdb_link = gdb->next;
/* Unless the user loaded it explicitly, free SO's objfile. */