------- Additional Comments From normbograham at yahoo dot com 2005-09-08 01:43 ------- Ed: I also have the same problem, but a little thought gives you a good work- around. First a little background. There is a function that calls main. This is the last function on the stack you can query using __builtin_return_address. If you query who calls that function you get a seg "fault" , quicker then grass through a goose. They should have called their __builtin_return_address(0) logic from there and stored the address, stopping future calls to this function from going further. This is exactly what you can do from main. (This is your workaround) Call _builtin_return_address(0) from main, store the result to a global, and you can compare against this address in the future (provided your not in an at_exit, or on_exit function call stack). Of course you've got to turn optimization off (-O0), I think or the results could be silly. Then you can query back to the main function (or one up if you wish to the boot-up routine.). Again: Dont be silly, turn off optmization (or function calls will colapse), store the result from main, and DONT call from "onexit" or "atexit" routines.
good luck. n. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8743