27 {
28 std::stringstream os;
29
30#ifdef _WIN32
31
32
33 os << boost::stacktrace::stacktrace();
34#else
35 os << "stack trace (innermost first):" << std::endl;
36 static const size_t maxTraces = 100;
37 void* array[maxTraces];
38 const size_t nTraces = backtrace(array, maxTraces);
39 char** strings = backtrace_symbols(array, static_cast<int>(nTraces));
40 for(size_t i = cutoff + 1; i < nTraces; i++)
41 {
42 os << '#' << i << " " << strings[i] << std::endl;
43 }
44 free(strings);
45#endif
46 return os.str();
47 }