- syslog(LOG_DEBUG, "sysdep: caught signal %d - backtrace follows:", signum);
-
- void *bt[1024];
- int bt_size;
- char **bt_syms;
- int i;
- FILE *backtrace_fp = NULL;
-
- if (backtrace_filename != NULL) {
- backtrace_fp = fopen(backtrace_filename, "w");
- }
-
- bt_size = backtrace(bt, 1024);
- bt_syms = backtrace_symbols(bt, bt_size);
- for (i = 1; i < bt_size; i++) {
- syslog(LOG_DEBUG, "%s", bt_syms[i]);
- if (backtrace_fp) {
- fprintf(backtrace_fp, "%s\n", bt_syms[i]);
- }
- }
- free(bt_syms);
-
- if (backtrace_fp) {
- fclose(backtrace_fp);
- }
-