diff options
author | Pedro Alves <palves@redhat.com> | 2008-08-20 11:21:44 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2008-08-20 11:21:44 +0000 |
commit | f1f6aadf8c572a21149a59d65adc49f2df5feeb6 (patch) | |
tree | 9b51311b5d16685c2c5201142c196a33a7c157b2 /gdb/objfiles.c | |
parent | b365f677216c4c4c40877340b1dcbc2926f60671 (diff) | |
download | gdb-f1f6aadf8c572a21149a59d65adc49f2df5feeb6.zip gdb-f1f6aadf8c572a21149a59d65adc49f2df5feeb6.tar.gz gdb-f1f6aadf8c572a21149a59d65adc49f2df5feeb6.tar.bz2 |
* objfiles.h (struct obj_section): Remove addr and endaddr fields.
(obj_section_offset, obj_section_addr, obj_section_endaddr): New
macros.
* objfiles.c (add_to_objfile_sections): Don't set addr, endaddr
and offset. Use size_t instead of unsigned long.
(build_objfile_section_table): Use size_t instead of unsigned
long.
(objfile_relocate): Don't relocate s->addr and s->endaddr, they're
gone.
(find_pc_sect_section): Use obj_section_addr and
obj_section_endaddr.
* symfile.c (symfile.c): Remove code that maps sections
offsets in "addr" to the object's sections.
* blockframe.c (find_pc_partial_function): Use obj_section_endaddr.
* gcore.c (gcore_create_callback): Use obj_section_addr and
obj_section_endaddr.
* maint.c (print_objfile_section_info): Likewise.
* printcmd.c (sym_info): Use obj_section_addr and
obj_section_endaddr.
* symtab.c (fixup_section): Likewise.
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r-- | gdb/objfiles.c | 35 |
1 files changed, 9 insertions, 26 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 2969a8a..16be84a 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -88,14 +88,12 @@ add_to_objfile_sections (struct bfd *abfd, struct bfd_section *asect, if (0 == bfd_section_size (abfd, asect)) return; - section.offset = 0; section.objfile = objfile; section.the_bfd_section = asect; section.ovly_mapped = 0; - section.addr = bfd_section_vma (abfd, asect); - section.endaddr = section.addr + bfd_section_size (abfd, asect); obstack_grow (&objfile->objfile_obstack, (char *) §ion, sizeof (section)); - objfile->sections_end = (struct obj_section *) (((unsigned long) objfile->sections_end) + 1); + objfile->sections_end + = (struct obj_section *) (((size_t) objfile->sections_end) + 1); } /* Builds a section table for OBJFILE. @@ -124,10 +122,10 @@ build_objfile_section_table (struct objfile *objfile) waste some memory. */ objfile->sections_end = 0; - bfd_map_over_sections (objfile->obfd, add_to_objfile_sections, (char *) objfile); - objfile->sections = (struct obj_section *) - obstack_finish (&objfile->objfile_obstack); - objfile->sections_end = objfile->sections + (unsigned long) objfile->sections_end; + bfd_map_over_sections (objfile->obfd, + add_to_objfile_sections, (void *) objfile); + objfile->sections = obstack_finish (&objfile->objfile_obstack); + objfile->sections_end = objfile->sections + (size_t) objfile->sections_end; return (0); } @@ -664,28 +662,13 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets) objfile->ei.entry_point += ANOFFSET (delta, SECT_OFF_TEXT (objfile)); } - { - struct obj_section *s; - bfd *abfd; - - abfd = objfile->obfd; - - ALL_OBJFILE_OSECTIONS (objfile, s) - { - int idx = s->the_bfd_section->index; - - s->addr += ANOFFSET (delta, idx); - s->endaddr += ANOFFSET (delta, idx); - } - } - /* Update the table in exec_ops, used to read memory. */ ALL_OBJFILE_OSECTIONS (objfile, s) { int idx = s->the_bfd_section->index; exec_set_section_address (bfd_get_filename (objfile->obfd), idx, - s->addr); + obj_section_addr (s)); } /* Relocate breakpoints as necessary, after things are relocated. */ @@ -784,8 +767,8 @@ find_pc_sect_section (CORE_ADDR pc, struct bfd_section *section) struct objfile *objfile; ALL_OBJSECTIONS (objfile, s) - if ((section == 0 || section == s->the_bfd_section) && - s->addr <= pc && pc < s->endaddr) + if ((section == 0 || section == s->the_bfd_section) + && obj_section_addr (s) <= pc && pc < obj_section_endaddr (s)) return (s); return (NULL); |