Skip to content

Releases: getsentry/sentry-native

0.15.2

23 Jun 15:31

Choose a tag to compare

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 within app_hang_timeout (default 5000 ms). Call sentry_app_hang_heartbeat() regularly from the thread you want monitored. (#1806)

0.15.1

18 Jun 16:25

Choose a tag to compare

Fixes:

  • Report on partial disk writes when streaming envelopes to file, which previously left truncated envelopes on disk and reported success. (#1804)
  • Android: breadcrumb data is now sent as a structured object instead of a raw JSON string. (#1808)

0.15.0

11 Jun 11:28

Choose a tag to compare

Breaking:

  • sentry_value_incref now returns sentry_value_t and sentry_value_decref returns int (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_timeout option for SDK-managed HTTP transports. (#1741)
  • Apple: use os_sync_wait_on_address for 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_size computation, which could have caused the symbolicator to misattribute every frame to the lowest-addressed image (typically dyld or libsystem). (#1740)
  • Native: raise SENTRY_CRASH_MAX_MODULES from 512 to 2048 so processes that load many shared libraries no longer have their minidump module list truncated, which left frames in unrecorded modules without a debug_id and 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_enabled option. (#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_count from 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-trace headers. (#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

15 May 17:24

Choose a tag to compare

Fixes:

  • Protect CMAKE_SYSTEM_VERSION to avoid empty values when cross-building. (#1720)

0.14.1

13 May 15:09

Choose a tag to compare

Features:

  • Add strict trace continuation via sentry_options_set_strict_trace_continuation. (#1663)
  • Auto-populate event.user.id with a persistent per-installation UUID when no explicit user ID is set. (#1661)
  • Add cache keep modes, including SENTRY_CACHE_KEEP_ALWAYS to 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_init on macOS. (#1705, crashpad#153)
  • Add cache_dir envelope header for external crash reporters. (#1698)
  • Add sentry_attachment_set_type and SENTRY_ATTACHMENT_TYPE_* macros for standard Sentry attachment types. (#1700)
    • Deprecate sentry_options_add_view_hierarchy* in favor of sentry_attach_file* with sentry_attachment_set_type.

Fixes:

  • Native/Breakpad/Windows: fixed capturing abort(). (#1708)
  • Native/Windows: capture fast-fail and stack buffer overrun crashes via WER. (#1710)
  • Preserve cached minidump refs. (#1715)

0.14.0

04 May 11:58

Choose a tag to compare

Breaking / Important behavior changes:

  • Metrics are enabled by default. This behavior first appeared in 0.13.5 and is now documented as part of the 0.14.0 behavior. Applications that do not want to send metrics must explicitly opt out with sentry_options_set_enable_metrics(options, false). (#1609)
  • Structured logs are enabled by default. This behavior first appeared in 0.13.9 and is now documented as part of the 0.14.0 behavior. Applications that do not want to capture structured logs must explicitly opt out with sentry_options_set_enable_logs(options, false). (#1673)

0.13.9

04 May 07:28

Choose a tag to compare

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_upload flag. (#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_timeout option in the daemon. (#1691)

0.13.8

24 Apr 14:58

Choose a tag to compare

Features:

  • Enable experimental native backend on Xbox. (#1666)
  • Cache consent-revoked envelopes to disk when cache_keep or http_retry is enabled, instead of discarding them. With http_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's debug verbosity. (#1658)

Fixes:

  • Linux: handle ENOSYS in read_safely to 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

16 Apr 09:04

Choose a tag to compare

Features:

  • Add before_screenshot hook. (#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 stdio in 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-backed mmap, posix_spawn) so the native backend works inside App Sandbox. (#1644)

0.13.6

10 Apr 07:37

Choose a tag to compare

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 CMP0141 policy that broke debug info settings for downstream consumers. (#1630)