Skip to content

Commit ad6df21

Browse files
authored
docs: clarify macOS support of the inproc backend (#1072)
* docs: clarify macOS support of the `inproc` backend * apply review feedback + minor wording fixes * reference advanced usage section
1 parent d61acdd commit ad6df21

File tree

1 file changed

+37
-30
lines changed

1 file changed

+37
-30
lines changed

README.md

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -192,19 +192,19 @@ using `cmake -D BUILD_SHARED_LIBS=OFF ..`.
192192
When using `sentry` as a static library, make sure to `#define SENTRY_BUILD_STATIC 1` before including the sentry header.
193193

194194
- `SENTRY_PIC` (Default: ON):
195-
By default, `sentry` is built as a position independent library.
195+
By default, `sentry` is built as a position-independent library.
196196

197197
- `SENTRY_EXPORT_SYMBOLS` (Default: ON):
198-
By default, `sentry` exposes all symbols in the dynamic symbol table. You might want to disable it in case the program intends to `dlopen` third-party shared libraries and avoid symbol collisions.
198+
By default, `sentry` exposes all symbols in the dynamic symbol table. You might want to disable it if the program intends to `dlopen` third-party shared libraries and avoid symbol collisions.
199199

200200
- `SENTRY_BUILD_RUNTIMESTATIC` (Default: OFF):
201201
Enables linking with the static MSVC runtime. Has no effect if the compiler is not MSVC.
202202

203203
- `SENTRY_LINK_PTHREAD` (Default: ON):
204-
Links platform threads library like `pthread` on unix targets.
204+
Links platform threads library like `pthread` on UNIX targets.
205205

206206
- `SENTRY_BUILD_FORCE32` (Default: OFF):
207-
Forces cross-compilation from 64-bit host to 32-bit target. Only has an effect on Linux.
207+
Forces cross-compilation from 64-bit host to 32-bit target. Only affects Linux.
208208

209209
- `CMAKE_SYSTEM_VERSION` (Default: depending on Windows SDK version):
210210
Sets up a minimal version of Windows where sentry-native can be guaranteed to run.
@@ -238,52 +238,59 @@ using `cmake -D BUILD_SHARED_LIBS=OFF ..`.
238238
only supported on Desktop OSs, and used as the default on Windows, Linux and macOS.
239239
- **breakpad**: This uses the in-process breakpad handler. It is currently
240240
only supported on Desktop OSs.
241-
- **inproc**: A small in-process handler which is supported on all platforms,
242-
and is used as default on Android.
241+
- **inproc**: A small in-process handler that is supported on all platforms,
242+
and is used as a default on Android.
243243
- **none**: This builds `sentry-native` without a backend, so it does not handle
244-
crashes at all. It is primarily used for tests.
244+
crashes. It is primarily used for tests.
245245

246246
- `SENTRY_INTEGRATION_QT` (Default: OFF):
247247
Builds the Qt integration, which turns Qt log messages into breadcrumbs.
248248

249249
- `SENTRY_BREAKPAD_SYSTEM` (Default: OFF):
250-
This instructs the build system to use system-installed breakpad libraries instead of using the in-tree version.
250+
This instructs the build system to use system-installed breakpad libraries instead of the in-tree version.
251251

252252
- `SENTRY_TRANSPORT_COMPRESSION` (Default: OFF):
253253
Adds Gzip transport compression. Requires `zlib`.
254254

255-
| Feature | Windows | macOS | Linux | Android | iOS |
256-
| ---------- | ------- | ----- | ----- | ------- | --- |
257-
| Transports | | | | | |
258-
| - curl | ||| (✓) | |
259-
| - winhttp || | | | |
260-
| - none ||||||
261-
| | | | | | |
262-
| Backends | | | | | |
263-
| - inproc ||||| |
264-
| - crashpad |||| | |
265-
| - breakpad |||| (✓) | (✓) |
266-
| - none ||||| |
267-
268-
Legend:
269-
270-
- ☑ default
271-
- ✓ supported
272-
- unsupported
273-
274255
- `SENTRY_FOLDER` (Default: not defined):
275-
Sets the sentry-native projects folder name for generators which support project hierarchy (like Microsoft Visual Studio).
276-
To use this feature you need to enable hierarchy via [`USE_FOLDERS` property](https://cmake.org/cmake/help/latest/prop_gbl/USE_FOLDERS.html)
256+
Sets the sentry-native projects folder name for generators that support project hierarchy (like Microsoft Visual Studio).
257+
To use this feature, you need to enable hierarchy via [`USE_FOLDERS` property](https://cmake.org/cmake/help/latest/prop_gbl/USE_FOLDERS.html)
277258

278259
- `CRASHPAD_ENABLE_STACKTRACE` (Default: OFF):
279260
This enables client-side stackwalking when using the crashpad backend. Stack unwinding will happen on the client's machine
280261
and the result will be submitted to Sentry attached to the generated minidump.
281262
Note that this feature is still experimental.
282263

283264
- `SENTRY_SDK_NAME` (Default: sentry.native or sentry.native.android):
284-
Sets the SDK name that should be included in the reported events. If you're overriding this, make sure to also define
265+
Sets the SDK name that should be included in the reported events. If you're overriding this, also define
285266
the same value using `target_compile_definitions()` on your own targets that include `sentry.h`.
286267

268+
### Support Matrix
269+
270+
| Feature | Windows | macOS | Linux | Android | iOS |
271+
| ---------- | ------- | ----- | ----- | ------- | ----- |
272+
| Transports | | | | | |
273+
| - curl | ||| (✓)*** | |
274+
| - winhttp || | | | |
275+
| - none ||||||
276+
| | | | | | |
277+
| Backends | | | | | |
278+
| - crashpad |||| | |
279+
| - breakpad |||| (✓)** | (✓)** |
280+
| - inproc || (✓)* ||| |
281+
| - none ||||| |
282+
283+
Legend:
284+
285+
- ☑ default
286+
- ✓ supported
287+
- (✓) supported with limitations
288+
- `*`: `inproc` has not produced valid stack traces on macOS since version 13 ("Ventura"). Tracking: https://github.com/getsentry/sentry-native/issues/906
289+
- `**`: `breakpad` on Android and iOS builds and should work according to upstream but is untested.
290+
- `***`: `curl` as a transport works on Android but isn't used in any supported configuration to reduce the size of our artifacts.
291+
292+
In addition to platform support, the "Advanced Usage" section of the SDK docs now [describes the tradeoffs](https://docs.sentry.io/platforms/native/advanced-usage/backend-tradeoffs/) involved in choosing a suitable backend for a particular use case.
293+
287294
### Build Targets
288295

289296
- `sentry`: This is the main library and the only default build target.

0 commit comments

Comments
 (0)