aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-04-25 19:38:16 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-04-25 19:38:16 +0000
commit3e03848b6ca5ca5a8e36d4a8be1682c0c220a6d5 (patch)
treea8194a4f1ae393f42eecc1335448ed05121eaaa8 /gdb/objfiles.c
parent1ae0d051e5e31ea120a9f96d916c8cd9e505e4fc (diff)
downloadgdb-3e03848b6ca5ca5a8e36d4a8be1682c0c220a6d5.zip
gdb-3e03848b6ca5ca5a8e36d4a8be1682c0c220a6d5.tar.gz
gdb-3e03848b6ca5ca5a8e36d4a8be1682c0c220a6d5.tar.bz2
gdb/
* elfread.c (elf_symfile_read): Protect dwarf2_initialize_objfile by !objfile_has_partial_symbols. New comment. * objfiles.c (objfile_has_partial_symbols): Call HAS_SYMBOLS if SYM_READ_PSYMBOLS is not present. Extend the comment. * symfile.h (struct sym_fns): Extend the sym_read_psymbols comment. gdb/testsuite/ * gdb.base/gdbindex-stabs-dwarf.c: New file. * gdb.base/gdbindex-stabs.c: New file. * gdb.base/gdbindex-stabs.exp: New file.
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r--gdb/objfiles.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index db01f42..151588b 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -906,11 +906,15 @@ objfile_has_partial_symbols (struct objfile *objfile)
{
if (!objfile->sf)
return 0;
- /* If we have not read psymbols, but we have a function capable of
- reading them, then that is an indication that they are in fact
- available. */
- if ((objfile->flags & OBJF_PSYMTABS_READ) == 0)
- return objfile->sf->sym_read_psymbols != NULL;
+
+ /* If we have not read psymbols, but we have a function capable of reading
+ them, then that is an indication that they are in fact available. Without
+ this function the symbols may have been already read in but they also may
+ not be present in this objfile. */
+ if ((objfile->flags & OBJF_PSYMTABS_READ) == 0
+ && objfile->sf->sym_read_psymbols != NULL)
+ return 1;
+
return objfile->sf->qf->has_symbols (objfile);
}