Alfred Perlstein <bri...@rush.net> writes: > This looks like what you are doing is trying to grab the data on the > stack before "log" which is the return address.
Yes. It actually works :) > 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. > 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). > > BTW, is dladdr() signal-safe? > not according to the sigaction man page. OK, is there any way I can find out that I am being called from a signal handler, other than using a global variable? I want my logging functions to be signal-safe - that's why I use writev(), and I've gone to great lengths to ensure that log_makedate() (which uses localtime_r() and strftime() to build a date string) and lvformat() (a printf() clone with some additional goodies) are signal-safe. DES -- Dag-Erling Smorgrav - d...@flood.ping.uio.no To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message