From 4262be0b934530ceeaa6e168e65ddd056af40f9c Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Wed, 31 Dec 2014 00:11:57 +0200 Subject: [PATCH] Exit immediately on double fault --- src/core/misc.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/core/misc.cpp b/src/core/misc.cpp index 2454edbe..b4f88725 100644 --- a/src/core/misc.cpp +++ b/src/core/misc.cpp @@ -40,9 +40,16 @@ namespace { bool reached_main_flag; + bool crashing = false; void fatal_signal_handler(int sig) { + if(crashing) { + write(2, "Double fault, exiting!\n", 23); + signal(sig, SIG_DFL); + raise(sig); + } + crashing = true; write(2, "Caught fatal signal!\n", 21); if(lsnes_instance.mlogic) emerg_save_movie(lsnes_instance.mlogic->get_mfile(), lsnes_instance.mlogic->get_rrdata()); @@ -52,6 +59,11 @@ namespace void terminate_handler() { + if(crashing) { + write(2, "Double fault, exiting!\n", 23); + exit(1); + } + crashing = true; write(2, "Terminating abnormally!\n", 24); if(lsnes_instance.mlogic) emerg_save_movie(lsnes_instance.mlogic->get_mfile(), lsnes_instance.mlogic->get_rrdata());