2009-10-12 Tristan Gingold <gingold@adacore.com>

* objfiles.c (objfile_has_symbols): New function.
	* objfiles.h (objfile_has_symbols): Add prototype.
	* symfile.c (symbol_file_add_with_addrs_or_offsets): Call
	objfile_has_symbols.
	(reread_symbols): Ditto.
This commit is contained in:
Tristan Gingold 2009-10-13 07:56:29 +00:00
parent fc3e1e3c7e
commit e361b228f2
4 changed files with 36 additions and 4 deletions

View File

@ -1,3 +1,11 @@
2009-10-13 Tristan Gingold <gingold@adacore.com>
* objfiles.c (objfile_has_symbols): New function.
* objfiles.h (objfile_has_symbols): Add prototype.
* symfile.c (symbol_file_add_with_addrs_or_offsets): Call
objfile_has_symbols.
(reread_symbols): Ditto.
2009-10-12 Jiang Jilin <freephp@gmail.com> 2009-10-12 Jiang Jilin <freephp@gmail.com>
* i386-tdep.c (i386_process_record): Add xgetbv/xsetbv * i386-tdep.c (i386_process_record): Add xgetbv/xsetbv

View File

@ -717,6 +717,30 @@ objfile_has_full_symbols (struct objfile *objfile)
return objfile->symtabs != NULL; return objfile->symtabs != NULL;
} }
/* Return non-zero if OBJFILE has full or partial symbols, either directly
or throught its separate debug file. */
int
objfile_has_symbols (struct objfile *objfile)
{
struct objfile *separate_objfile;
if (objfile_has_partial_symbols (objfile)
|| objfile_has_full_symbols (objfile))
return 1;
separate_objfile = objfile->separate_debug_objfile;
if (separate_objfile == NULL)
return 0;
if (objfile_has_partial_symbols (separate_objfile)
|| objfile_has_full_symbols (separate_objfile))
return 1;
return 0;
}
/* Many places in gdb want to test just to see if we have any partial /* Many places in gdb want to test just to see if we have any partial
symbols available. This function returns zero if none are currently symbols available. This function returns zero if none are currently
available, nonzero otherwise. */ available, nonzero otherwise. */

View File

@ -476,6 +476,8 @@ extern int objfile_has_partial_symbols (struct objfile *objfile);
extern int objfile_has_full_symbols (struct objfile *objfile); extern int objfile_has_full_symbols (struct objfile *objfile);
extern int objfile_has_symbols (struct objfile *objfile);
extern int have_partial_symbols (void); extern int have_partial_symbols (void);
extern int have_full_symbols (void); extern int have_full_symbols (void);

View File

@ -1040,8 +1040,7 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd,
} }
if ((from_tty || info_verbose) if ((from_tty || info_verbose)
&& !objfile_has_partial_symbols (objfile) && !objfile_has_symbols (objfile))
&& !objfile_has_full_symbols (objfile))
{ {
wrap_here (""); wrap_here ("");
printf_unfiltered (_("(no debugging symbols found)...")); printf_unfiltered (_("(no debugging symbols found)..."));
@ -2422,8 +2421,7 @@ reread_symbols (void)
zero is OK since dbxread.c also does what it needs to do if zero is OK since dbxread.c also does what it needs to do if
objfile->global_psymbols.size is 0. */ objfile->global_psymbols.size is 0. */
(*objfile->sf->sym_read) (objfile, 0); (*objfile->sf->sym_read) (objfile, 0);
if (!objfile_has_partial_symbols (objfile) if (!objfile_has_symbols (objfile))
&& !objfile_has_full_symbols (objfile))
{ {
wrap_here (""); wrap_here ("");
printf_unfiltered (_("(no debugging symbols found)\n")); printf_unfiltered (_("(no debugging symbols found)\n"));