aboutsummaryrefslogtreecommitdiff
path: root/src/common/Debugging/WheatyExceptionReport.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-11-28 18:37:51 +0100
committerShauren <shauren.trinity@gmail.com>2016-11-28 18:37:51 +0100
commite0fb4445cd2f5f4bb94ea23122548debddc41ba6 (patch)
treea2850cbf86c3097ef99c4bc7cb3255e2b22da63c /src/common/Debugging/WheatyExceptionReport.cpp
parente43529933fbedb02c9e4b636b6e1d9d94398e5e6 (diff)
Core/Debugging: Added wheaty everywhere and modified it to always reliably report issues during static initialization
Diffstat (limited to 'src/common/Debugging/WheatyExceptionReport.cpp')
-rw-r--r--src/common/Debugging/WheatyExceptionReport.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/common/Debugging/WheatyExceptionReport.cpp b/src/common/Debugging/WheatyExceptionReport.cpp
index 72abec161b9..29d9a35af8a 100644
--- a/src/common/Debugging/WheatyExceptionReport.cpp
+++ b/src/common/Debugging/WheatyExceptionReport.cpp
@@ -50,8 +50,11 @@ inline LPTSTR ErrorMessage(DWORD dw)
//============================== Global Variables =============================
//
-// Declare the static variables of the WheatyExceptionReport class
+// Declare the static variables of the WheatyExceptionReport class and force their initialization before any other static in the program
//
+#pragma warning(push)
+#pragma warning(disable: 4073) // C4073: initializers put in library initialization area
+#pragma init_seg(lib)
TCHAR WheatyExceptionReport::m_szLogFileName[MAX_PATH];
TCHAR WheatyExceptionReport::m_szDumpFileName[MAX_PATH];
LPTOP_LEVEL_EXCEPTION_FILTER WheatyExceptionReport::m_previousFilter;
@@ -65,9 +68,9 @@ bool WheatyExceptionReport::alreadyCrashed;
std::mutex WheatyExceptionReport::alreadyCrashedLock;
WheatyExceptionReport::pRtlGetVersion WheatyExceptionReport::RtlGetVersion;
-
// Declare global instance of class
WheatyExceptionReport g_WheatyExceptionReport;
+#pragma warning(pop)
//============================== Class Methods =============================
@@ -1460,3 +1463,8 @@ char* WheatyExceptionReport::PrintSymbolDetail(char* pszCurrBuffer)
}
#endif // _WIN32
+
+void InitializeCrashHandler()
+{
+ // dummy call to make the linker not discard the compilation unit
+}