diff options
author | naelstrof <naelstrof@gmail.com> | 2023-09-22 19:29:53 -0600 |
---|---|---|
committer | naelstrof <naelstrof@gmail.com> | 2023-09-22 20:06:58 -0600 |
commit | b49e9c9896e131201e2cf4550f7060b767e497c0 (patch) | |
tree | 9cade97d768aa133b352786ca6f61832c9fd3118 | |
parent | c12d63556b5c1da03a00dd4c45c40e60bd8d68c2 (diff) | |
download | redot-engine-b49e9c9896e131201e2cf4550f7060b767e497c0.tar.gz |
Made signal handling more uniform. Fixes #82102
-rw-r--r-- | platform/linuxbsd/crash_handler_linuxbsd.cpp | 10 | ||||
-rw-r--r-- | platform/macos/crash_handler_macos.mm | 10 |
2 files changed, 14 insertions, 6 deletions
diff --git a/platform/linuxbsd/crash_handler_linuxbsd.cpp b/platform/linuxbsd/crash_handler_linuxbsd.cpp index 3a245460b4..fd4bcf92be 100644 --- a/platform/linuxbsd/crash_handler_linuxbsd.cpp +++ b/platform/linuxbsd/crash_handler_linuxbsd.cpp @@ -49,6 +49,10 @@ #include <stdlib.h> static void handle_crash(int sig) { + signal(SIGSEGV, SIG_DFL); + signal(SIGFPE, SIG_DFL); + signal(SIGILL, SIG_DFL); + if (OS::get_singleton() == nullptr) { abort(); } @@ -156,9 +160,9 @@ void CrashHandler::disable() { } #ifdef CRASH_HANDLER_ENABLED - signal(SIGSEGV, nullptr); - signal(SIGFPE, nullptr); - signal(SIGILL, nullptr); + signal(SIGSEGV, SIG_DFL); + signal(SIGFPE, SIG_DFL); + signal(SIGILL, SIG_DFL); #endif disabled = true; diff --git a/platform/macos/crash_handler_macos.mm b/platform/macos/crash_handler_macos.mm index 7f9a88121e..7c0cab0210 100644 --- a/platform/macos/crash_handler_macos.mm +++ b/platform/macos/crash_handler_macos.mm @@ -72,6 +72,10 @@ static uint64_t load_address() { } static void handle_crash(int sig) { + signal(SIGSEGV, SIG_DFL); + signal(SIGFPE, SIG_DFL); + signal(SIGILL, SIG_DFL); + if (OS::get_singleton() == nullptr) { abort(); } @@ -186,9 +190,9 @@ void CrashHandler::disable() { } #ifdef CRASH_HANDLER_ENABLED - signal(SIGSEGV, nullptr); - signal(SIGFPE, nullptr); - signal(SIGILL, nullptr); + signal(SIGSEGV, SIG_DFL); + signal(SIGFPE, SIG_DFL); + signal(SIGILL, SIG_DFL); #endif disabled = true; |