From bf0b207a3d11f3b97968c381dd3af7cf21b375af Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 28 May 2022 23:12:22 -0500 Subject: [PATCH 1/2] what?! --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ec941547..b23a9970 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -513,6 +513,9 @@ if (USE_BACKWARD) if (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") list(APPEND DEPENDENCIES_LIBRARIES dbghelp psapi) endif() + message(STATUS "Using backward-cpp") +else() + message(STATUS "Not using backward-cpp") endif() if (BUILD_GUI) From 6afe29682d0d3687e6188b5562b9cec1df9fd148 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 28 May 2022 23:40:46 -0500 Subject: [PATCH 2/2] fudge and bread --- CMakeLists.txt | 2 +- src/backtrace.cpp | 8 ++++++++ src/main.cpp | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b23a9970..347cc872 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -509,7 +509,7 @@ endif() set(USED_SOURCES ${ENGINE_SOURCES} ${AUDIO_SOURCES} src/main.cpp) if (USE_BACKWARD) - list(APPEND USED_SOURCES src/backtrace.cpp) + list(APPEND DEPENDENCIES_DEFINES HAVE_BACKWARD) if (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") list(APPEND DEPENDENCIES_LIBRARIES dbghelp psapi) endif() diff --git a/src/backtrace.cpp b/src/backtrace.cpp index 68a648ff..402cb647 100644 --- a/src/backtrace.cpp +++ b/src/backtrace.cpp @@ -39,4 +39,12 @@ namespace backward { backward::SignalHandling sh; +void checkInitialized() { + if (!sh.loaded()) { +#ifdef _WIN32 + MessageBox(NULL,"Warning","crash backtrace not available!",MB_OK|MB_ICONWARNING); +#endif + } +} + } // namespace backward diff --git a/src/main.cpp b/src/main.cpp index 07905852..995fa6f0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -39,6 +39,10 @@ #include "gui/gui.h" #endif +#ifdef HAVE_BACKWARD +#include "../extern/backward/backward.hpp" +#endif + DivEngine e; #ifdef HAVE_GUI @@ -242,6 +246,7 @@ void initParams() { // TODO: CoInitializeEx on Windows? // TODO: add crash log int main(int argc, char** argv) { + backward::SignalHandling sh; initLog(); #if !(defined(__APPLE__) || defined(_WIN32) || defined(ANDROID)) // workaround for Wayland HiDPI issue @@ -301,6 +306,12 @@ int main(int argc, char** argv) { } } + if (!sh.loaded()) { +#ifdef _WIN32 + MessageBox(NULL,"Warning","crash backtrace not available!",MB_OK|MB_ICONWARNING); +#endif + } + e.setConsoleMode(consoleMode); #ifdef _WIN32