--- deliantra/server/common/utils.C 2008/09/10 18:18:10 1.80 +++ deliantra/server/common/utils.C 2008/09/10 21:29:39 1.81 @@ -451,10 +451,17 @@ { if (!fork ()) { + fprintf (stderr, "background fork_abort in progress, remove me when debugged.\n");//D + signal (SIGINT , SIG_IGN); signal (SIGTERM, SIG_IGN); signal (SIGABRT, SIG_IGN); + signal (SIGSEGV, SIG_DFL); + signal (SIGBUS , SIG_DFL); + signal (SIGILL , SIG_DFL); + signal (SIGTRAP, SIG_DFL); + // try to put corefiles into a subdirectory, if existing, to allow // an administrator to reduce the I/O load. chdir ("cores"); @@ -471,6 +478,14 @@ close (i); } + { + sigset_t empty; + sigemptyset (&empty); + sigprocmask (SIG_SETMASK, &empty, 0); + } + + // try to coredump with SIGTRAP + kill (getpid (), SIGTRAP); abort (); }