From a3cfc7f008ccf199e9fc71037ad0b5dfc9ab04f3 Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Mon, 24 Jul 2023 21:33:23 +0100 Subject: [PATCH] Update POSIXProcessControl.cpp --- .../platformPOSIX/POSIXProcessControl.cpp | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/Engine/source/platformPOSIX/POSIXProcessControl.cpp b/Engine/source/platformPOSIX/POSIXProcessControl.cpp index dd2630f50..08e889aef 100644 --- a/Engine/source/platformPOSIX/POSIXProcessControl.cpp +++ b/Engine/source/platformPOSIX/POSIXProcessControl.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include "console/engineAPI.h" #include "core/util/journal/process.h" #ifndef TORQUE_DEDICATED @@ -59,21 +60,15 @@ static void CheckExitCode(S64 exitCode) //----------------------------------------------------------------------------- static void SignalHandler(int sigtype) { - if (sigtype == SIGSEGV || sigtype == SIGTRAP) - { - signal(SIGSEGV, SIG_DFL); - signal(SIGTRAP, SIG_DFL); - // restore the signal handling to default so that we don't get into - // a crash loop with ImmediateShutdown - ImmediateShutdown(-sigtype, sigtype); - } - else - { - signal(sigtype, SIG_DFL); - dPrintf("Unknown signal caught by SignalHandler: %d\n", sigtype); - // exit to be safe - ImmediateShutdown(1); - } + void* array[10]; + size_t size; + + size = backtrace(array, 10); + + dPrintf("Error: signal: % d\n", sigtype); + backtrace_symbols_fd(array, size, STDERR_FILENO); + // exit to be safe + ImmediateShutdown(1); } //-----------------------------------------------------------------------------