Hello all,
I noticed that the routine request_backtrace in CarpetLib/src/backtrace.cc only sets signal handlers for some of the signals, namely:
void request_backtraces() { signal(SIGQUIT, signal_handler); signal(SIGILL, signal_handler); signal(SIGABRT, signal_handler); signal(SIGFPE, signal_handler); signal(SIGBUS, signal_handler); }
which has the unfortunate side effect that in a test run of mine on Stampede2 (2020_05 option lists, Intel MPI stack and compiler) no backtrace was generated when I triggered a SEGFAULT.
The only indication for a SEGFAULT was the error number (11) reported by MPI.
Obviously adding
signal(SIGSEGV, signal_handler);
is trivial and it does indeed give a me a backtrace.
Given the simplicity I am wondering if there was a reason whey SIGSEGV is not trapped by CarpetLib?
Yours, Roland