src/lib/cheapcgi.c 1.122
1.122 2009/06/03 00:34:11 markd
added option to generate stack dumps when browser errors occur
Index: src/lib/cheapcgi.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/cheapcgi.c,v
retrieving revision 1.121
retrieving revision 1.122
diff -b -B -U 4 -r1.121 -r1.122
--- src/lib/cheapcgi.c 5 May 2009 23:35:07 -0000 1.121
+++ src/lib/cheapcgi.c 3 Jun 2009 00:34:11 -0000 1.122
@@ -511,8 +511,9 @@
return ok;
}
+static boolean dumpStackOnSignal = FALSE; // should a stack dump be generated?
static void catchSignal(int sigNum)
/* handler for various terminal signals for logging purposes */
{
@@ -533,20 +534,24 @@
break;
}
logCgiToStderr();
fprintf(stderr, "Received signal %s\n", sig);
+ if (dumpStackOnSignal)
+ dumpStack("Stack for signal %s\n", sig);
raise(SIGKILL);
}
-void initSigHandlers()
-/* set handler for various terminal signals for logging purposes */
+void initSigHandlers(boolean dumpStack)
+/* set handler for various terminal signals for logging purposes.
+ * if dumpStack is TRUE, attempt to dump the stack. */
{
if (cgiIsOnWeb())
{
signal(SIGABRT, catchSignal);
signal(SIGSEGV, catchSignal);
signal(SIGFPE, catchSignal);
signal(SIGBUS, catchSignal);
+ dumpStackOnSignal = dumpStack;
}
}