mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-11-06 14:47:43 +00:00
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.
29 lines
843 B
Plaintext
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
|