AnyPS5/core/libs/prx/libc
AlxcBTW 428963d3b3 feat(agc): write the worker sampler's stacks as collapsed stacks
APS5_SAMPLE_WORKER=<file> now also writes <file stem>.collapsed.txt: one
"frame;...;frame count" line per distinct stack of queue worker 0, root
first, frames as module+0xRVA, which speedscope.app and flamegraph.pl
open. Walks go up to 64 frames, and nothing allocates while the worker is
suspended.

The libraries are built with -fno-asynchronous-unwind-tables, so most of
their functions have no .pdata entry, only a DWARF record in .ehfram, and a
walk ended at the first such frame. The worker's walk now steps those
frames through their record, with the CIE/FDE decoding and the call frame
instructions of libc's unwinder, which move from Unwind.cpp into its
header unchanged. A module is indexed after the worker resumes, the first
time a walk meets it, and every register the step restores is read inside
the worker's stack. The process sampler (APS5_SAMPLE_THREADS) keeps its 12
frames through .pdata.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:23:11 +02:00
..
include feat(agc): write the worker sampler's stacks as collapsed stacks 2026-10-12 21:23:11 +02:00
src feat(agc): write the worker sampler's stacks as collapsed stacks 2026-10-12 21:23:11 +02:00
CMakeLists.txt Merge pull request #4537 from coltken95/claude/sleepy-dirac-e44kw4 2026-10-13 07:32:15 +13:00
Export.cpp fix(libc): add missing Unity engine static imports 2026-10-12 01:04:39 +03:00