diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-06-05 15:04:40 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-06-05 15:04:40 +0000 |
commit | 93e7bd98af3e52d6d51a9cacd0848a3c6a3e5bdb (patch) | |
tree | 7f2fee7e5e505310a1222949a9600fd90e9d1522 | |
parent | 5ba684e24cc4737088e295c4f3d1bcd69c1bfdf6 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 17 |
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)) { |