Skip to content

[DIAG — do not merge] withdll stdout probe - #122

Closed
emeryberger wants to merge 3 commits into
masterfrom
diag/withdll-stdout-probe
Closed

[DIAG — do not merge] withdll stdout probe#122
emeryberger wants to merge 3 commits into
masterfrom
diag/withdll-stdout-probe

Conversation

@emeryberger

Copy link
Copy Markdown
Owner

Diagnostic to figure out why the injected process's stdout isn't captured through withdll. Probe A: trivial cmd-echo grandchild (isolates handle inheritance). Probe B: larson (real case). Probe C: larson without injection (control). Will be closed unmerged.

@emeryberger

Copy link
Copy Markdown
Owner Author

Mystery solved. With the current (fixed) withdll, all four probes capture the grandchild's stdout — including PROBE D, which replicates the watchdog's exact Start-Process -NoNewWindow launch:

=== PROBE D: replicate the watchdog exactly ===
  exit=0 ; probeD.txt:
    withdll.exe: Starting: `cmd /c "echo PROBE_D_GRANDCHILD_VIA_STARTPROCESS"'
    PROBE_D_GRANDCHILD_VIA_STARTPROCESS          <-- captured

And this run's actual watchdog hoard.txt now contains the benchmark's own line:

--- larson ---
withdll.exe: Starting: `.\larson.exe 4'
larson: threads=4 ops=400000 time=0.089 sec (4494473 ops/sec)   <-- captured

So the withdll fix (alloc8#14) was correct and sufficient by itself. My earlier "the fix alone didn't work" was a stale-binary observation: that CI run had fetched pre-merge alloc8 (a ~2s merge/rerun race, flagged at the time) and ran the old Detours-sample withdll. BENCH_OUT (#119) remains as belt-and-suspenders — it's more robust and is what the QoS gate parses.

Closing; diagnostic reverted.

@emeryberger
emeryberger deleted the diag/withdll-stdout-probe branch July 15, 2026 03:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant