tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp
changeset 22 79de32ba3296
parent 18 2f34d5167611
--- a/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp	Mon May 03 13:17:34 2010 +0300
+++ b/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp	Fri May 14 16:40:13 2010 +0300
@@ -43,6 +43,7 @@
 #include <QtTest/QtTest>
 
 #include <stddef.h>
+#include <exception>
 
 QT_USE_NAMESPACE
 
@@ -285,8 +286,26 @@
     allocFailer.reactivateAt(currentIndex);
 }
 
+typedef void (*PVF)();
+PVF defaultTerminate;
+void debugTerminate()
+{
+    // you can detect uncaught exceptions with a breakpoint in here
+    (*defaultTerminate)();
+}
+
+PVF defaultUnexpected;
+void debugUnexpected()
+{
+    // you can detect unexpected exceptions with a breakpoint in here
+    (*defaultUnexpected)();
+}
+
 void tst_ExceptionSafetyObjects::initTestCase()
 {
+    // set handlers for bad exception cases, you might want to step in and breakpoint the default handlers too
+    defaultTerminate = std::set_terminate(&debugTerminate);
+    defaultUnexpected = std::set_unexpected(&debugUnexpected);
     testMessageHandler = qInstallMsgHandler(safeMessageHandler);
 
     QVERIFY(AllocFailer::initialize());