mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-27 15:32:10 +08:00
Adenilson Cavalcanti
07a6b70755
Disable cause-SIGFPE test on Arm processors
The way that division operations behave have changed between Armv7 and Armv8. On the later one, divisions by zero will *not* yield an exception of any kind (for both a 32bit and 64bit app), for hardware integer divide operation. On Arm processors exceptions may also be a factor of: - if the hardware implementation supports it. - if the kernel has set the proper internal state registers/flags. - C library implementations (e.g. libgcc x clang_rt). Aside that, a division by zero is within the realm of UD (Undefined Behavior) in C/C++. Since there are two categories of tests (explicit raise x caused by instructions), it just makes sense to disable the second for Arm since there is no reliable way to cause a SIGFPE without an explicit raise() POSIX call. For x86, we keep the previous implementation idea but streamlined the code by deploying 'volatile' to ensure that the compiler won't optimize away the result of the division (i.e no need to call stat() and fstat()). Bug: chromium:919548, chromium:1184398 Change-Id: Ib0fd4bdf503dcd50149dccae0577c777488c0238 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3213431 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Commit-Queue: Mark Mentovai <mark@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
Crashpad
Crashpad is a crash-reporting system.
Documentation
- Project status
- Developing Crashpad: instructions for getting the source code, building, testing, and contributing to the project.
- Crashpad interface documentation
- Crashpad tool man pages
- Crashpad overview design
Source Code
Crashpad’s source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.
Other Links
- Bugs can be reported at the Crashpad issue tracker.
- The Crashpad bots perform automated builds and tests.
- crashpad-dev is the Crashpad developers’ mailing list.
Description
Languages
C++
92.6%
Objective-C++
2.5%
C
2%
Python
1.7%
Assembly
0.9%
Other
0.3%