This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] symfile.c -- use bfd access methods


Elena Zannoni wrote:
> 
> Michael Snyder writes:
>  >
>  > Some more cleanups of symfile.c, using bfd access methods instead of
>  > accessing private bfd data fields.  In several cases (those that
>  > would require touching more than one source file) I've just added
>  > a FIXME comment and deferred doing the actual work.
>  >
> 
> Michael, there are some typos in your patch. I get the following errors:
> e -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Werror /home/ezannoni/sources/src/gdb/symfile.c
> /home/ezannoni/sources/src/gdb/symfile.c: In function `simple_overlay_update_1':/home/ezannoni/sources/src/gdb/symfile.c:3129: `osection' undeclared (first use in this function)
> /home/ezannoni/sources/src/gdb/symfile.c:3129: (Each undeclared identifier is reported only once
> /home/ezannoni/sources/src/gdb/symfile.c:3129: for each function it appears in.)/home/ezannoni/sources/src/gdb/symfile.c:3129: `bsect' undeclared (first use in this function)
> /home/ezannoni/sources/src/gdb/symfile.c:3129: invalid lvalue in assignment
> /home/ezannoni/sources/src/gdb/symfile.c: In function `simple_overlay_update':
> /home/ezannoni/sources/src/gdb/symfile.c:3190: `osection' undeclared (first use in this function)
> /home/ezannoni/sources/src/gdb/symfile.c:3190: `bsect' undeclared (first use in this function)
> /home/ezannoni/sources/src/gdb/symfile.c:3190: invalid lvalue in assignment
> 
> Maybe you wanted asection instead of osection?
> 
> Modulus that, the patch is ok.
> 
> Elena

Corrected and committed.

