X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fsig-monitor.c;h=fbc5b1fb503dc918cb0517669394bf6a16205238;hb=017a0f3080978c1de1c1ed2342c10878be1614aa;hp=fdaf8c09d642dc0ec9244e42c52e456523ec6498;hpb=9944b380d1324a4c688f03bd10705b746b176101;p=src%2Fapp-framework-binder.git diff --git a/src/sig-monitor.c b/src/sig-monitor.c index fdaf8c09..fbc5b1fb 100644 --- a/src/sig-monitor.c +++ b/src/sig-monitor.c @@ -130,6 +130,8 @@ static inline void timeout_delete() static void on_signal_terminate (int signum) { ERROR("Terminating signal %d received: %s", signum, strsignal(signum)); + if (signum == SIGABRT) + dumpstack(3); exit(1); } @@ -171,8 +173,8 @@ static int install(void (*handler)(int), int *signals) int sig_monitor_init() { - static int sigerr[] = { SIG_FOR_TIMER, SIGSEGV, SIGFPE, 0 }; - static int sigterm[] = { SIGINT, SIGABRT, 0 }; + static int sigerr[] = { SIG_FOR_TIMER, SIGSEGV, SIGFPE, SIGILL, SIGBUS, 0 }; + static int sigterm[] = { SIGINT, SIGABRT, SIGTERM, 0 }; return (install(on_signal_error, sigerr) & install(on_signal_terminate, sigterm)) - 1; }