think-o: frame.c:find_saved_register() frame1 = get_prev_frame (frame1) backwards?

Kevin Buettner kevinb@redhat.com
Fri Feb 15 14:51:00 GMT 2002


On Feb 12,  2:46pm, Andrew Cagney wrote:

> (it dates back to prior to Red Hats CVS repository).  I think this is 
> going the wrong way, looking in frame.h the doco indicates:
> 
>      /* Pointers to the next (down, inner) and previous (up, outer)
>         frame_info's in the frame cache.  */
>      struct frame_info *next; /* down, inner */
>      struct frame_info *prev; /* up, outer */
> 
> and blockframe.c:get_prev_frame() returns the next ``up, outer'':
> 
>    /* If we have the prev one, return it */
>    if (next_frame->prev)
>      return next_frame->prev;
> 
> Given:
> 
> 	a() { b (); }
> 
> then it is b() that is saving registers used by a().  And b() is ``down, 
> inner''.
> 
> confused,
> Andrew

I don't know.  I've also gotten confused when staring at this code.  I
don't find the terms "next", "down", or "inner" to be helpful at all
when trying to figure it out either.  I think we ought to be referring
to "callers" and "callees".

Kevin



More information about the Gdb mailing list