* objfiles.c: Include solist.h.
(free_all_objfiles): New variable so. Check stale solist objfiles.
* symfile.c (symbol_file_clear): Swap the order of free_all_objfiles
and no_shared_libraries.
+2010-04-27 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * objfiles.c: Include solist.h.
+ (free_all_objfiles): New variable so. Check stale solist objfiles.
+ * symfile.c (symbol_file_clear): Swap the order of free_all_objfiles
+ and no_shared_libraries.
+
2010-04-27 Joel Brobecker <brobecker@adacore.com>
ARI warning fix.
#include "observer.h"
#include "complaints.h"
#include "psymtab.h"
+#include "solist.h"
/* Prototypes for local functions */
free_all_objfiles (void)
{
struct objfile *objfile, *temp;
+ struct so_list *so;
+
+ /* Any objfile referencewould become stale. */
+ for (so = master_so_list (); so; so = so->next)
+ gdb_assert (so->objfile == NULL);
ALL_OBJFILES_SAFE (objfile, temp)
{
: !query (_("Discard symbol table? "))))
error (_("Not confirmed."));
- free_all_objfiles ();
-
- /* solib descriptors may have handles to objfiles. Since their
- storage has just been released, we'd better wipe the solib
- descriptors as well. */
+ /* solib descriptors may have handles to objfiles. Wipe them before their
+ objfiles get stale by free_all_objfiles. */
no_shared_libraries (NULL, from_tty);
+ free_all_objfiles ();
+
gdb_assert (symfile_objfile == NULL);
if (from_tty)
printf_unfiltered (_("No symbol file now.\n"));