Commit 3934032
committed
chore(callgrind): log underflow resets and instrument_state transitions
Two diagnostic logs to attribute every (cxt==0) push_cxt event to its
root cause:
1. handleUnderflow: prints the BB address, fn name, obj, and skip flag
for the fn that's about to be force-pushed after a call-stack
underflow. Tells us whether leaks are driven by signals, longjmp,
or shadow-stack quality.
2. set_instrument_state: logs every ON/OFF transition with the cxt
and fn-stack depth at that moment. Distinguishes 'fresh start with
no cxt' from 'stop/start cycle that preserved cxt'.
Together with the existing 'push_cxt FORCED' log, these let us bucket
the leaked frames in real Python runs by their root cause.1 parent ece679d commit 3934032
2 files changed
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
513 | 513 | | |
514 | 514 | | |
515 | 515 | | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
516 | 521 | | |
517 | 522 | | |
518 | 523 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1453 | 1453 | | |
1454 | 1454 | | |
1455 | 1455 | | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
1456 | 1463 | | |
1457 | 1464 | | |
1458 | 1465 | | |
| |||
0 commit comments