X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Flog.cpp;h=88c47b70ddcc8ff1cb8464c37df60277ea6770a9;hb=b716ae547424e4e4bbda86781a151c31e3a64e67;hp=3af4aca723c0607004bc8c25576e07cb37ade84a;hpb=42737c4c096f6469fb27e261806b48338a8f672f;p=ipdf%2Fcode.git diff --git a/src/log.cpp b/src/log.cpp index 3af4aca..88c47b7 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -10,6 +10,9 @@ #include #include #include +#ifndef __MINGW32__ +#include +#endif #ifdef LOG_SYSLOG @@ -117,7 +120,6 @@ void FatalEx(const char * funct, const char * file, int line, ...) // Fatal error in the Fatal function. // (This really shouldn't happen unless someone does something insanely stupid) Fatal("Format string is NULL"); - return; // Should never get here } vsnprintf(buffer, BUFSIZ, fmt,va); @@ -139,3 +141,17 @@ void FatalEx(const char * funct, const char * file, int line, ...) } +/** + * Print a backtrace + */ +void Backtrace(int size) +{ + #ifndef __MINGW32__ + void * buffer[100]; + int actual_size = backtrace(buffer, size); + backtrace_symbols_fd(buffer, actual_size, fileno(stderr)); + #else + Error("Backtrace not supported by compiler"); + #endif +} +