mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-27 15:32:10 +08:00
Joshua Peraza
c4cc4e6ac9
android: initialize signal dispositions
Bionic installs signal handlers which request crash dumps from Android's debuggerd, but there are errors in how signals which aren't automatically re-raised are handled on Marshmallow (API 23). Before requesting a dump, Bionic acquires a lock to communicate with debuggerd and expecting imminent death, never releases it. While handling the dump request, debuggerd allows the dying process to continue before ptrace-detaching it. So, when Bionic manually re-raises a signal, it is intercepted by debuggerd and the dying process is allowed to live. Bionic restores SIG_DFL for the signal it's just handled, but if a different crash signal is later recieved, Bionic attempts to reacquire the lock to communicate with debuggerd and blocks forever. Disable Bionic's signal handlers for these signals on Marshmallow. Bug: chromium:1050178 Change-Id: Ia1fc5a24161a95931684d092ba8fee2f0dfbbdbb Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2134513 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%