branchrust_reboot/main/serverprofiler_recordscope_pausecancel
9 Commits over 0 Days - ∞cph!
Update: add Pause/Resume to ScopeRecorder and SlowScopeRecorder
Tests: tried them in throw-away code, works but exported result looks wonky and needs more work
Update: ServerProfiler - add ability to pause & resume active recorders
- added couple unit tests
- release binaries built from 61cba2fc
Tests: ran unit tests
Bugfix: Simplify RecordContext memory management in ServerProfiler.Core
- release binaries built from 39f0cfa4
Worst bug was that 2 threads sharing one recording buffer
Tests: recorded a bunch of test coroutines (2 frames worth each) via RecordScope, then ran a perfsnapshot for 10 frames - no issues.
Update: ServerProfiler.Init now resets managed internal state
- also added handle cleanup to ScopeRecorder and SlowScopeRecorder dispose, in case double-dispose gets called
This reduces test boilerplate slightly (as scope recorders have a timeout)
Tests: ran unit tests - they pass. still chasing native storage corruption
Bugfix: when exporting a snapshot from recorder scopes skip fast-forward logic to 0 callstack depth
Tests: recorded coroutine, was able to see all 3 log calls (before yield, after 1st yield and before yield break). But something's corrupting memory for subsequent perfsnapshots
Merge: from serverprofiler_recordscope_pause
Need it for experiments with profiling coroutines
Bugfix: prevent taking perfsnapshots if a recorder scope is currently active and vice versa
- also fix recorder triggering NREs because it tries to run perfsnapshot code
Tests: ran profiler scope spanning multiple frames. Checked output, it's not making sense, investigating deeper