
We are using sort of stack strace library in our project, and I think it would be great to have something like that in boost. Many responses talk about using build-in compiler's capabilities. IMHO they don't always help. As example, in our application we want the stack trace: 1) be always activated, even in release builds sent to the customers 2) be able to print the stack trace when exception occurs 1st is much easier using custom trace, as we don't need to compile the project with debug info. BTW, that "instrumentation" doesn't look so bad in the code, and can sometimes replace comment lines, e.g: TRACE_UPDATE_CONTEXT("processing request"); The 2nd task is more tricky, as if you don't catch the exception in same function where it occurs, but somewhere down the stack, the "normal" stack trace is lost. In our code we keep a "history" of call stacks, and can always print the whole stack. IMPLEMENTATION NOTES: 1) When exitting a function, the stack trace should be automatically notified. We did it by wrapping stack info with special class. 2) For multi-threaded application, separate stack should be kept for each thread. There need to be a way to initialize per-thread structures before using it. "Atry" <pop.atry@gmail.com> wrote in message news:f0arrv$lpp$1@sea.gmane.org...
Java programs are easy to debug, one who catch an exception can print the stack trace, and when it crash, it would print the stack, too. It is useful, so I wrote some code of stack_trace for C++, see the sample below: ...