Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* RFA: correctly detect overlapping overlays
@ 2001-08-12 11:42 Jim Blandy
  2001-08-12 19:13 ` Andrew Cagney
  2001-08-24 10:44 ` Michael Snyder
  0 siblings, 2 replies; 6+ messages in thread
From: Jim Blandy @ 2001-08-12 11:42 UTC (permalink / raw)
  To: Michael Snyder; +Cc: gdb-patches

Same here.

2001-08-12  Jim Blandy  <jimb@redhat.com>

	* symfile.c (sections_overlap): New function.
	(map_overlay_command): Call sections_overlap, instead of using
	incorrect logic to recognize overlapping sections.

Index: gdb/symfile.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/symfile.c,v
retrieving revision 1.237
diff -c -r1.237 symfile.c
*** gdb/symfile.c	2001/06/14 21:03:18	1.237
--- gdb/symfile.c	2001/08/12 17:28:35
***************
*** 2486,2491 ****
--- 2486,2492 ----
     section_is_overlay(sect):      true if section's VMA != LMA
     pc_in_mapped_range(pc,sec):    true if pc belongs to section's VMA
     pc_in_unmapped_range(...):     true if pc belongs to section's LMA
+    sections_overlap(sec1, sec2):  true if mapped sec1 and sec2 ranges overlap
     overlay_mapped_address(...):   map an address from section's LMA to VMA
     overlay_unmapped_address(...): map an address from section's VMA to LMA
     symbol_overlayed_address(...): Return a "current" address for symbol:
***************
*** 2625,2630 ****
--- 2626,2645 ----
    return 0;
  }
  
+ 
+ /* Return true if the mapped ranges of sections A and B overlap, false
+    otherwise.  */
+ int
+ sections_overlap (asection *a, asection *b)
+ {
+   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;
+   CORE_ADDR b_end   = b->vma + bfd_get_section_size_before_reloc (b);
+ 
+   return (a_start < b_end && b_start < a_end);
+ }
+ 
  /* Function: overlay_unmapped_address (PC, SECTION)
     Returns the address corresponding to PC in the unmapped (load) range.
     May be the same as PC.  */
***************
*** 2803,2813 ****
        /* Next, make a pass and unmap any sections that are
           overlapped by this new section: */
        ALL_OBJSECTIONS (objfile2, sec2)
