diff options
author | rubidium <rubidium@openttd.org> | 2009-09-03 22:32:08 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-09-03 22:32:08 +0000 |
commit | c9a1f3341885ec1738f3e164df5318ee5d838340 (patch) | |
tree | 2d051a519b5ce9d40f3e692aadeda8980503a750 | |
parent | b92143b53e0536a60e67e18c39fa2429daca2e33 (diff) | |
download | openttd-c9a1f3341885ec1738f3e164df5318ee5d838340.tar.xz |
(svn r17410) -Codechange: use the same define for determining whether windows does crash reports instead of using several that aren't necessarily equal
-rw-r--r-- | src/os/windows/crashlog_win.cpp | 28 | ||||
-rw-r--r-- | src/os/windows/win32.cpp | 17 | ||||
-rw-r--r-- | src/stdafx.h | 10 |
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 :( */ |