aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2009-06-13 04:23:34 +0000
committerKevin Buettner <kevinb@redhat.com>2009-06-13 04:23:34 +0000
commitb2ab525c1e826490dfcbcdb9b9e81f5f5d03b0cf (patch)
tree5147b5e74d24c05c8cddba4920648a898aacb0db
parentba9935866dfbda1e569a1c2003cbc544c6e67927 (diff)
downloadgdb-b2ab525c1e826490dfcbcdb9b9e81f5f5d03b0cf.zip
gdb-b2ab525c1e826490dfcbcdb9b9e81f5f5d03b0cf.tar.gz
gdb-b2ab525c1e826490dfcbcdb9b9e81f5f5d03b0cf.tar.bz2
* dwarf2read.c (dwarf2_psymtab_to_symtab): Propagate
`has_section_at_zero' flag from stripped objfile to separate, debug info only, objfile.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2read.c13
2 files changed, 19 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 26c7b2a..a6c1a8b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-12 Kevin Buettner <kevinb@redhat.com>
+
+ * dwarf2read.c (dwarf2_psymtab_to_symtab): Propagate
+ `has_section_at_zero' flag from stripped objfile to separate,
+ debug info only, objfile.
+
2009-06-12 Pedro Alves <pedro@codesourcery.com>
* exec.h (section_table_xfer_memory_partial): Improve description,
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 6da8f4e..849b2af 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2541,6 +2541,19 @@ dwarf2_psymtab_to_symtab (struct partial_symtab *pst)
dwarf2_per_objfile = objfile_data (pst->objfile,
dwarf2_objfile_data_key);
+ /* If this psymtab is constructed from a debug-only objfile, the
+ has_section_at_zero flag will not necessarily be correct. We
+ can get the correct value for this flag by looking at the data
+ associated with the (presumably stripped) associated objfile. */
+ if (pst->objfile->separate_debug_objfile_backlink)
+ {
+ struct dwarf2_per_objfile *dpo_backlink
+ = objfile_data (pst->objfile->separate_debug_objfile_backlink,
+ dwarf2_objfile_data_key);
+ dwarf2_per_objfile->has_section_at_zero
+ = dpo_backlink->has_section_at_zero;
+ }
+
psymtab_to_symtab_1 (pst);
/* Finish up the debug error message. */