aboutsummaryrefslogtreecommitdiff
path: root/gdb/solib.c
diff options
context:
space:
mode:
authorPaul Pluzhnikov <ppluzhnikov@google.com>2009-03-05 23:45:14 +0000
committerPaul Pluzhnikov <ppluzhnikov@google.com>2009-03-05 23:45:14 +0000
commita3247a22136e0b53cf5c40c67ee4f5e8eb92ec32 (patch)
treef87264eeaaddf26d435bc7553430988fb66560de /gdb/solib.c
parentd36df9c574a35b93e079b0058168474ad6872204 (diff)
downloadgdb-a3247a22136e0b53cf5c40c67ee4f5e8eb92ec32.zip
gdb-a3247a22136e0b53cf5c40c67ee4f5e8eb92ec32.tar.gz
gdb-a3247a22136e0b53cf5c40c67ee4f5e8eb92ec32.tar.bz2
2009-03-05 Paul Pluzhnikov <ppluzhnikov@google.com>
* printcmd.c (do_one_display): Reparse exp_string. (display_uses_solib_p): New function. (clear_dangling_display_expressions): New function. (_initialize_printcmd): Add observer. * solib.c (no_shared_libraries): Swap order of calls to clear_solib and objfile_purge_solibs.
Diffstat (limited to 'gdb/solib.c')
-rw-r--r--gdb/solib.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/solib.c b/gdb/solib.c
index f3e03a1..800319f 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -999,8 +999,13 @@ sharedlibrary_command (char *args, int from_tty)
void
no_shared_libraries (char *ignored, int from_tty)
{
- objfile_purge_solibs ();
+ /* The order of the two routines below is important: clear_solib notifies
+ the solib_unloaded observers, and some of these observers might need
+ access to their associated objfiles. Therefore, we can not purge the
+ solibs' objfiles before clear_solib has been called. */
+
clear_solib ();
+ objfile_purge_solibs ();
}
static void