diff options
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); |