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));