Files
simplex-chat/scripts/nix/native-ghc.gdb
T
Moritz Angermann 87ab2143cc Capture native GHC faults with bounded GDB diagnostics
Run the existing failure-only native Linux trace through pinned GDB, following the compiler shell wrapper so package DB and -B flags remain intact. Fetch the debugger only from caches within the existing overall bound and preserve diagnostic exit failures. Capture bounded stacks, registers, PC disassembly and mappings without environment or core dumps.

Validation: 41 generated-wrapper forwarding/status cases and three extracted workflow-shell cases pass; debugger cache-only fetch succeeds. The local Rosetta Linux VM cannot ptrace the child, and the bounded native ARM control stopped at metadata, so actual native fault capture remains a CI validation step.
2026-10-16 21:06:02 +09:00

29 lines
843 B
Plaintext

# Keep the compiler's normal address layout and literal argv. Its shell wrapper
# execs the actual ELF compiler; do not follow utility subprocesses instead.
set confirm off
set pagination off
set startup-with-shell off
set disable-randomization off
set follow-exec-mode same
set follow-fork-mode parent
set detach-on-fork on
set auto-load off
set debuginfod enabled off
set print elements 32
handle SIGPIPE SIGALRM SIGVTALRM SIGPROF nostop noprint pass
run
# Normal compiler exit codes (including nonzero) remain unchanged. A stopped
# fault has no exit code: capture bounded diagnostics and fail the build.
if $_isvoid($_exitcode)
echo === GHC fault: C stack, registers, PC and mappings ===\n
thread apply all bt 80
info registers
info symbol $pc
info sharedlibrary
info proc mappings
x/32i $pc-32
quit 1
end
quit $_exitcode