summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/os/windows/crashlog_win.cpp28
-rw-r--r--src/os/windows/win32.cpp17
-rw-r--r--src/stdafx.h10
3 files changed, 23 insertions, 32 deletions
diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp
index f97c7cfd8..f24d499dc 100644
--- a/src/os/windows/crashlog_win.cpp
+++ b/src/os/windows/crashlog_win.cpp
@@ -9,11 +9,21 @@
/** @file crashlog_win.cpp Implementation of a crashlogger for Windows */
+#if defined(WIN32_EXCEPTION_TRACKER)
+
#include "../../stdafx.h"
-#include <windows.h>
#include "win32.h"
+#include "../../core/alloc_func.hpp"
+#include "../../string_func.h"
+#include "../../gamelog.h"
+#include "../../saveload/saveload.h"
+#include "../../fileio_func.h"
+#include "../../rev.h"
+#include "../../strings_func.h"
+
+#include <windows.h>
+#include <dbghelp.h>
-#ifdef _MSC_VER
static const char *_exception_string = NULL;
void SetExceptionString(const char *s, ...)
{
@@ -26,18 +36,6 @@ void SetExceptionString(const char *s, ...)
_exception_string = strdup(buf);
}
-#endif
-
-#if defined(_MSC_VER) && !defined(WINCE)
-
-#include "../../core/alloc_func.hpp"
-#include "../../string_func.h"
-#include "../../gamelog.h"
-#include "../../saveload/saveload.h"
-#include "../../fileio_func.h"
-#include "../../rev.h"
-#include <dbghelp.h>
-#include "../../strings_func.h"
static void *_safe_esp;
static char *_crash_msg;
@@ -497,4 +495,4 @@ void Win32InitializeExceptions()
SetUnhandledExceptionFilter(ExceptionHandler);
}
-#endif /* _MSC_VER */
+#endif /* WIN32_EXCEPTION_TRACKER */
diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp
index d84af727a..985a7a343 100644
--- a/src/os/windows/win32.cpp
+++ b/src/os/windows/win32.cpp
@@ -73,8 +73,8 @@ void ShowOSErrorBox(const char *buf, bool system)
MyShowCursor(true);
MessageBox(GetActiveWindow(), MB_TO_WIDE(buf), _T("Error!"), MB_ICONSTOP);
-/* if exception tracker is enabled, we crash here to let the exception handler handle it. */
-#if defined(WIN32_EXCEPTION_TRACKER) && !defined(_DEBUG)
+ /* If exception tracker is enabled, we crash here to let the exception handler handle it. */
+#if defined(WIN32_EXCEPTION_TRACKER) && defined(NDEBUG)
if (system) {
SetExceptionString("%s", buf);
*(byte*)0 = 0;
@@ -383,20 +383,11 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
argc = ParseCommandLine(cmdline, argv, lengthof(argv));
#if defined(WIN32_EXCEPTION_TRACKER)
- extern void Win32InitializeExceptions();
+ void Win32InitializeExceptions();
Win32InitializeExceptions();
#endif
-#if defined(WIN32_EXCEPTION_TRACKER_DEBUG)
- _try {
- LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep);
-#endif
- ttd_main(argc, argv);
-
-#if defined(WIN32_EXCEPTION_TRACKER_DEBUG)
- } _except (ExceptionHandler(_exception_info())) {}
-#endif
-
+ ttd_main(argc, argv);
return 0;
}
diff --git a/src/stdafx.h b/src/stdafx.h
index abc9b684b..bd9caf0fa 100644
--- a/src/stdafx.h
+++ b/src/stdafx.h
@@ -229,11 +229,13 @@
#define strncasecmp strnicmp
#endif
- void SetExceptionString(const char *s, ...) WARN_FORMAT(1, 2);
- #if defined(NDEBUG) && defined(WITH_ASSERT)
- #undef assert
- #define assert(expression) if (!(expression)) { SetExceptionString("Assertion failed at %s:%d: %s", __FILE__, __LINE__, #expression); *(byte*)0 = 0; }
+ #if defined(WIN32_EXCEPTION_TRACKER)
+ void SetExceptionString(const char *s, ...) WARN_FORMAT(1, 2);
+ #if defined(NDEBUG) && defined(WITH_ASSERT)
+ #undef assert
+ #define assert(expression) if (!(expression)) { SetExceptionString("Assertion failed at %s:%d: %s", __FILE__, __LINE__, #expression); *(byte*)0 = 0; }
+ #endif
#endif
/* MSVC doesn't have these :( */