Skip to content

v0.2.0

Choose a tag to compare

@pablogsal pablogsal released this 18 Jul 01:11
· 151 commits to main since this release
7785c77

Stackpulse 0.2.0 makes module identity, VMA lifetimes, native unwinding, and perf attachment reliable under remaps, process churn, and lost lifecycle events.

Fixed

  • Canonical module IDs now flow consistently through VMA tracking, Framehop, spooling, and symbolization.
  • ELF load bias handles valid page-rounded segments without guessing across ambiguous boundaries.
  • Exact file identity survives MMAP2, remaps, partial replacements, PID/TID reuse, and LOST recovery.
  • Deleted and transient mapped ELF files can be reopened through /proc/<pid>/map_files.
  • vDSO mappings provide native unwind information when readable.
  • Attach waits for a stable thread-group stop and resumes only stops Stackpulse initiated.

Performance

  • One real sampling counter owns each per-CPU mmap ring and same-CPU counters redirect into it, matching perf while eliminating CPU×task ring duplication.
  • Repeated mappings of the same ELF reuse symbolizer state.
  • Unused non-executable MMAP traffic is no longer requested.

Changed

  • ModuleRecord exposes device and inode-generation identity.
  • New profiles use SPULSE3; readers remain compatible with SPULSE1 and SPULSE2.