From a34c929f6f46c1c414147ecfa56c3562b2eca027 Mon Sep 17 00:00:00 2001 From: Primiano Tucci Date: Wed, 8 Jun 2016 17:04:49 +0100 Subject: [PATCH] linux/android: add SIGTRAP to the list of signals handled by the client __builtin_trap() causes a SIGTRAP on arm64 (at least with GCC 4.9). SIGTRAP is not handled by breakpad, causing crashes induced by __builtin_trap() to be missed. Note that on x86 and arm, instead, __builtin_trap() raises a SIGILL, which is already handled by breakapd. BUG=chromium:614865 R=vapier@chromium.org Review URL: https://codereview.chromium.org/2042853002 . --- src/client/linux/handler/exception_handler.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc index 148d61f9..b63f973b 100644 --- a/src/client/linux/handler/exception_handler.cc +++ b/src/client/linux/handler/exception_handler.cc @@ -118,7 +118,7 @@ namespace { // all these signals must be Core (see man 7 signal) because we rethrow the // signal after handling it and expect that it'll be fatal. const int kExceptionSignals[] = { - SIGSEGV, SIGABRT, SIGFPE, SIGILL, SIGBUS + SIGSEGV, SIGABRT, SIGFPE, SIGILL, SIGBUS, SIGTRAP }; const int kNumHandledSignals = sizeof(kExceptionSignals) / sizeof(kExceptionSignals[0]);