backtrace-libbt 1.19.0

This release adds support for compressed .debug_line sections, improved variable extraction accuracy, new unwinding heuristics for corrupt callstacks, and improves performance for targets with thousands of threads. All users are recommended to upgrade.

Performance Improvements

Internal data structures have been improved to support efficient thread identifier look-up that was a measurable bottleneck for programs with many tens of thousands of threads.

Unwinding and Variable Resolution Accuracy

If a program crashes after dispatch due to, for example, jumping to an invalid page new unwinding heuristics are used to attempt to recover the corrupt callstack.

In addition to this, subroutine-level abstract_origin is now respected consistently rather than just for inlined functions. This improves extraction of variables that are only defined in the abstract origin. Newer compilers more aggressively make use of this pattern.

Debug Line Compression

Previously, compressed .debug_line sections were unsupported, unlike other debug sections. This is now supported.