Backends

Learn more about backends, extending the functionality of the Sentry SDK for crash reporting.

Backends extend the functionality of the SDK for some common frameworks and libraries. Similar to plugins, they extend the functionality of the Sentry SDK.

The Native SDK can use different backends that are responsible for capturing crashes. The backend is configured at build-time using the SENTRY_BACKEND CMake option, with support for the following options:

  • crashpad: This uses the out-of-process crashpad handler. It is used as the default on Windows, macOS, and Linux.
  • native: This uses the out-of-process native handler. It is available since SDK version 0.13.2.
  • breakpad: This uses the in-process breakpad handler.
  • inproc: A small in-process handler supported on all platforms and used as a default on Android.
  • none: This builds sentry-native without a backend, so it does not handle crashes. It is primarily used for tests.

Breakpad and inproc both run "in-process", so they run in the same process as the application they capture crashes for. This means these backends can't send a crash to Sentry immediately after it happens. Instead, the crash report is written to disk and sent the next time the application is run. Since crashpad and native run in a different process, they don't have this limitation.

The following table summarizes backend support for each target OS:

OScrashpadnativebreakpadinproc
Windows✅ Default
macOS✅ Default
Linux✅ Default
Android⚠️ Untested 1✅ Default
iOS⚠️ Untested 1⚠️ Untested 1

1 Builds and should work, but is untested.

The Advanced Usage section explains the trade-offs in choosing the correct backend for your use case.

Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").