Breaking:
- inproc: since we split
inprocinto signal-handler/UEF part and a separate handler thread,before_sendandon_crashcould be called from other threads than the one that crashed. While this was never part of the contract, if your code relies on this, it will no longer work. (#1446) - Android NDK:
SentryNdk.init(NdkOptions)now throws anExceptionif init fails (non-zero return code) rather than silently swallowing the error. (#1430)
Features:
- Add support for
abort()in theinprocbackend on Windows. (#1446) - Add
beforeBreadcrumbcallback support (#1534)
Fixes:
- Make the signal-handler synchronization fully atomic to fix rare race scenarios. (#1446)
- Reintroduce an FP-based stack-walker for macOS that can start from a user context. This also makes
inprocbackend functional again on macOS 13+. (#1446) - Split the
inprocsignal handler (and UEF on Windows) into a safe handler part and an "unsafe" handler thread. This minimizes exposure to undefined behavior inside the signal handler. (#1446) - Use a signal-safe address formatter instead of
snprintf(). (#1446)
Internal:
- Introduce PAC tests for
arm64eon macOS. (#1446) - For Linux, the SDK now has a vendored "nognu"
libunwindas the default stack walker and links it statically, but with PIC enabled so it can be used in PIE executables. (#1446)
Thank you: