Skip to content

Releases: peadar/pstack

v2.15

28 Nov 14:27

Choose a tag to compare

This releases fixes some minor bugs, but mostly changes how we deal with registers from target processes. This allows much better tracking of the floating point registers, and speeds up the register manipulations carried out during stack unwinding operations
Full Changelog: v2.14...v2.15

v2.14.3

14 Oct 23:07

Choose a tag to compare

Fix use-after-free for deep stack traces.
Full Changelog: v2.14.2...v2.14.3

v2.14.2

27 Sep 18:22

Choose a tag to compare

Full Changelog: v2.14.1...v2.14.2

Fix issue unwinding from a PLT Entry on ARM

v2.14.1

26 Sep 15:54

Choose a tag to compare

Maintenance release

  • When using debuginfod, load the library opportunistically, rather than adding a hard dependency.
  • Fix unwinding issue on aarch64 when there is CFI describing the location of FPSIMD registers (which is otherwise unhandled)

v2.14

30 Jul 12:19

Choose a tag to compare

Maintainance release
Fix some corner case issues, and add support for some minor DWARF knobs.

v2.13

30 Jul 12:17

Choose a tag to compare

v2.13

build-id/debuginfod improvements:

When present, ELF headers found in a core file will be searched for an ELF build-id - (such headers are dumped by the kernel if bit 5/value 0x10 is set in /proc/self/coredump_filter for a process, which is defaulted to on on most modern systems).

Similarly, the AT_PHDR note is used to find the dynamic linker structures needed to find shared libraries loaded by the process. Previously, this required the executable to be present locally.

The filesystem access layer in pstack has been rejigged so ELF build IDs are the primary key used to find ELF content, with library names being used as a fallback. debuginfod is only used if --debuginfod is supplied on the command line, but will now also be used to find executables in preference to the local paths when used.

These changes mean that core files from different environments can be directly queried if you have debuginfod servers available. There are also new command-line options to control the search paths used for ELF files, which you can similarly used to point pstack at separately downloaded image files.

Other changes:

Improved note handling (iteration can be done over either segments (for executables) or sections (for debug images)

When backtracing through frames that were unwound from signal trampolines, do not adjust the instruction pointer backwards when searching for call frame information. This is normally done for stack frames that have invoked "call" instructions, to ensure that the debug info uses the call instruction, rather than the following one, for CFI. However, for instructions where control transferred via a signal handler, this is the wrong thing to do, and when the instruction ends up on the wrong side of a change in the CFA, can prevent unwinding working properly through such frames.

v2.12.2

13 Jun 14:56

Choose a tag to compare

Use content of core to establish DT_DEBUG/r_debug, and the relocation offset for the executable, rather than requiring the original binary to be present. This solves the chicken-and-egg problem of finding the file content to go with a core to debug it properly.

v2.12.1

11 Jun 19:32

Choose a tag to compare

Fix issues unwinding through stack overflow-induced signals on ARM

v2.12

10 Jun 23:49

Choose a tag to compare

Fix bug in v2.11 that affects ARM
DW_CFA_offset insn should use ULEB for its offset.

v2.11: Remove dependency on python 3 source distribution

09 Jun 16:42

Choose a tag to compare

Maintenance release

Improve implementation addressSpace() method implementation for core files - now pays attention to file offset for segments.

Add basic debuginfod support - if enabled, and DEBUGINFOD_URLS is set, debuginfo will be downloaded if not found locally

Various cleanups and refactoring