add: ns_signal(SIGILL, FatalSignalHandler); ns_signal(SIGTRAP, FatalSignalHandler); ns_signal(SIGBUS, FatalSignalHandler); ns_signal(SIGSEGV, FatalSignalHandler); ns_signal(SIGFPE, FatalSignalHandler);
context: NsBlockSignals(int debug){    sigset_t set;    /*     * Block SIGHUP, SIGPIPE, SIGTERM, and SIGINT. This mask is     * inherited by all subsequent threads so that only this     * thread will catch the signals in the sigwait() loop below.     * Unfortunately this makes it impossible to kill the     * server with a signal other than SIGKILL until startup     * is complete.     */    debugMode = debug;    sigemptyset(&set);    sigaddset(&set, SIGPIPE);    sigaddset(&set, SIGTERM);    sigaddset(&set, SIGHUP);    if (!debugMode) {        /* NB: Don't block SIGINT in debug mode for Solaris dbx. */        sigaddset(&set, SIGINT);    }    ns_sigmask(SIG_BLOCK, &set, NULL);}