]> git.lizzy.rs Git - minetest.git/blobdiff - src/debug.h
Merge pull request #29 from cisoun/master
[minetest.git] / src / debug.h
index 1973bb51062432f41d57b1af830eacaf6c177d4d..234b7c74afd4dbdd6290ea792217267f93cb0a72 100644 (file)
@@ -33,7 +33,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifdef _WIN32
        #define WIN32_LEAN_AND_MEAN
        #include <windows.h>
-       #include <eh.h>
+       #ifdef _MSC_VER
+               #include <eh.h>
+       #endif
 #else
 #endif
 
@@ -167,7 +169,10 @@ class DebugStacker
        bool m_overflowed;
 };
 
-#define DSTACK(...)\
+#define DSTACK(msg)\
+       DebugStacker __debug_stacker(msg);
+
+#define DSTACKF(...)\
        char __buf[DEBUG_STACK_TEXT_SIZE];\
        snprintf(__buf,\
                        DEBUG_STACK_TEXT_SIZE, __VA_ARGS__);\
@@ -238,18 +243,7 @@ class PacketCounter
                        assert(0);\
                }
        #ifdef _WIN32 // Windows
-
-/*class SE_Exception : public std::exception
-{
-private:
-    unsigned int nSE;
-public:
-    SE_Exception() {}
-    SE_Exception( unsigned int n ) : nSE( n ) {}
-    ~SE_Exception() {}
-    unsigned int getSeNumber() { return nSE; }
-};*/
-
+               #ifdef _MSC_VER // MSVC
 void se_trans_func(unsigned int, EXCEPTION_POINTERS*);
 
 class FatalSystemException : public BaseException
@@ -259,14 +253,18 @@ class FatalSystemException : public BaseException
                BaseException(s)
        {}
 };
-
-               #define BEGIN_DEBUG_EXCEPTION_HANDLER \
-                       BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER\
-                       _set_se_translator(se_trans_func);
-
-               #define END_DEBUG_EXCEPTION_HANDLER \
-                       END_PORTABLE_DEBUG_EXCEPTION_HANDLER
-
+                       #define BEGIN_DEBUG_EXCEPTION_HANDLER \
+                               BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER\
+                               _set_se_translator(se_trans_func);
+
+                       #define END_DEBUG_EXCEPTION_HANDLER \
+                               END_PORTABLE_DEBUG_EXCEPTION_HANDLER
+               #else // Probably mingw
+                       #define BEGIN_DEBUG_EXCEPTION_HANDLER\
+                               BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER
+                       #define END_DEBUG_EXCEPTION_HANDLER\
+                               END_PORTABLE_DEBUG_EXCEPTION_HANDLER
+               #endif
        #else // Posix
                #define BEGIN_DEBUG_EXCEPTION_HANDLER\
                        BEGIN_PORTABLE_DEBUG_EXCEPTION_HANDLER