* 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.
This commit is contained in:
Jan Kratochvil 2010-04-27 20:07:01 +00:00
parent 1d2ca237d8
commit 0133421afd
3 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,10 @@
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.

View File

@ -53,6 +53,7 @@
#include "observer.h"
#include "complaints.h"
#include "psymtab.h"
#include "solist.h"
/* Prototypes for local functions */
@ -688,6 +689,11 @@ void
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)
{

View File

@ -1228,13 +1228,12 @@ symbol_file_clear (int from_tty)
: !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"));