Files
SonicForgeStudio/native_bridge/debug/probe_attach_detail.py
T

34 lines
1.9 KiB
Python

# probe_attach_detail.py - targeted runs to distinguish crash-in-attach vs
# teardown for gui_probe. Prints FULL stdout + real returncode.
import subprocess, sys, time, os
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
PROBE = r"C:\Users\locpham\SonicForgeStudio\native_bridge\build\Release\gui_probe.exe"
CASES = [
# (label, plugin, variant, secs)
("nexus_bridge_two", r"C:\Program Files\Common Files\VST3\Nexus.vst3", "bridge_two", 8),
("nexus_bridge_two_25s",r"C:\Program Files\Common Files\VST3\Nexus.vst3", "bridge_two", 25),
("nexus_same_thread", r"C:\Program Files\Common Files\VST3\Nexus.vst3", "same_thread", 8),
("nexus_main_own", r"C:\Program Files\Common Files\VST3\Nexus.vst3", "main_own", 8),
("scaler2_bridge_two", r"C:\Program Files\Common Files\VST3\Scaler2.vst3", "bridge_two", 8),
("ezkeys_bridge_two", r"C:\Program Files\Common Files\VST3\Toontrack\EZkeys 2.vst3", "bridge_two", 8),
("kontakt_bridge_two", r"C:\Program Files\Common Files\VST3\Kontakt.vst3", "bridge_two", 8),
("kontakt_main_own", r"C:\Program Files\Common Files\VST3\Kontakt.vst3", "main_own", 8),
("nexus_two_workers_close", r"C:\Program Files\Common Files\VST3\Nexus.vst3", "two_workers_close", 8),
]
for label, plugin, variant, secs in CASES:
t0 = time.time()
print(f"\n===== {label} ({variant}, {secs}s) =====", flush=True)
try:
r = subprocess.run([PROBE, plugin, variant, str(secs)],
capture_output=True, text=True, timeout=secs + 25,
creationflags=subprocess.CREATE_NO_WINDOW)
out = (r.stdout or "") + (r.stderr or "")
print(f"returncode={r.returncode} ({r.returncode & 0xFFFFFFFF:08X}) secs={time.time()-t0:.1f}")
print(out)
except subprocess.TimeoutExpired:
print(f"HARD-TIMEOUT after {time.time()-t0:.1f}s")
print("-----", flush=True)