From 9a9b211ebb47c4e781933fefe2faab8ff32bc7cf Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sun, 11 Jun 2023 17:27:09 +0200 Subject: [PATCH] fix: Crash backups not getting saved when when an exception is thrown --- main/source/crash_handlers.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/main/source/crash_handlers.cpp b/main/source/crash_handlers.cpp index 8b435d8dc..9effc25ad 100644 --- a/main/source/crash_handlers.cpp +++ b/main/source/crash_handlers.cpp @@ -55,14 +55,14 @@ namespace hex::crash { static void signalHandler(int signalNumber, const std::string &signalName) { log::fatal("Terminating with signal '{}' ({})", signalName, signalNumber); - // Trigger the crash callback - crashCallback(hex::format("Received signal '{}' ({})", signalName, signalNumber)); - // Trigger an event so that plugins can handle crashes // It may affect things (like the project path), // so we do this after saving the crash file EventManager::post(signalNumber); + // Trigger the crash callback + crashCallback(hex::format("Received signal '{}' ({})", signalName, signalNumber)); + // Detect if the crash was due to an uncaught exception if (std::uncaught_exceptions() > 0) { log::fatal("Uncaught exception thrown!"); @@ -113,6 +113,8 @@ namespace hex::crash { ); log::fatal("Program terminated with uncaught exception: {}", exceptionStr); + EventManager::post(0); + // Handle crash callback crashCallback(hex::format("Uncaught exception: {}", exceptionStr));