diff options
author | Bernard Normier <bernard@zeroc.com> | 2016-05-04 19:22:53 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2016-05-04 19:22:53 +0000 |
commit | d557df5f678da3bfc0f988e40dd581e4998c95f4 (patch) | |
tree | d3f9139bf09f63212c69edeb8d326300368a5b9b /cpp/src/IceUtil/Exception.cpp | |
parent | Added missing Makefile.mk for php (diff) | |
download | ice-d557df5f678da3bfc0f988e40dd581e4998c95f4.tar.bz2 ice-d557df5f678da3bfc0f988e40dd581e4998c95f4.tar.xz ice-d557df5f678da3bfc0f988e40dd581e4998c95f4.zip |
Fix for static builds
Diffstat (limited to 'cpp/src/IceUtil/Exception.cpp')
-rw-r--r-- | cpp/src/IceUtil/Exception.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/cpp/src/IceUtil/Exception.cpp b/cpp/src/IceUtil/Exception.cpp index 27af47fdba7..127a254ffb8 100644 --- a/cpp/src/IceUtil/Exception.cpp +++ b/cpp/src/IceUtil/Exception.cpp @@ -97,6 +97,13 @@ HANDLE process = 0; #ifdef ICE_LIBBACKTRACE backtrace_state* bstate = 0; + +void +ignoreErrorCallback(void*, const char* msg, int errnum) +{ + // cerr << "Error callback:" << msg << ", errnum = " << errnum << endl; +} + #endif class Init @@ -109,7 +116,7 @@ public: #ifdef ICE_LIBBACKTRACE // Leaked, as libbacktrace does not provide an API to free // this state - bstate = backtrace_create_state(0, 1, 0, 0); + bstate = backtrace_create_state(0, 1, ignoreErrorCallback, 0); #endif } @@ -260,6 +267,7 @@ printFrame(void* data, uintptr_t pc, const char* filename, int lineno, const cha #endif #ifdef ICE_LIBBACKTRACE + int addFrame(void* sf, uintptr_t pc) { @@ -298,7 +306,7 @@ getStackFrames() stackFrames.resize(frameCount); #elif defined(ICE_LIBBACKTRACE) - backtrace_simple(bstate, 1, addFrame, 0, &stackFrames); + backtrace_simple(bstate, 1, addFrame, ignoreErrorCallback, &stackFrames); #elif defined(ICE_BACKTRACE) @@ -488,7 +496,8 @@ getStackTrace(const vector<void*>& stackFrames) } # if defined(ICE_LIBBACKTRACE) - if(backtrace_pcinfo(bstate, reinterpret_cast<uintptr_t>(*p), printFrame, 0, &frameInfo) != 0) + if(backtrace_pcinfo(bstate, reinterpret_cast<uintptr_t>(*p), printFrame, + ignoreErrorCallback, &frameInfo) != 0) { # if defined(ICE_BACKTRACE) if(!backtraceStringsInitialized) |