diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-09-05 22:46:19 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-09-05 22:46:19 +0000 |
commit | eed7437a9290dbee98da9fee6e41eb44389e9177 (patch) | |
tree | 190932286e19184875a658f5a4809a5d08f43d99 /lib | |
parent | 5d9beaaf6bfbe548408a66514cc9ffdeecd5d04e (diff) | |
download | compiler-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.cc | 11 |
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); } |