47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
|
From 519a5a5f87527a344ab04efa0947d5d8e75294e5 Mon Sep 17 00:00:00 2001
|
||
|
From: Jan Engelhardt <jengelh@inai.de>
|
||
|
Date: Sun, 28 Jun 2020 12:38:40 +0200
|
||
|
Subject: [PATCH] build: allow deactivating the crash handler at build time
|
||
|
(#1166)
|
||
|
|
||
|
SLADE's own crash handler has two problems:
|
||
|
|
||
|
* it inhibits the generation of a proper crashdump
|
||
|
|
||
|
* it calls functions that not async-signal safe and/or re-entrant,
|
||
|
such as malloc (by way of backtrace(3)), which can lead to a hang
|
||
|
when the initial crash happened in malloc,
|
||
|
|
||
|
Fixes: #1166
|
||
|
---
|
||
|
COMPILE.md | 1 +
|
||
|
src/Application/SLADEWxApp.cpp | 2 +-
|
||
|
src/CMakeLists.txt | 4 ++++
|
||
|
3 files changed, 6 insertions(+), 1 deletion(-)
|
||
|
|
||
|
Index: SLADE-3.2.6/src/Application/SLADEWxApp.cpp
|
||
|
===================================================================
|
||
|
--- SLADE-3.2.6.orig/src/Application/SLADEWxApp.cpp
|
||
|
+++ SLADE-3.2.6/src/Application/SLADEWxApp.cpp
|
||
|
@@ -449,7 +449,7 @@ bool SLADEWxApp::OnInit()
|
||
|
#endif
|
||
|
|
||
|
// Handle exceptions using wxDebug stuff, but only in release mode
|
||
|
-#ifdef NDEBUG
|
||
|
+#if defined(USE_CRASHHANDLER) && defined(NDEBUG)
|
||
|
wxHandleFatalExceptions(true);
|
||
|
#endif
|
||
|
|
||
|
Index: SLADE-3.2.6/src/CMakeLists.txt
|
||
|
===================================================================
|
||
|
--- SLADE-3.2.6.orig/src/CMakeLists.txt
|
||
|
+++ SLADE-3.2.6/src/CMakeLists.txt
|
||
|
@@ -41,3 +41,7 @@ if (WIN32 AND MSVC)
|
||
|
else ()
|
||
|
include("unix") # Linux or MacOS
|
||
|
endif ()
|
||
|
+if (NOT NO_CRASHHANDLER)
|
||
|
+ add_definitions(-DUSE_CRASHHANDLER)
|
||
|
+endif ()
|
||
|
+
|