aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>2000-05-05 19:09:27 +0000
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>2000-05-05 19:09:27 +0000
commitb8d39351ea5eabfa364474f006b1556f40f0f636 (patch)
treed36d52d491774ca3773ccc98b0d3b9f48cc3c683
parent6c1a54b22b5b3bd140126b93eba4436781a6983d (diff)
downloadgdb-b8d39351ea5eabfa364474f006b1556f40f0f636.zip
gdb-b8d39351ea5eabfa364474f006b1556f40f0f636.tar.gz
gdb-b8d39351ea5eabfa364474f006b1556f40f0f636.tar.bz2
2000-05-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* elfread.c (elf_symtab_read): The calculation of 'offset' must be done for each symbol, not just once. The index used must be the index of the section where 'sym' resides, not .text.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/elfread.c4
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6ba9787..987431d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2000-05-05 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+
+ * elfread.c (elf_symtab_read): The calculation of 'offset'
+ must be done for each symbol, not just once. The index
+ used must be the index of the section where 'sym' resides,
+ not .text.
+
2000-05-05 Michael Snyder <msnyder@seadog.cygnus.com>
* procfs.c (many functions): change int cmd; to long cmd;
@@ -19,7 +26,7 @@
and missing return when handling an ordinary signal from the
inferior.
-Elena Zannoni <ezannoni@kwikemart.cygnus.com>
+2000-05-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* objfiles.h (SECT_OFF_DATA, SECT_OFF_TEXT, SECT_OFF_BSS,
SECT_OFF_RODATA): Define as functions of OBJFILE. Add
diff --git a/gdb/elfread.c b/gdb/elfread.c
index e76d5cd..85b04ec 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -293,8 +293,7 @@ elf_symtab_read (objfile, dynamic)
if (number_of_symbols < 0)
error ("Can't read symbols from %s: %s", bfd_get_filename (objfile->obfd),
bfd_errmsg (bfd_get_error ()));
- /* FIXME: Should use section specific offset, not SECT_OFF_TEXT. */
- offset = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
+
for (i = 0; i < number_of_symbols; i++)
{
sym = symbol_table[i];
@@ -305,6 +304,7 @@ elf_symtab_read (objfile, dynamic)
continue;
}
+ offset = ANOFFSET (objfile->section_offsets, sym->section->index);
if (dynamic
&& sym->section == &bfd_und_section
&& (sym->flags & BSF_FUNCTION))