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>