aboutsummaryrefslogtreecommitdiff
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
commit84acb35a5a97c28b24b1d61541dc1ee01a7d8a43 (patch)
tree050360ea3daaaec3647333216ad72302a7d934c2 /gdb/solib.c
parentf3bb67042f67aa346efa2cb025a8705ed838d24d (diff)
downloadgdb-84acb35a5a97c28b24b1d61541dc1ee01a7d8a43.zip
gdb-84acb35a5a97c28b24b1d61541dc1ee01a7d8a43.tar.gz
gdb-84acb35a5a97c28b24b1d61541dc1ee01a7d8a43.tar.bz2
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 e722b98..8927568 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. */