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.
  • 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. It does no longer work on macOS since version 13 ("Ventura").
  • 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 runs in a different process, it doesn't have this limitation.

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

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").