From b75e3c12318267be1589cee5e13a9fc89b0097b1 Mon Sep 17 00:00:00 2001 From: Eran Mizrahi Date: Sat, 9 Dec 2017 21:38:47 +0200 Subject: Collect crash dumps also for vectored exceptions --- src/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 71fbc943..40224170 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -128,6 +128,12 @@ bool isNxmLink(const QString &link) static LONG WINAPI MyUnhandledExceptionFilter(struct _EXCEPTION_POINTERS *exceptionPtrs) { + if ((exceptionPtrs->ExceptionRecord->ExceptionCode < 0x80000000) // non-critical + || (exceptionPtrs->ExceptionRecord->ExceptionCode == 0xe06d7363)) { // cpp exception + // don't report non-critical exceptions + return EXCEPTION_CONTINUE_SEARCH; + } + const std::wstring& dumpPath = OrganizerCore::crashDumpsPath(); int dumpRes = CreateMiniDump(exceptionPtrs, OrganizerCore::getGlobalCrashDumpsType(), dumpPath.c_str()); @@ -522,7 +528,7 @@ int runApplication(MOApplication &application, SingleInstance &instance, int main(int argc, char *argv[]) { - SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); + AddVectoredExceptionHandler(0, MyUnhandledExceptionFilter); MOApplication application(argc, argv); QStringList arguments = application.arguments(); -- cgit v1.3.1