static void die_signal_handler(int signum, siginfo_t *siginfo,
void *context EXT2FS_ATTR((unused)))
{
- void *stack_syms[32];
- int frames;
const char *cp;
fprintf(stderr, "Signal (%d) %s ", signum,
fprintf(stderr, "fault addr=%p", siginfo->si_addr);
fprintf(stderr, "\n");
-#ifdef HAVE_BACKTRACE
- frames = backtrace(stack_syms, 32);
- backtrace_symbols_fd(stack_syms, frames, 2);
+#if defined(HAVE_BACKTRACE) && !defined(DISABLE_BACKTRACE)
+ {
+ void *stack_syms[32];
+ int frames;
+
+ frames = backtrace(stack_syms, 32);
+ backtrace_symbols_fd(stack_syms, frames, 2);
+ }
#endif
exit(FSCK_ERROR);
}
sigaction(SIGILL, &sa, 0);
sigaction(SIGBUS, &sa, 0);
sigaction(SIGSEGV, &sa, 0);
+ sigaction(SIGABRT, &sa, 0);
}