/*
- * $Id$
- *
* author: David Frascone
*
- * eCrash Implementation
+ * eCrash Implementation
*
- * eCrash will allow you to capture stack traces in the
- * event of a crash, and write those traces to disk, stdout,
- * or any other file handle.
+ * eCrash will allow you to capture stack traces in the
+ * event of a crash, and write those traces to disk, stdout,
+ * or any other file handle.
*
- * modified to integrate closer into citadel by Wilfried Goesgens
+ * modified to integrate closer into citadel by Wilfried Goesgens
*
* vim: ts=4
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
+ * This program is open source software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "sysdep.h"
#include "citserver.h"
#include "ecrash.h"
-#define NIY() printf("%s: Not Implemented Yet!\n", __FUNCTION__)
+#define NIY() printf("function not implemented yet!\n");
#ifdef HAVE_BACKTRACE
#include <execinfo.h>
static eCrashParameters gbl_params;
static void *stack_frames[50];
static size_t size, NThread;
static char **strings;
-static char StaticBuf[SIZ];
/*
* Private structures for our thread list
va_start(ap, format);
- if (enable_syslog)
- {
- snprintf (StaticBuf, SIZ, format, ap);
- syslog( LOG_CRIT|LOG_NDELAY|LOG_MAIL, StaticBuf);
- }
- else
- CtdlLogPrintf(CTDL_EMERG, format, ap);
-
+ vsyslog(LOG_CRIT|LOG_NDELAY|LOG_MAIL, format, ap);
} // outputPrintf
{
size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
- if (enable_syslog)
- for (NThread = 0; NThread < size; NThread++)
- {
- snprintf (StaticBuf, SIZ, "RAW: %p ", stack_frames[NThread]);
- syslog( LOG_CRIT|LOG_NDELAY|LOG_MAIL, StaticBuf);
- }
- else
- for (NThread = 0; NThread < size; NThread++)
- CtdlLogPrintf(1, "RAW: %p\n", stack_frames[NThread]);
+ for (NThread = 0; NThread < size; NThread++)
+ {
+ syslog(LOG_CRIT|LOG_NDELAY|LOG_MAIL, "RAW: %p ", stack_frames[NThread]);
+ }
strings = backtrace_symbols(stack_frames, size);
for (NThread = 0; NThread < size; NThread++) {
if (strings != NULL) {
- if (enable_syslog)
- {// vsyslogs printf compliance sucks.
- snprintf (StaticBuf, SIZ, "RAW: %p ", strings[NThread]);
- syslog( LOG_CRIT|LOG_NDELAY|LOG_MAIL, StaticBuf);
- }
- else
- CtdlLogPrintf(1, "%s\n", strings[NThread]);
+ syslog(LOG_CRIT|LOG_NDELAY|LOG_MAIL, "RAW: %p ", strings[NThread]);
}
}
} /* createGlobalBacktrace */
{
size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
- if (enable_syslog)
- for (NThread = 0; NThread < size; NThread++)
- {
- snprintf (StaticBuf, SIZ, "RAW: %p ", stack_frames[NThread]);
- syslog( LOG_CRIT|LOG_NDELAY|LOG_MAIL, StaticBuf);
- }
- else
- for (NThread = 0; NThread < size; NThread++)
- CtdlLogPrintf(1, "RAW: %p\n", stack_frames[NThread]);
+ for (NThread = 0; NThread < size; NThread++)
+ {
+ syslog(LOG_CRIT|LOG_NDELAY|LOG_MAIL, "RAW: %p ", stack_frames[NThread]);
+ }
} /* createGlobalBacktrace */
/*!