Releases: getsentry/sentry-native
Releases · getsentry/sentry-native
0.13.0
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:
0.12.8
0.12.7
0.12.6
Features:
- Add support for metrics. It is currently experimental, and one can enable it by setting
sentry_options_set_enable_metrics. When enabled, you can record a metric usingsentry_metrics_count(),sentry_metrics_gauge(), orsentry_metrics_distribution(). Metrics can be filtered by setting thebefore_send_metrichook. (#1498)
0.12.5
0.12.4
Fixes:
- Crashpad: namespace mpack to avoid ODR violation. (#1476, crashpad#143)
- Structured logs: stop local attributes overwriting all globally set attributes. They now get merged, and local values overwrite existing global values for the same key. (#1486)
0.12.3
Fixes:
- Removed the 10-item limit per envelope for non-session data. Sessions are now limited to 100 per envelope, while other items (e.g., attachments) have no limit in amount. (#1347)
- Align the
breakpadinterface changes introduced with #1083 with the corresponding iOS build. (#1465) - Add structured logs to debug output when
debugoption is set. (#1466)
0.12.2
Features:
- Add custom attributes API for logs. When
logs_with_attributesis set totrue, treats the firstvargpassed intosentry_logs_X(message,...)as asentry_value_tobject of attributes. (#1435) - Add runtime API to query user consent requirement. (#1443)
- Add logs flush on
sentry_flush(). (#1434) - Add global attributes API. These are added to all
sentry_log_Xcalls. (#1450)
0.12.1
0.12.0
Breaking changes:
- If you use a narrow string path interface (for instance,
sentry_options_set_database_path()) on Windows rather than one of the wide string variants (sentry_options_set_database_pathw()), then the expected encoding is now UTF-8. (#1413)
Features:
- Add an option to use the stack pointer as an upper limit for the stack capture range in
crashpadon Windows. This is useful for targets like Proton/Wine, where one can't rely on the TEB-derived upper bound being correctly maintained by the system, leading to overly large stack captures per thread. (#1427, crashpad#137)
Fixes:
- Add logs flush on crash. This is not available for macOS with the
crashpadbackend. (#1404) - Make narrow UTF-8 the canonical path encoding on Windows. (#1413)
- Re-add setting thread name for Windows transport. (#1424)
- Fix AOT interop with managed .NET runtimes. (#1392)
Internal:
- Add
SENTRY_SDK_VERSIONCMake cache variable to allow downstream SDKs to override the SDK version at configuration time. (#1417) - Updated
crashpadto 2025-10-22. (#1426, crashpad#136, mini_chromium#4). - CI: bump Python to
3.12. (#1413) - Remove any
MAX_PATHdependencies incrashpadandbreakpad. (#1413, breakpad#43, crashpad#135)