From: Thomas Geymayer Date: Sat, 19 Oct 2013 23:26:32 +0000 (+0200) Subject: Trigger segfault/stacktrace to trace memory corruption. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=e4b8e1ea070926f088cca9d6502ace36b5fe782c;p=flightgear.git Trigger segfault/stacktrace to trace memory corruption. Catch OSG error message if osg::Reference derived class is deleted with non-zero reference count and trigger a segfault to get a stack trace. --- diff --git a/src/Viewer/fg_os_osgviewer.cxx b/src/Viewer/fg_os_osgviewer.cxx index ffe10c0e0..9a73847dc 100644 --- a/src/Viewer/fg_os_osgviewer.cxx +++ b/src/Viewer/fg_os_osgviewer.cxx @@ -190,6 +190,15 @@ public: virtual void notify(osg::NotifySeverity severity, const char *message) { SG_LOG(SG_GL, translateSeverity(severity), message); + + // Detect whether a osg::Reference derived object is deleted with a non-zero + // reference count. In this case trigger a segfault to get a stack trace. + if( strstr(message, "the final reference count was") ) + { + + int* trigger_segfault = 0; + *trigger_segfault = 0; + } } private: