+
+ * 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.
+
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"));