x86_64 unwinder in libgcc_s

Dmitri Shubin sbn@tbricks.com
Tue Aug 7 08:09:00 GMT 2012


On 06.08.2012 21:13, Richard Henderson wrote:
> On 08/06/2012 08:23 AM, Dmitri Shubin wrote:
>>      char *cfa = (char *) _Unwind_GetCFA(ctx);
>>      printf("cfa = %p\nra = %p\n", cfa, *(void **)(cfa - 8));
> Use _Unwind_GetIP here, for one.
In fact I'm not interested in IP or RA here, I need some context stored 
by assembly routine on the stack relative to its CFA.
I use RA only to illustrate that I got "wrong" (from my pov) CFA from 
libgcc unwinder.
And the question is is it a bug (or deviation from x86-64 psABI) in 
libgcc or I misunderstand what CFA is.



More information about the Gcc mailing list