Index: base/process_util_posix.cc |
diff --git a/base/process_util_posix.cc b/base/process_util_posix.cc |
index 17a461d90db88481e5a5b6c6970a808f40d9dd0d..2d65fad7a90d590f9b2123a66b31471f7690608e 100644 |
--- a/base/process_util_posix.cc |
+++ b/base/process_util_posix.cc |
@@ -102,6 +102,7 @@ int WaitpidWithTimeout(ProcessHandle handle, int64 wait_milliseconds, |
} |
void StackDumpSignalHandler(int signal) { |
+ LOG(ERROR) << "Received signal " << signal; |
StackTrace().PrintBacktrace(); |
_exit(1); |
} |
@@ -592,11 +593,13 @@ bool EnableInProcessStackDumping() { |
sigemptyset(&action.sa_mask); |
bool success = (sigaction(SIGPIPE, &action, NULL) == 0); |
- // TODO(phajdan.jr): Catch other crashy signals, like SIGABRT. |
- success &= (signal(SIGSEGV, &StackDumpSignalHandler) != SIG_ERR); |
success &= (signal(SIGILL, &StackDumpSignalHandler) != SIG_ERR); |
- success &= (signal(SIGBUS, &StackDumpSignalHandler) != SIG_ERR); |
+ success &= (signal(SIGABRT, &StackDumpSignalHandler) != SIG_ERR); |
success &= (signal(SIGFPE, &StackDumpSignalHandler) != SIG_ERR); |
+ success &= (signal(SIGBUS, &StackDumpSignalHandler) != SIG_ERR); |
+ success &= (signal(SIGSEGV, &StackDumpSignalHandler) != SIG_ERR); |
+ success &= (signal(SIGSYS, &StackDumpSignalHandler) != SIG_ERR); |
+ |
return success; |
} |