Frame lost after 'leave' and before 'ret' instruction on i386?

Aleksandar Ristovski aristovski@qnx.com
Wed Jun 4 13:12:00 GMT 2008


Any comments on this? 

Aleksandar Ristovski wrote:
> Hello,
> The patch is an attempt to solve the issue from the subject. It 
> introduces a check for in_function_epilogue_p and introduces 
> architecture level prev_register_from_epilogue.
> 
> The patch is a draft (works but is not complete).
> Rationale: Dealing with epilogue in frame unwinders needs to be done 
> only in sentinel frame (older frames will never be in epilogue).
> Comments appreciated.
> 
> 
> Thanks,
> 
> Aleksandar Ristovski
> QNX Software Systems
> 
> 
> ChangeLog (for reference only):
> 
>     * gdbarch.c, gdbarch.h: Regenerated.
>     * gdbarch.sh: Introduce gdbarch_prev_frame_from_epilogue and provide
>     default_prev_frame_from_epilogue.
>     * i386-tdep.c (i386_in_function_epilogue_p, 
>     i386_prev_register_from_epilogue): New functions.
>     (struct frame_unwind_cache): Struct definition.
>     (i386_gdbarch_init): Register i386_prev_register_from_epilogue and
>     i386_in_function_epilogue_p.
>     * sentinel-frame.c (sentinel_frame_prev_register): Check if we are
>     in epilogue and if so, call gdbarch provided prev_frame_from_epilogue.
>     If this returns NULL do as before.
> 




More information about the Gdb mailing list