+int panic_fd;
+
+/**
+ * \brief print the actual stack frame.
+ */
+void cit_backtrace(void)
+{
+#ifdef HAVE_BACKTRACE
+ void *stack_frames[50];
+ size_t size, i;
+ char **strings;
+
+
+ size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
+ strings = backtrace_symbols(stack_frames, size);
+ for (i = 0; i < size; i++) {
+ if (strings != NULL)
+ CtdlLogPrintf(1, "%s\n", strings[i]);
+ else
+ CtdlLogPrintf(1, "%p\n", stack_frames[i]);
+ }
+ free(strings);
+#endif
+}
+
+/**
+ * \brief print the actual stack frame.
+ */
+void cit_panic_backtrace(int SigNum)
+{
+#ifdef HAVE_BACKTRACE
+ void *stack_frames[10];
+ size_t size, i;
+ char **strings;
+
+ printf("caught signal 11\n");
+ size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
+ strings = backtrace_symbols(stack_frames, size);
+ for (i = 0; i < size; i++) {
+ if (strings != NULL)
+ CtdlLogPrintf(1, "%s\n", strings[i]);
+ else
+ CtdlLogPrintf(1, "%p\n", stack_frames[i]);
+ }
+ free(strings);
+#endif
+ exit(-1);
+}