You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/platforms/native/advanced-usage/backend-tradeoffs/index.mdx
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,8 @@ The Native SDK lets users decide at compile-time between three crash backends:
9
9
*`breakpad`
10
10
*`inproc`
11
11
12
+
### Why is `crashpad` the default?
13
+
12
14
Currently, `crashpad` is the default on all desktop platforms because it
13
15
14
16
* has an external `handler` process that allows for external snapshots and sending crash reports immediately (instead of on the next successful start of your application)
@@ -26,6 +28,9 @@ Currently, `crashpad` is the default on all desktop platforms because it
26
28
* cooperation with Epic's Easy Anti-Cheat
27
29
* CMake build scripts (some users use our backend handler forks solely because of this reason)
28
30
31
+
<Alert>
32
+
When your deployment scenario should wait for the `crashpad_handler` to finish its work before a shutdown-after-crash (systemd, Docker), in Linux environments since SDK version [0.8.3](https://github.com/getsentry/sentry-native/releases/tag/0.8.3), you can enable the [option `crashpad_wait_for_upload`](/platforms/native/configuration/options/#crashpad-wait-for-upload) to delay application shutdown until the upload of the crash report is completed.
33
+
</Alert>
29
34
### When shouldn't I use the `crashpad` backend?
30
35
31
36
Sentry decided on `crashpad` as the default on all platforms because it offers numerous advantages. However, there are use cases where `crashpad` cannot be used or makes distribution or deployment much harder. We provide other backends for situations when
@@ -38,8 +43,6 @@ Sentry decided on `crashpad` as the default on all platforms because it offers n
38
43
39
44
In the above cases, if you cannot loosen the requirements of your environment, you have to choose an in-process backend (meaning either `breakpad` or `inproc`).
40
45
41
-
When your deployment scenario should wait for the `crashpad_handler` to finish its work before a shutdown-after-crash (systemd, Docker), you can enable the option [`crashpad_wait_for_upload`](/platforms/native/configuration/options/#crashpad-wait-for-upload) to delay application shutdown until the upload of the crash report is completed.
42
-
43
46
### How do I decide between `breakpad` or `inproc`?
44
47
45
48
Both backends are comparable in how they differ from `crashpad`. However, there are also considerable differences between the two:
description: "How to use the Sentry Native SDK in container environments."
4
+
sidebar_order: 2000
5
+
---
6
+
7
+
## Database Path on a Mounted Volume
8
+
The Sentry Native SDK uses a [database path](https://docs.sentry.io/platforms/native/configuration/options/#database-path) to store events and crash reports. When you are using a containerized environment, you may want to mount a volume to persist the database across container restarts to avoid losing this data.
9
+
10
+
## Waiting for `Crashpad` to Finish
11
+
Starting with SDK version [0.8.3](https://github.com/getsentry/sentry-native/releases/tag/0.8.3), the [option `crashpad_wait_for_upload`](https://docs.sentry.io/platforms/native/configuration/options/#crashpad-wait-for-upload) allows the application (on Linux) to wait for the `crashpad_handler` to finish before a shutdown-after-crash.
12
+
13
+
In SDK versions older than 0.8.3, you could use a script similar to the example below to tie container shutdown to the `crashpad_handler` process:
0 commit comments