feat(native): add thread stackwalk mode option - #2026
Conversation
2daa314 to
e4f6fb5
Compare
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #2026 +/- ##
==========================================
+ Coverage 74.24% 74.35% +0.11%
==========================================
Files 104 104
Lines 26584 26603 +19
Branches 4838 4841 +3
==========================================
+ Hits 19736 19781 +45
+ Misses 5499 5472 -27
- Partials 1349 1350 +1 🚀 New features to boost your workflow:
|
|
This makes me wonder what the use case is for client-side stackwalking outside the external crash reporter users. Given how expensive it is, what if we actually had a I don't have the history of |
Seems confusing and unintuitive because with Crashpad, client-side stackwalking specifically applies to minidumps. If Native's client-side stackwalking was later implemented for minidumps, would
Ah, good to know, thanks! 🙏 |
Yes, if stackwalking becomes supported in Native's I'm still not sure whether |
My bad, I went too far with the |
The crash daemon walks and symbolicates every thread of the crashed process. On applications with a high thread count, such as editor or tooling builds, this dominates the time needed to collect a crash. Add `sentry_options_set_thread_stackwalk_mode` to limit client-side stackwalking to the crashed thread. Threads that did not crash are still reported with their id and name, only their stacktrace is omitted, so the thread list stays intact. On macOS the mode is also honored in the signal handler, which otherwise writes a stack copy per thread to disk. Defaults to SENTRY_THREAD_STACKWALK_MODE_ALL, preserving the previous behavior.
ba90ffe to
064339b
Compare

The crash daemon walks and symbolicates every thread of the crashed process. On applications with a high thread count this dominates the time needed to collect a crash.
sentry_options_set_thread_stackwalk_modeallows limiting client-side stackwalking to the crashed thread. Threads that did not crash are still reported with their id and name, only their stacktrace is omitted, so the thread list stays intact. On macOS the mode is also honored in the signal handler, which otherwise writes a stack copy per thread to disk.Defaults to
SENTRY_THREAD_STACKWALK_MODE_ALL, so existing behavior is unchanged.Testing
Unreal Engine 5.8 editor crash on Windows, native backend with
crash_reporting_mode=NATIVE_WITH_MINIDUMP, 134 threads and 1189 modules:build_native_eventtotal