On Aug 22, 2008, at 9:53 AM, Rohitash wrote:
I was exploring of some interfaces in Mac OS X if present , which
might help me get a call backtrace which I want to record for some
specific internal exception conditions . If some kind of unwind
library is already available for use , that would really help
simplify my task .
I am not sure if the BSD library backtrace() and friends should be
able to help me walk through all the stack frames and provide me with
the arguments , parameters and the translated
PC ( to symbolic names ) at any point I want to get a trace the call
stack.
I was reading the man page of atos and it seemed like I can take some
help from its source code.Also , there seems to be a call stack
generated in "/Library/Logs/CrashReporter/" for any application level
crashes, if I am not wronged in assuming.This makes me assume that
the basic infrastructure already exists to dump the information , and
maybe I should be on my way if I can use them for my purpose instead
of writing it from scratch.
The supported method is currently to use backtrace() and then call out
to the atos utility. This doesn't provide arguments. The source for
atos is not available, as far as I know. Several other Apple tools
gather stack traces from processes (sample, Shark, dtrace, various
Instruments, etc.) but they rely on frameworks which are private to
Apple.
The source for gdb is public. I'm told it's not pretty, but have
never really looked for myself.
Cheers,
Ken