diff --git a/README.md b/README.md index 496374ff9..742a9e68b 100644 --- a/README.md +++ b/README.md @@ -365,14 +365,12 @@ Other important configuration options include: process, and can thus not properly terminate sessions or call the registered `before_send` or `on_crash` hook. It will also lose any events that have been queued for sending at the time of the crash. -- The Crashpad backend on Windows supports fast-fail crashes, which bypass SEH (Structured +- On Windows, the crashpad and native backends support fast-fail crashes, which bypass SEH (Structured Exception Handling) primarily for security reasons. `sentry-native` registers a WER (Windows Error - Reporting) module, which signals the `crashpad_handler` to send a minidump when a fast-fail crash occurs + Reporting) module, which signals the out-of-process crash handler when a fast-fail crash occurs. But since this process bypasses SEH, the application's local exception handler is no longer invoked, which also means that for these kinds of crashes, `before_send` and `on_crash` will not be invoked before - sending the minidump, and thus have no effect. -- When using the crashpad backend on macOS, the list of attachments that will be sent - along with crashes is frozen at the time of `sentry_init`. + sending the crash report, and thus have no effect. ## Benchmarks diff --git a/include/sentry.h b/include/sentry.h index 63fa2720c..93405841c 100644 --- a/include/sentry.h +++ b/include/sentry.h @@ -1154,10 +1154,10 @@ SENTRY_API void sentry_options_set_send_default_pii( * * https://develop.sentry.dev/sdk/sessions/#filter-order * - * On Windows the crashpad backend can capture fast-fail crashes which bypass - * SEH. Since the `before_send` is called by a local exception-handler, it will - * not be invoked when such a crash happened, even though a minidump will be - * sent. + * On Windows, the crashpad and native backends can capture fast-fail crashes + * which bypass SEH. Since the `before_send` callback is called by a local + * exception-handler, it will not be invoked when such a crash happened, even + * though a crash report will be sent. */ typedef sentry_value_t (*sentry_event_function_t)( sentry_value_t event, void *hint, void *user_data); @@ -1215,10 +1215,10 @@ SENTRY_API void sentry_options_set_before_send( * * - does not work with crashpad on macOS. * - for breakpad on Linux the `uctx` parameter is always NULL. - * - on Windows the crashpad backend can capture fast-fail crashes which - * bypass SEH. Since `on_crash` is called by a local exception-handler, it - * will not be invoked when such a crash happened, even though a minidump - * will be sent. + * - on Windows, the crashpad and native backends can capture fast-fail crashes + * which bypass SEH. Since `on_crash` is called by a local + * exception-handler, it will not be invoked when such a crash happened, even + * though a crash report will be sent. */ typedef sentry_value_t (*sentry_crash_function_t)( const sentry_ucontext_t *uctx, sentry_value_t event, void *user_data); @@ -1618,8 +1618,8 @@ SENTRY_API void sentry_options_add_view_hierarchy_n( * * This feature is currently supported by all backends on Windows. The * `crashpad` and `native` backends capture screenshots from an out-of-process - * handler. Only the `crashpad` backend can capture screenshots of fast-fail - * crashes that bypass SEH (structured exception handling). + * handler. Only the `crashpad` and `native` backends can capture screenshots of + * fast-fail crashes that bypass SEH (structured exception handling). * * To decide per-event whether a screenshot should be captured, set a * `before_screenshot` callback via `sentry_options_set_before_screenshot`.