summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2018-09-05 22:46:19 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2018-09-05 22:46:19 +0000
commiteed7437a9290dbee98da9fee6e41eb44389e9177 (patch)
tree190932286e19184875a658f5a4809a5d08f43d99 /lib
parent5d9beaaf6bfbe548408a66514cc9ffdeecd5d04e (diff)
downloadcompiler-rt-eed7437a9290dbee98da9fee6e41eb44389e9177.tar.gz
[hwasan] Don't handle signals on Android.
Sigtrap is used for error reporting, but all other signals are better left for the platform. In particular, sanitizer signal handlers do not dump registers or memory which makes debugging harder for no good reason. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@341500 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/hwasan/hwasan.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/hwasan/hwasan.cc b/lib/hwasan/hwasan.cc
index ed9d3f72b..37be710b2 100644
--- a/lib/hwasan/hwasan.cc
+++ b/lib/hwasan/hwasan.cc
@@ -87,7 +87,18 @@ static void InitializeFlags() {
cf.check_printf = false;
cf.intercept_tls_get_addr = true;
cf.exitcode = 99;
+ // Sigtrap is used in error reporting.
cf.handle_sigtrap = kHandleSignalExclusive;
+
+#if SANITIZER_ANDROID
+ // Let platform handle other signals. It is better at reporting them then we
+ // are.
+ cf.handle_segv = kHandleSignalNo;
+ cf.handle_sigbus = kHandleSignalNo;
+ cf.handle_abort = kHandleSignalNo;
+ cf.handle_sigill = kHandleSignalNo;
+ cf.handle_sigfpe = kHandleSignalNo;
+#endif
OverrideCommonFlags(cf);
}