From: Dima K. <no...@di...> - 2014-01-16 09:18:57
|
Hi. Earlier today I was debugging a segfault in notion (caused by me, it turns out), and it appeared that notion makes it more difficult to debug these than it should be. When a fatal signal such as SIGSEGV is received, it is handled by fatal_signal_handler() in libmainloop/signal.c That function simply prints out a message, disables the handler, and re-sends the signal. This does nothing useful (process is killed by the same signal anyway), but does something harmful: the stack trace of the original segfault is replaced by the stack trace of fatal_signal_handler(). How would we feel about removing all the FATAL() handlers, and let the process die normally? The DEADLY() and IGNORE() handlers potentially do something useful, so I'm only talking about the FATAL() ones. dima |