aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-06-05 15:04:40 +0000
committerDaniel Jacobowitz <drow@false.org>2007-06-05 15:04:40 +0000
commit93e7bd98af3e52d6d51a9cacd0848a3c6a3e5bdb (patch)
tree7f2fee7e5e505310a1222949a9600fd90e9d1522
parent5ba684e24cc4737088e295c4f3d1bcd69c1bfdf6 (diff)
downloadgdb-93e7bd98af3e52d6d51a9cacd0848a3c6a3e5bdb.zip
gdb-93e7bd98af3e52d6d51a9cacd0848a3c6a3e5bdb.tar.gz
gdb-93e7bd98af3e52d6d51a9cacd0848a3c6a3e5bdb.tar.bz2
* dwarf2read.c (dwarf2_symbol_mark_computed): Fix formatting.
Use the original objfile if necessary.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/dwarf2read.c17
2 files changed, 17 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index dfa0426..d7e4fa5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2007-06-05 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * dwarf2read.c (dwarf2_symbol_mark_computed): Fix formatting.
+ Use the original objfile if necessary.
+
2007-06-04 Daniel Jacobowitz <dan@codesourcery.com>
* defs.h (ldirname): New prototype.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 6314c4c..80915a8 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -1046,9 +1046,9 @@ static void dwarf_decode_macros (struct line_header *, unsigned int,
static int attr_form_is_block (struct attribute *);
-static void
-dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
- struct dwarf2_cu *cu);
+static void dwarf2_symbol_mark_computed (struct attribute *attr,
+ struct symbol *sym,
+ struct dwarf2_cu *cu);
static gdb_byte *skip_one_die (gdb_byte *info_ptr, struct abbrev_info *abbrev,
struct dwarf2_cu *cu);
@@ -9698,6 +9698,13 @@ static void
dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu)
{
+ struct objfile *objfile = cu->objfile;
+
+ /* Save the master objfile, so that we can report and look up the
+ correct file containing this variable. */
+ if (objfile->separate_debug_objfile_backlink)
+ objfile = objfile->separate_debug_objfile_backlink;
+
if ((attr->form == DW_FORM_data4 || attr->form == DW_FORM_data8)
/* ".debug_loc" may not exist at all, or the offset may be outside
the section. If so, fall through to the complaint in the
@@ -9708,7 +9715,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
baton = obstack_alloc (&cu->objfile->objfile_obstack,
sizeof (struct dwarf2_loclist_baton));
- baton->objfile = cu->objfile;
+ baton->objfile = objfile;
/* We don't know how long the location list is, but make sure we
don't run off the edge of the section. */
@@ -9728,7 +9735,7 @@ dwarf2_symbol_mark_computed (struct attribute *attr, struct symbol *sym,
baton = obstack_alloc (&cu->objfile->objfile_obstack,
sizeof (struct dwarf2_locexpr_baton));
- baton->objfile = cu->objfile;
+ baton->objfile = objfile;
if (attr_form_is_block (attr))
{