Skip site navigation (1)Skip section navigation (2)
Date:      18 Jul 1999 21:27:18 +0200
From:      Dag-Erling Smorgrav <des@flood.ping.uio.no>
To:        Alfred Perlstein <bright@rush.net>
Cc:        Dag-Erling Smorgrav <des@flood.ping.uio.no>, hackers@FreeBSD.ORG
Subject:   Re: Determining the return address
Message-ID:  <xzpvhbhn4h5.fsf@flood.ping.uio.no>
In-Reply-To: Alfred Perlstein's message of "Sun, 18 Jul 1999 14:13:02 -0500 (EST)"
References:  <Pine.BSF.3.96.990718140958.14320g-100000@cygnus.rush.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Alfred Perlstein <bright@rush.net> writes:
> On 18 Jul 1999, Dag-Erling Smorgrav wrote:
> > Alfred Perlstein <bright@rush.net> writes:
> > >                                                  I doubt this is
> > > at all portable and may fail because of optimizations and ABI, such
> > > as archs that store the return address in a register...
> > I know - I don't expect it to be portable.
> *slap* :)

It's #ifdef'ed so you can drop it on platforms where it doesn't work :)

> > > gdb and glibc have some functions to assist in runtime backtraces,
> > > perhaps a look there may help?
> > I found out about __builtin_return_address(0).
> what is that? a function? available on freebsd?

GCC builtin function.

> by setting an alternate signal stack i think you can check
> if you are in a signal using this.  this may not be the best way
> but it seems like a viable solution.

Hmm, I ended up using a global variable which I increment at the
beginning of the signal handler, and decrement at the end.

DES
-- 
Dag-Erling Smorgrav - des@flood.ping.uio.no


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzpvhbhn4h5.fsf>