Releases · getsentry/sentry-native

0.13.2

Features:

  • Experimental: Add new native crash handling backend as an alternative to crashpad, breakpad, and inproc. This backend uses an out-of-process daemon that monitors the application for crashes, generates minidumps, and sends crash reports to Sentry. It supports Linux, macOS, and Windows, and is fully compatible with TSAN and ASAN sanitizers. This feature is experimental and under active development. (#1433)
  • Add sentry_log() for plain-string log messages. (#1566)
  • Add sentry_set_release() / sentry_set_environment() for updating release and environment after SDK init. (#1555)

Fixes:

  • Allow null custom log attributes without debug warning. (#1552)
  • Introduce level-triggered wait flag for use in the batcher thread for logs and metrics. (#1558)
  • Fixed a data race when re-initializing the SDK while logs or metrics are active. (#1556)

0.13.1

Features:

  • Support SENTRY_SAMPLE_RATE and SENTRY_TRACES_SAMPLE_RATE environment variables. (#1540)

Fixes:

  • Fix use-after-free on allocation failure when merging scope tags, extra, and contexts into a captured event. (#1539)
  • Remove C++ exception ABI symbols (_Unwind_Resume, etc.) from vendored libunwind build. (#1544)

0.13.0

Breaking:

  • inproc: since we split inproc into signal-handler/UEF part and a separate handler thread, before_send and on_crash could 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 an Exception if init fails (non-zero return code) rather than silently swallowing the error. (#1430)

Features:

  • Add support for abort() in the inproc backend on Windows. (#1446)
  • Add beforeBreadcrumb callback 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 inproc backend functional again on macOS 13+. (#1446)
  • Split the inproc signal 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 arm64e on macOS. (#1446)
  • For Linux, the SDK now has a vendored "nognu" libunwind as 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

Fixes:

  • Fix deadlock when re-initializing the SDK while logs or metrics threads are mid-flush. (#1518)

0.12.7

Features:

  • Add new offline caching options to persist envelopes locally: sentry_options_set_cache_keep, sentry_options_set_cache_max_items, sentry_options_set_cache_max_size, and sentry_options_set_cache_max_age. (#1490, #1493)

Fixes:

  • Remove spurious decref in sentry_capture_user_feedback() (#1510)
  • Prevent double-decref of event in envelope add functions (#1511)

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 using sentry_metrics_count(), sentry_metrics_gauge(), or sentry_metrics_distribution(). Metrics can be filtered by setting the before_send_metric hook. (#1498)

0.12.5

Features:

  • Add attachment support to user feedback. (#1414)

Fixes:

  • Structured logs: avoid modifying custom per-log attributes when merging with scope attributes. (#1500)

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 breakpad interface changes introduced with #1083 with the corresponding iOS build. (#1465)
  • Add structured logs to debug output when debug option is set. (#1466)

0.12.2

Features:

  • Add custom attributes API for logs. When logs_with_attributes is set to true, treats the first varg passed into sentry_logs_X(message,...) as a sentry_value_t object 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_X calls. (#1450)