Hi, On Sun, Mar 13, 2005 at 03:01:00PM +0200, Kai Henningsen wrote: > Most of the rest of the error handling in this project is concerned with > the absence of the feature I loved in the IBM PL/I compilers under the > name "SNAP;" - putting out a stack backtrace (the usual idiom for abort() > was "SNAP; STOP;" IIRC). Now *that* would be a useful feature to have.
It is there: __builtin_return_address(n)
I have a small example of how to use that on my homepage:
http://www.clifford.at/cfun/elfstuff/backtrace.c
This example is using the ELF dladdr() function - so it can only resolve
symbols in a .so file - not in the main program. (I think it works if the
main program is compiled with -rdynamic - but I didn't check that).
I hope that helps.
yours,
- clifford
--
_________ ____ __ __ $_ = q 7nz!y="Ccv'Dpgiutvcbb'oj'Pocj'*'qqq[
/ ___/ __ \/ __ `/ | /| / / ej`q[iv`";!|=1;!y=~t%].[%nz!z=!1;gps]1..6[{
/ /__/ / / / /_/ /| |/ |/ / qsjou"!z\c";tfmfdu]voefg,voefg,voefg,0.05[;
\___/_/ /_/\__, / |__/|__/ !z=~t/].[/dis]pse]!1[^!_[/fh;}qsjou !z;%fh;
CCC Wien /____/www.cngw.org qsjou "\o"7;s/\n//g;y/[b-za]!/)a-z($/;eval;
Unix is the answer, but only if you phrase the question very carefully.
pgpWZjTpDIdF3.pgp
Description: PGP signature
