From e091c2e8173343c5ab8833a700bf4c6f4d15a5d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Sun, 29 Aug 2021 01:53:12 +0200 Subject: Add an option to abort when a panic alert occurs Prompted by https://dolphin.ci/#/builders/24/builds/985 A 1-character typo in a recent PR caused FifoCI builds to break horribly and spew millions of panic alerts until buildbot crashed. This PR adds a new config option -- defaulting to off -- that allows Dolphin to abort early on when a panic alert occurs instead of continuing forever. --- Source/Core/Common/MsgHandler.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Source/Core/Common/MsgHandler.cpp') diff --git a/Source/Core/Common/MsgHandler.cpp b/Source/Core/Common/MsgHandler.cpp index fa7d246a9d..2cdccd59b7 100644 --- a/Source/Core/Common/MsgHandler.cpp +++ b/Source/Core/Common/MsgHandler.cpp @@ -4,6 +4,7 @@ #include "Common/MsgHandler.h" #include +#include #include #ifdef _WIN32 @@ -51,6 +52,7 @@ std::string DefaultStringTranslator(const char* text) MsgAlertHandler s_msg_handler = DefaultMsgHandler; StringTranslator s_str_translator = DefaultStringTranslator; bool s_alert_enabled = true; +bool s_abort_on_panic_alert = false; const char* GetCaption(MsgType style) { @@ -94,6 +96,11 @@ void SetEnableAlert(bool enable) s_alert_enabled = enable; } +void SetAbortOnPanicAlert(bool should_abort) +{ + s_abort_on_panic_alert = should_abort; +} + std::string GetStringT(const char* string) { return s_str_translator(string); @@ -114,6 +121,12 @@ bool MsgAlert(bool yes_no, MsgType style, const char* format, ...) ERROR_LOG_FMT(MASTER_LOG, "{}: {}", caption, buffer); + // Panic alerts. + if (style == MsgType::Warning && s_abort_on_panic_alert) + { + std::abort(); + } + // Don't ignore questions, especially AskYesNo, PanicYesNo could be ignored if (s_msg_handler != nullptr && (s_alert_enabled || style == MsgType::Question || style == MsgType::Critical)) -- cgit v1.2.3