diff options
author | Kevin Buettner <kevinb@redhat.com> | 2000-11-03 22:38:38 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2000-11-03 22:38:38 +0000 |
commit | a275699e3adcd25657fb93e3075c3cda0c378541 (patch) | |
tree | 12ce162a40b04e5f66ded8836ce34ce414062f5e | |
parent | 4930751aaeebf663e6ce45c683b1653b2c60a68b (diff) | |
download | gdb-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.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 10 |
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; } } } |