#include "stacktrace.hpp" #include #include // #include #include #include #ifdef HAVE_STACKTRACE_H #include // private prototypes void _tokenize(const string& str, vector& tokens, const string& delimiters = " "); // implementation string stacktrace() { /* based on article described here: http://www.linuxjournal.com/article/6391 Stack Backtracing Inside Your Program Aug 11, 2003 By Gianluca Insolvibile Linux Journal */ void *trace[16]; char **messages = (char **)NULL; int i, trace_size = 0; // int status; stringstream s; trace_size = backtrace(trace, 16); messages = backtrace_symbols(trace, trace_size); s << endl << "[bt] Execution path:" << endl; for (i=0; i "); } #endif