! 	if (sec2->ovly_mapped &&
! 	    sec != sec2 &&
! 	    sec->the_bfd_section != sec2->the_bfd_section &&
! 	    (pc_in_mapped_range (sec2->addr, sec->the_bfd_section) ||
! 	     pc_in_mapped_range (sec2->endaddr, sec->the_bfd_section)))
  	{
  	  if (info_verbose)
  	    printf_filtered ("Note: section %s unmapped by overlap\n",
--- 2818,2828 ----
        /* Next, make a pass and unmap any sections that are
           overlapped by this new section: */
        ALL_OBJSECTIONS (objfile2, sec2)
! 	if (sec2->ovly_mapped
!             && sec != sec2
!             && sec->the_bfd_section != sec2->the_bfd_section
!             && sections_overlap (sec->the_bfd_section,
!                                  sec2->the_bfd_section))
  	{
  	  if (info_verbose)
  	    printf_filtered ("Note: section %s unmapped by overlap\n",


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: RFA: correctly detect overlapping overlays
  2001-08-12 11:42 RFA: correctly detect overlapping overlays Jim Blandy
@ 2001-08-12 19:13 ` Andrew Cagney
  2001-08-13  7:39   ` Jim Blandy
  2001-08-24 10:44 ` Michael Snyder
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Cagney @ 2001-08-12 19:13 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

> +   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;
> +   CORE_ADDR b_end   = b->vma + bfd_get_section_size_before_reloc (b);


Jim, just a reminder on coding style.
There isn't any reason to (and probably good reason to not) lay out the 
code so carefully.  It just makes the task of someone running indent 
over the code all the more confusing.

	Andrew


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: RFA: correctly detect overlapping overlays
  2001-08-12 19:13 ` Andrew Cagney
@ 2001-08-13  7:39   ` Jim Blandy
  2001-08-13  9:07     ` Andrew Cagney
  2001-08-13 11:25     ` Michael Snyder
  0 siblings, 2 replies; 6+ messages in thread
From: Jim Blandy @ 2001-08-13  7:39 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb-patches

Andrew Cagney <ac131313@cygnus.com> writes:
> > +   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;
> > +   CORE_ADDR b_end   = b->vma + bfd_get_section_size_before_reloc (b);
> 
> 
> Jim, just a reminder on coding style.
> There isn't any reason to (and probably good reason to not) lay out the 
> code so carefully.  It just makes the task of someone running indent 
> over the code all the more confusing.

I hadn't thought of people running indent.  I'll fix that.

But I do think it's a shame.  When layout can expose symmetry in what
you're doing, it makes it easier to read the code.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: RFA: correctly detect overlapping overlays
  2001-08-13  7:39   ` Jim Blandy
@ 2001-08-13  9:07     ` Andrew Cagney
  2001-08-13 11:25     ` Michael Snyder
  1 sibling, 0 replies; 6+ messages in thread
From: Andrew Cagney @ 2001-08-13  9:07 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

> But I do think it's a shame.  When layout can expose symmetry in what
> you're doing, it makes it easier to read the code.


Order it as:

	start_a
	start_b
	end_a
	end_b

enjoy,
	Andrew




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: RFA: correctly detect overlapping overlays
  2001-08-13  7:39   ` Jim Blandy
  2001-08-13  9:07     ` Andrew Cagney
@ 2001-08-13 11:25     ` Michael Snyder
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Snyder @ 2001-08-13 11:25 UTC (permalink / raw)
  To: Jim Blandy; +Cc: Andrew Cagney, gdb-patches

Jim Blandy wrote:
> 
> Andrew Cagney <ac131313@cygnus.com> writes:
> > > +   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;
> > > +   CORE_ADDR b_end   = b->vma + bfd_get_section_size_before_reloc (b);
> >
> >
> > Jim, just a reminder on coding style.
> > There isn't any reason to (and probably good reason to not) lay out the
> > code so carefully.  It just makes the task of someone running indent
> > over the code all the more confusing.
> 
> I hadn't thought of people running indent.  I'll fix that.
> 
> But I do think it's a shame.  When layout can expose symmetry in what
> you're doing, it makes it easier to read the code.

I agree, I like to do the kind of formatting that jim is doing.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: RFA: correctly detect overlapping overlays
  2001-08-12 11:42 RFA: correctly detect overlapping overlays Jim Blandy
  2001-08-12 19:13 ` Andrew Cagney
@ 2001-08-24 10:44 ` Michael Snyder
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Snyder @ 2001-08-24 10:44 UTC (permalink / raw)
  To: Jim Blandy; +Cc: gdb-patches

Jim Blandy wrote:
> 
> Same here.

Approved.


> 
> 2001-08-12  Jim Blandy  <jimb@redhat.com>
> 
>         * symfile.c (sections_overlap): New function.
>         (map_overlay_command): Call sections_overlap, instead of using
>         incorrect logic to recognize overlapping sections.
> 
> Index: gdb/symfile.c
> ===================================================================
> RCS file: /cvs/cvsfiles/devo/gdb/symfile.c,v
> retrieving revision 1.237
> diff -c -r1.237 symfile.c
> *** gdb/symfile.c       2001/06/14 21:03:18     1.237
> --- gdb/symfile.c       2001/08/12 17:28:35
> ***************
> *** 2486,2491 ****
> --- 2486,2492 ----
>      section_is_overlay(sect):      true if section's VMA != LMA
>      pc_in_mapped_range(pc,sec):    true if pc belongs to section's VMA
>      pc_in_unmapped_range(...):     true if pc belongs to section's LMA
> +    sections_overlap(sec1, sec2):  true if mapped sec1 and sec2 ranges overlap
>      overlay_mapped_address(...):   map an address from section's LMA to VMA
>      overlay_unmapped_address(...): map an address from section's VMA to LMA
>      symbol_overlayed_address(...): Return a "current" address for symbol:
> ***************
> *** 2625,2630 ****
> --- 2626,2645 ----
>     return 0;
>   }
> 
> +
> + /* Return true if the mapped ranges of sections A and B overlap, false
> +    otherwise.  */
> + int
> + sections_overlap (asection *a, asection *b)
> + {
> +   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;
> +   CORE_ADDR b_end   = b->vma + bfd_get_section_size_before_reloc (b);
> +
> +   return (a_start < b_end && b_start < a_end);
> + }
> +
>   /* Function: overlay_unmapped_address (PC, SECTION)
>      Returns the address corresponding to PC in the unmapped (load) range.
>      May be the same as PC.  */
> ***************
> *** 2803,2813 ****
>         /* Next, make a pass and unmap any sections that are
>            overlapped by this new section: */
>         ALL_OBJSECTIONS (objfile2, sec2)
> !       if (sec2->ovly_mapped &&
> !           sec != sec2 &&
> !           sec->the_bfd_section != sec2->the_bfd_section &&
> !           (pc_in_mapped_range (sec2->addr, sec->the_bfd_section) ||
> !            pc_in_mapped_range (sec2->endaddr, sec->the_bfd_section)))
>         {
>           if (info_verbose)
>             printf_filtered ("Note: section %s unmapped by overlap\n",
> --- 2818,2828 ----
>         /* Next, make a pass and unmap any sections that are
>            overlapped by this new section: */
>         ALL_OBJSECTIONS (objfile2, sec2)
> !       if (sec2->ovly_mapped
> !             && sec != sec2
> !             && sec->the_bfd_section != sec2->the_bfd_section
> !             && sections_overlap (sec->the_bfd_section,
> !                                  sec2->the_bfd_section))
>         {
>           if (info_verbose)
>             printf_filtered ("Note: section %s unmapped by overlap\n",


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-08-24 10:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-12 11:42 RFA: correctly detect overlapping overlays Jim Blandy
2001-08-12 19:13 ` Andrew Cagney
2001-08-13  7:39   ` Jim Blandy
2001-08-13  9:07     ` Andrew Cagney
2001-08-13 11:25     ` Michael Snyder
2001-08-24 10:44 ` Michael Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox