Releases: getsentry/sentry-native
Releases · getsentry/sentry-native
0.15.2
Fixes:
- Native/Windows: Resolve correct symbol names for crashes in multi-module apps (#1811)
- Crashpad: Resolve correct symbol names for crashes in multi-module apps (#1813, crashpad#156)
Features:
- Added an in-process app-hang detection. When enabled via
sentry_options_set_enable_app_hang_tracking, a background thread monitors the application and captures an app-hang event if no heartbeat is received withinapp_hang_timeout(default5000ms). Callsentry_app_hang_heartbeat()regularly from the thread you want monitored. (#1806)
0.15.1
0.15.0
Breaking:
sentry_value_increfnow returnssentry_value_tandsentry_value_decrefreturnsint(0 if freed). (#1763)
Features:
- Native: add opt-in async crash upload mode so crashed apps can exit early after crash data is captured, while the crash daemon finishes potentially large uploads in the background. (#1739)
- Native/Linux: symbolicate stack frames in the crash daemon. (#1747, #1764)
- Add a
transfer_timeoutoption for SDK-managed HTTP transports. (#1741) - Apple: use
os_sync_wait_on_addressfor the level-triggered waitable flag in the batcher on modern macOS(14.4+) and iOS(17.4+). (#1765) - Native/macOS: add thread names. (#1766)
- Add Upload-Metadata header to TUS requests. (#1795)
Fixes:
- Native/macOS: crash reports now include full stack traces for all threads. Previously, non-crashing threads showed only a single frame. (#1768)
- Native/Linux: resolve function names for the crashed thread's stacktrace from on-disk ELF symbol tables in the crash daemon, so the most important thread gets symbolicated without ptrace. (#1764)
- Finish active trace on crash. (#1667)
- Native/macOS: fix module
image_sizecomputation, which could have caused the symbolicator to misattribute every frame to the lowest-addressed image (typicallydyldorlibsystem). (#1740) - Native: raise
SENTRY_CRASH_MAX_MODULESfrom512to2048so processes that load many shared libraries no longer have their minidump module list truncated, which left frames in unrecorded modules without adebug_idand unsymbolicatable.
(#1738) - Reject overly deep JSON and msgpack payloads during deserialization. (#1727, #1748)
- Read lengths for variadic fingerprints. (#1730)
- Guard against JSON token allocation overflow on 32-bit platforms. (#1733)
- Windows: fix HTTP rate limit response header parsing. (#1732)
- POSIX: prevent condition-variable timeout overflow from busy-spinning flush and shutdown waits. (#1731)
- Native/macOS: fix thread stack descriptor. (#1726)
- Native/macOS: honor the
system_crash_reporter_enabledoption. (#1743) - Cap rate-limit retry-after values at 24 hours to prevent a MITM-provided response from disabling event delivery for the process lifetime. (#1744)
- Fix a shutdown-time use-after-free window in
sentry_close(). (#1750) - curl: free duplicate HTTP response headers to avoid potential leaks. (#1791)
- Native: validate ELF header entry sizes. (#1746)
- Native: clamp
module_countfrom the shared crash context. (#1770) - Prevent database cleanup from following symlinks in run and cache directories. (#1751)
- Structured logs: respect printf argument widths when extracting log parameters to avoid stack-data disclosure and corrupted attributes on 32-bit platforms. (#1752)
- Fix TOCTOU races in transaction/span refcounting by switching to the atomic decref return value. (#1763)
- Fix signed-to-unsigned cast in rate-limit parsing to prevent permanent event suppression. (#1790)
- Fix a potential out-of-bounds read when parsing non-NUL-terminated
sentry-traceheaders. (#1749) - Harden ELF note parsing against overflow and OOB reads. (#1773)
- Fix memory leak in session deserialization on malformed cached files. (#1789)
- Fix division by zero when breadcrumbs are disabled. (#1767)
- Native: escape JSON attachments. (#1771)
- Reject NaN sample rates. (#1788)
- Handle memory allocation failures during JSON serialization to prevent truncated output. (#1772)
- Guard against overflow in string cloning in internal string utilities. (#1787)
- Fix a file descriptor leak in old-run processing. (#1792)
0.14.2
0.14.1
Features:
- Add strict trace continuation via
sentry_options_set_strict_trace_continuation. (#1663) - Auto-populate
event.user.idwith a persistent per-installation UUID when no explicit user ID is set. (#1661) - Add cache keep modes, including
SENTRY_CACHE_KEEP_ALWAYSto cache envelopes regardless of upload result. (#1707) - Crashpad: add error log for oversized envelopes (HTTP 413 Content Too Large). (#1706, crashpad#155)
- Crashpad: support modifying attachments after
sentry_initon macOS. (#1705, crashpad#153) - Add
cache_direnvelope header for external crash reporters. (#1698) - Add
sentry_attachment_set_typeandSENTRY_ATTACHMENT_TYPE_*macros for standard Sentry attachment types. (#1700)- Deprecate
sentry_options_add_view_hierarchy*in favor ofsentry_attach_file*withsentry_attachment_set_type.
- Deprecate
Fixes:
0.14.0
Breaking / Important behavior changes:
- Metrics are enabled by default. This behavior first appeared in
0.13.5and is now documented as part of the0.14.0behavior. Applications that do not want to send metrics must explicitly opt out withsentry_options_set_enable_metrics(options, false). (#1609) - Structured logs are enabled by default. This behavior first appeared in
0.13.9and is now documented as part of the0.14.0behavior. Applications that do not want to capture structured logs must explicitly opt out withsentry_options_set_enable_logs(options, false). (#1673)
0.13.9
Important
Structured logs are enabled by default in this release. This behavior is documented in the 0.14.0 release notes. To opt out, call sentry_options_set_enable_logs(options, false).
Features:
- Enable structured logs by default; logs are now opt-out via
sentry_options_set_enable_logs(options, false). (#1673) - Crashpad: add macOS support for the
crashpad_wait_for_uploadflag. (#1679, crashpad#152) - Add experimental support for large attachment uploads, opt-in via
sentry_options_set_enable_large_attachments. (#1545)
Fixes:
- Fix event ownership (potential double-decref) in sentry_capture_minidump. (#1669)
- Guard against internal stringbuilder append and reserve size overflows. (#1672)
- Preserve attachments added during crash handling (#1687)
- Fix build-time warnings with C++ builds. (#1671)
- Native: respect the
shutdown_timeoutoption in the daemon. (#1691)
0.13.8
Features:
- Enable experimental
nativebackend on Xbox. (#1666) - Cache consent-revoked envelopes to disk when
cache_keeporhttp_retryis enabled, instead of discarding them. Withhttp_retry, the cached envelopes are sent automatically once consent is given. (#1542) - Linux: support 32-bit ARM. (#1659)
- Crashpad: capture handler process log output to
<run>/crashpad-handler.log, matching the SDK'sdebugverbosity. (#1658)
Fixes:
- Linux: handle
ENOSYSinread_safelyto fix empty module list in seccomp-restricted environments. (#1655) - macOS: avoid stdio deadlock in breakpad exception handler. (#1656)
- Crashpad: build for 32-bit ARM on Linux. (#1659)
- Native: build for 32-bit ARM on Linux. (#1659)
- Inproc: build vendored libunwind for 32-bit ARM on Linux. (#1659)
- Native: build for 64-bit ARM on Linux with musl. (#1665)
- Native/Linux: prevent shared memory leak on crash. (#1664)
- Native: skip scope flush during crash handling. (#1668)
0.13.7
Features:
- Add
before_screenshothook. (#1641) - Add error log for oversized envelopes (HTTP 413 Content Too Large). (#1647)
Fixes:
- Reset client report counters during initialization (#1632)
- macOS: cache VM regions for FP validation in the new unwinder. (#1634)
- Linux: remove dependency on
stdioin the unwinder pointer validation code to reduce exposure to async-signal-unsafe functions. (#1637) - macOS: replace sandbox-incompatible IPC primitives (
sem_open,shm_open,fork) with sandbox-safe alternatives (pthread_mutex, file-backedmmap,posix_spawn) so the native backend works inside App Sandbox. (#1644)
0.13.6
Features:
- Add WinGDK (Gaming.Desktop.x64) platform support (#1631)
- Track discarded events via client reports. (#1549)
- Android: allow Sentry.NET to preload the NDK integration to install signal handlers before the .NET runtime. (#1613)
Fixes:
- Revert
CMP0141policy that broke debug info settings for downstream consumers. (#1630)