From a5ce1af261ec3890d1ae16cc3a8785ffa8ad7b43 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Mon, 19 Oct 2026 11:59:23 +0000 Subject: fix(driver): report Windows JIT crashes with symbolized frames Record fixed-up JIT graph addresses and named symbols, and report fatal Windows x86_64 faults with access details and up to 32 stack frames. Show unwind-entry availability for each frame, ignore normal C++ exceptions, and preserve buffered stdout before walking the stack. Keep stack-overflow reports minimal and document the resident reporter. Leave linking and unwind registration unchanged until real Windows CI provides a fault location for i/exp-string. Co-Authored-By: Claude Opus 5.5 --- AGENTS/ARCH.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'AGENTS') diff --git a/AGENTS/ARCH.md b/AGENTS/ARCH.md index 7c14e5c..dbe9f30 100644 --- a/AGENTS/ARCH.md +++ b/AGENTS/ARCH.md @@ -158,6 +158,10 @@ Driver behavior (`tools/driver/main.cc`): per graph to avoid overlapping unwinder lookup ranges, covering teardown and link-failure cleanup, with table validation in the registration callback; registration failure blocks entry. + During JIT main execution, a Windows x86_64 vectored exception handler reports + fatal faults to stderr with JIT graph/symbol or host module names, per-frame + unwind-entry availability and a stack trace, flushes stdout, and leaves the + exception unhandled; stack overflows receive only a minimal fault report. The JIT builds its `ObjectLinkingLayer` through one file-local factory (COFF flags stay format-conditional, SEH plugin installed before LLJIT ownership) so Windows COFF does not fall back -- cgit v1.3.1-4-g156e