diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2025-09-26 10:52:09 +0100 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2025-09-30 13:44:56 +0100 |
| commit | 156cd8f678ebdcccc48382d093a3ef7e45c85a45 (patch) | |
| tree | ca3f4c37bda9cf1d039ac25ba37b2c45ab5a345f /test/standalone/stack_iterator | |
| parent | 3f84b6c80ed3306f040dd98b8ccba561a052167a (diff) | |
| download | zig-156cd8f678ebdcccc48382d093a3ef7e45c85a45.tar.gz zig-156cd8f678ebdcccc48382d093a3ef7e45c85a45.zip | |
std.debug: significantly speed up capturing stack traces
By my estimation, these changes speed up DWARF unwinding when using the
self-hosted x86_64 backend by around 7x. There are two very significant
enhancements: we no longer iterate frames which don't fit in the stack
trace buffer, and we cache register rules (in a fixed buffer) to avoid
re-parsing and evaluating CFI instructions in most cases. Alongside this
are a bunch of smaller enhancements, such as pre-caching the result of
evaluating the CIE's initial instructions, avoiding re-parsing of CIEs,
and big simplifications to the `Dwarf.Unwind.VirtualMachine` logic.
Diffstat (limited to 'test/standalone/stack_iterator')
0 files changed, 0 insertions, 0 deletions