> 
>  > 2002-01-11  Michael Snyder  <msnyder@redhat.com>
>  >
>  >      * symfile.c (build_section_addr_info_from_section_tab):
>  >      Use bfd access method instead of manipulating bfd directly.
>  >      (syms_from_objfile): Ditto.
>  >      (simple_overlay_update_1): Ditto.
>  >      (simple_overlay_update): Ditto.
>  >      (generic_load): Ditto.
>  >      (overlay_unmapped_address): FIXME comment, bfd access methods.
>  >      (sections_overlap): FIXME comment, bfd access methods.
>  >      (pc_in_mapped_range): FIXME comment, bfd access methods.
>  >      (pc_in_unmapped_range): FIXME comment, bfd access methods.
>  >      (section_is_mapped): FIXME comment, bfd access methods.
>  >      (section_is_overlay): FIXME comment, bfd access methods.
>  >
>  > Index: symfile.c
>  > ===================================================================
>  > RCS file: /cvs/src/src/gdb/symfile.c,v
>  > retrieving revision 1.46
>  > diff -c -3 -p -r1.46 symfile.c
>  > *** symfile.c        2002/01/08 02:09:31     1.46
>  > --- symfile.c        2002/01/11 23:54:31
>  > *************** build_section_addr_info_from_section_tab
>  > *** 452,462 ****
>  >
>  >     for (stp = start, oidx = 0; stp != end; stp++)
>  >       {
>  > !       if (stp->the_bfd_section->flags & (SEC_ALLOC | SEC_LOAD)
>  >        && oidx < MAX_SECTIONS)
>  >      {
>  >        sap->other[oidx].addr = stp->addr;
>  > !      sap->other[oidx].name = xstrdup (stp->the_bfd_section->name);
>  >        sap->other[oidx].sectindex = stp->the_bfd_section->index;
>  >        oidx++;
>  >      }
>  > --- 452,464 ----
>  >
>  >     for (stp = start, oidx = 0; stp != end; stp++)
>  >       {
>  > !       if (bfd_get_section_flags (stp->bfd,
>  > !                             stp->the_bfd_section) & (SEC_ALLOC | SEC_LOAD)
>  >        && oidx < MAX_SECTIONS)
>  >      {
>  >        sap->other[oidx].addr = stp->addr;
>  > !      sap->other[oidx].name
>  > !        = xstrdup (bfd_section_name (stp->bfd, stp->the_bfd_section));
>  >        sap->other[oidx].sectindex = stp->the_bfd_section->index;
>  >        oidx++;
>  >      }
>  > *************** syms_from_objfile (struct objfile *objfi
>  > *** 708,714 ****
>  >          for (i = 0;
>  >               !s_addr && i < MAX_SECTIONS && addrs->other[i].name;
>  >               i++)
>  > !          if (strcmp (s->the_bfd_section->name, addrs->other[i].name) == 0)
>  >              s_addr = addrs->other[i].addr; /* end added for gdb/13815 */
>  >
>  >        s->addr -= s->offset;
>  > --- 710,718 ----
>  >          for (i = 0;
>  >               !s_addr && i < MAX_SECTIONS && addrs->other[i].name;
>  >               i++)
>  > !          if (strcmp (bfd_section_name (s->objfile->obfd,
>  > !                                        s->the_bfd_section),
>  > !                      addrs->other[i].name) == 0)
>  >              s_addr = addrs->other[i].addr; /* end added for gdb/13815 */
>  >
>  >        s->addr -= s->offset;
>  > *************** generic_load (char *args, int from_tty)
>  > *** 1222,1228 ****
>  >       }
>  >
>  >     for (s = loadfile_bfd->sections; s; s = s->next)
>  > !     if (s->flags & SEC_LOAD)
>  >         total_size += bfd_get_section_size_before_reloc (s);
>  >
>  >     start_time = time (NULL);
>  > --- 1226,1232 ----
>  >       }
>  >
>  >     for (s = loadfile_bfd->sections; s; s = s->next)
>  > !     if (bfd_get_section_flags (loadfile_bfd, s) & SEC_LOAD)
>  >         total_size += bfd_get_section_size_before_reloc (s);
>  >
>  >     start_time = time (NULL);
>  > *************** void (*target_overlay_update) (struct ob
>  > *** 2512,2517 ****
>  > --- 2516,2523 ----
>  >   int
>  >   section_is_overlay (asection *section)
>  >   {
>  > +   /* FIXME: need bfd *, so we can use bfd_section_lma methods. */
>  > +
>  >     if (overlay_debugging)
>  >       if (section && section->lma != 0 &&
>  >      section->vma != section->lma)
>  > *************** section_is_mapped (asection *section)
>  > *** 2598,2603 ****
>  > --- 2604,2611 ----
>  >   CORE_ADDR
>  >   pc_in_unmapped_range (CORE_ADDR pc, asection *section)
>  >   {
>  > +   /* FIXME: need bfd *, so we can use bfd_section_lma methods. */
>  > +
>  >     int size;
>  >
>  >     if (overlay_debugging)
>  > *************** pc_in_unmapped_range (CORE_ADDR pc, asec
>  > *** 2616,2621 ****
>  > --- 2624,2631 ----
>  >   CORE_ADDR
>  >   pc_in_mapped_range (CORE_ADDR pc, asection *section)
>  >   {
>  > +   /* FIXME: need bfd *, so we can use bfd_section_vma methods. */
>  > +
>  >     int size;
>  >
>  >     if (overlay_debugging)
>  > *************** pc_in_mapped_range (CORE_ADDR pc, asecti
>  > *** 2634,2639 ****
>  > --- 2644,2651 ----
>  >   int
>  >   sections_overlap (asection *a, asection *b)
>  >   {
>  > +   /* FIXME: need bfd *, so we can use bfd_section_vma methods. */
>  > +
>  >     CORE_ADDR a_start = a->vma;
>  >     CORE_ADDR a_end = a->vma + bfd_get_section_size_before_reloc (a);
>  >     CORE_ADDR b_start = b->vma;
>  > *************** sections_overlap (asection *a, asection
>  > *** 2649,2654 ****
>  > --- 2661,2668 ----
>  >   CORE_ADDR
>  >   overlay_unmapped_address (CORE_ADDR pc, asection *section)
>  >   {
>  > +   /* FIXME: need bfd *, so we can use bfd_section_lma methods. */
>  > +
>  >     if (overlay_debugging)
>  >       if (section && section_is_overlay (section) &&
>  >      pc_in_mapped_range (pc, section))
>  > *************** overlay_unmapped_address (CORE_ADDR pc,
>  > *** 2664,2669 ****
>  > --- 2678,2685 ----
>  >   CORE_ADDR
>  >   overlay_mapped_address (CORE_ADDR pc, asection *section)
>  >   {
>  > +   /* FIXME: need bfd *, so we can use bfd_section_vma methods. */
>  > +
>  >     if (overlay_debugging)
>  >       if (section && section_is_overlay (section) &&
>  >      pc_in_unmapped_range (pc, section))
>  > *************** static int
>  > *** 3102,3124 ****
>  >   simple_overlay_update_1 (struct obj_section *osect)
>  >   {
>  >     int i, size;
>  >
>  >     size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
>  >     for (i = 0; i < cache_novlys; i++)
>  > !     if (cache_ovly_table[i][VMA] == osect->the_bfd_section->vma &&
>  > !    cache_ovly_table[i][LMA] == osect->the_bfd_section->lma         /* &&
>  > !                                                                       cache_ovly_table[i][SIZE] == size */ )
>  >         {
>  >      read_target_long_array (cache_ovly_table_base + i * TARGET_LONG_BYTES,
>  >                              (int *) cache_ovly_table[i], 4);
>  > !    if (cache_ovly_table[i][VMA] == osect->the_bfd_section->vma &&
>  > !        cache_ovly_table[i][LMA] == osect->the_bfd_section->lma     /* &&
>  > !                                                                       cache_ovly_table[i][SIZE] == size */ )
>  >        {
>  >          osect->ovly_mapped = cache_ovly_table[i][MAPPED];
>  >          return 1;
>  >        }
>  > !    else                    /* Warning!  Warning!  Target's ovly table has changed! */
>  >        return 0;
>  >         }
>  >     return 0;
>  > --- 3118,3142 ----
>  >   simple_overlay_update_1 (struct obj_section *osect)
>  >   {
>  >     int i, size;
>  > +   bfd *obfd = osect->objfile->obfd;
>  > +   osection *bsect = osect->the_bfd_section;
>  >
>  >     size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
>  >     for (i = 0; i < cache_novlys; i++)
>  > !     if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
>  > !    && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
>  > !    /* && cache_ovly_table[i][SIZE] == size */ )
>  >         {
>  >      read_target_long_array (cache_ovly_table_base + i * TARGET_LONG_BYTES,
>  >                              (int *) cache_ovly_table[i], 4);
>  > !    if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
>  > !        && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
>  > !        /* && cache_ovly_table[i][SIZE] == size */ )
>  >        {
>  >          osect->ovly_mapped = cache_ovly_table[i][MAPPED];
>  >          return 1;
>  >        }
>  > !    else    /* Warning!  Warning!  Target's ovly table has changed! */
>  >        return 0;
>  >         }
>  >     return 0;
>  > *************** simple_overlay_update (struct obj_sectio
>  > *** 3161,3173 ****
>  >       if (section_is_overlay (osect->the_bfd_section))
>  >       {
>  >         int i, size;
>  >
>  >         size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
>  >         for (i = 0; i < cache_novlys; i++)
>  > !    if (cache_ovly_table[i][VMA] == osect->the_bfd_section->vma &&
>  > !        cache_ovly_table[i][LMA] == osect->the_bfd_section->lma     /* &&
>  > !                                                                       cache_ovly_table[i][SIZE] == size */ )
>  > !      {                     /* obj_section matches i'th entry in ovly_table */
>  >          osect->ovly_mapped = cache_ovly_table[i][MAPPED];
>  >          break;              /* finished with inner for loop: break out */
>  >        }
>  > --- 3179,3193 ----
>  >       if (section_is_overlay (osect->the_bfd_section))
>  >       {
>  >         int i, size;
>  > +       bfd *obfd = osect->objfile->obfd;
>  > +       osection *bsect = osect->the_bfd_section;
>  >
>  >         size = bfd_get_section_size_before_reloc (osect->the_bfd_section);
>  >         for (i = 0; i < cache_novlys; i++)
>  > !    if (cache_ovly_table[i][VMA] == bfd_section_vma (obfd, bsect)
>  > !        && cache_ovly_table[i][LMA] == bfd_section_lma (obfd, bsect)
>  > !        /* && cache_ovly_table[i][SIZE] == size */ )
>  > !      { /* obj_section matches i'th entry in ovly_table */
>  >          osect->ovly_mapped = cache_ovly_table[i][MAPPED];
>  >          break;              /* finished with inner for loop: break out */
>  >        }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]