[RFA/alpha-osf] another next frame confusion in signal unwinder?

Andrew Cagney cagney@gnu.org
Sun Dec 12 16:27:00 GMT 2004


Joel Brobecker wrote:

> It looks to me that we already have the next frame, so computing
> the next frame of that frame in alpha_osf1_sigcontext_addr() is
> making us using the wrong frame when getting the base address for
> the signal context area. So I changed this function to:
> 
>         static CORE_ADDR
>         alpha_osf1_sigcontext_addr (struct frame_info *next_frame)
>         {      
>           return (read_memory_integer (get_frame_base (next_frame), 8));
>         } 
> 
> This fixes the problem above, and I obtain the expected callstack.
> 
> 2004-12-01  Joel Brobecker  <brobecker@gnat.com>
> 
>         * alpha-osf1-tdep.c (alpha_osf1_sigcontext_addr): Change
>         parameter name to make it clear that we already have a next
>         frame.  Return the sigcontext from that next frame instead
>         of the frame following it.
>         Fixes [DB30-017].
> 
> Tested on alpha-tru64 5.1a. No regression.
> 
> OK to apply?
> 
> 
> ------------------------------------------------------------------------
> 
> Index: alpha-osf1-tdep.c
> ===================================================================
> RCS file: /nile.c/cvs/Dev/gdb/gdb-6.3/gdb/alpha-osf1-tdep.c,v
> retrieving revision 1.3
> diff -u -p -r1.3 alpha-osf1-tdep.c
> --- alpha-osf1-tdep.c	21 Oct 2004 00:08:34 -0000	1.3
> +++ alpha-osf1-tdep.c	1 Dec 2004 17:54:46 -0000
> @@ -35,14 +35,9 @@ alpha_osf1_pc_in_sigtramp (CORE_ADDR pc,
>  }
>  
>  static CORE_ADDR
> -alpha_osf1_sigcontext_addr (struct frame_info *frame)
> +alpha_osf1_sigcontext_addr (struct frame_info *next_frame)
>  {
> -  struct frame_info *next_frame = get_next_frame (frame);
> -
> -  if (next_frame != NULL)
> -    return (read_memory_integer (get_frame_base (next_frame), 8));
> -  else
> -    return (read_memory_integer (get_frame_base (frame), 8));
> +  return (read_memory_integer (get_frame_base (next_frame), 8));

(I need to deprecate get frame base).  Can you just tweak this to return 
get_frame_id().stack_addr before committing.

thanks,
Andrew




>  }
>  
>  static void



More information about the Gdb-patches mailing list