aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2000-11-03 22:38:38 +0000
committerKevin Buettner <kevinb@redhat.com>2000-11-03 22:38:38 +0000
commita275699e3adcd25657fb93e3075c3cda0c378541 (patch)
tree12ce162a40b04e5f66ded8836ce34ce414062f5e /gdb
parent4930751aaeebf663e6ce45c683b1653b2c60a68b (diff)
downloadgdb-a275699e3adcd25657fb93e3075c3cda0c378541.zip
gdb-a275699e3adcd25657fb93e3075c3cda0c378541.tar.gz
gdb-a275699e3adcd25657fb93e3075c3cda0c378541.tar.bz2
In new_symbol(), relocate symbol address by base address of the section
it is in instead of using the base address of the .text section.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2read.c10
2 files changed, 14 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a3d1933..db8a843 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2000-11-03 Kevin Buettner <kevinb@redhat.com>
+
+ * dwarf2read.c (new_symbol): Relocate address of symbol by the
+ base address of the section it is in rather than always using
+ the base address of the .text section.
+
2000-11-01 J.T. Conklin <jtc@redback.com>
* TODO: Note abstraction layer violation where "ocd reset" command
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index d3dba4e..c215c99 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -4185,7 +4185,10 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
the variable is referenced. */
if (SYMBOL_VALUE_ADDRESS (sym))
{
- SYMBOL_VALUE_ADDRESS (sym) += baseaddr;
+ fixup_symbol_section (sym, objfile);
+ SYMBOL_VALUE_ADDRESS (sym) +=
+ ANOFFSET (objfile->section_offsets,
+ SYMBOL_SECTION (sym));
SYMBOL_CLASS (sym) = LOC_STATIC;
}
else
@@ -4215,8 +4218,11 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
}
else
{
+ fixup_symbol_section (sym, objfile);
+ SYMBOL_VALUE_ADDRESS (sym) =
+ addr + ANOFFSET (objfile->section_offsets,
+ SYMBOL_SECTION (sym));
SYMBOL_CLASS (sym) = LOC_STATIC;
- SYMBOL_VALUE_ADDRESS (sym) = addr + baseaddr;
}
}
}