__builtin_return_address question

Andrew Haley aph@cambridge.redhat.com
Wed Aug 21 07:22:00 GMT 2002


Neal D. Becker writes:
 > I'm trying to make a stack trace function.  Use of
 > __builtin_return_address looks promising, but the arg has to be a
 > constant expression.  Because the arg can't be a variable, I don't see
 > how I can traceback more than one level of the stack.  Any ideas?

It depends on the architecture.  With some ABIs unwinding is trivial
pointer chasing, but with others it can be very difficult.  See
backtrace() in the glibc source.

For IA-64 see
http://sources.redhat.com/ml/libc-hacker/2002-01/msg00034.html .  This
is the way of the future...

Andrew.



More information about the Gcc mailing list