Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
日本語の概要は準備中です。原文の説明を表示しています。
Use when loading core files in GDB or LLDB, enabling core dump generation via ulimit or coredumpctl, mapping symbols with debuginfod, or extracting backtraces from production segfaults.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
| Field | Bound contract |
|---|---|
| Trigger | A program crashed and left a core file, cores need enabling on Linux or macOS, symbols are missing for a production binary, or a backtrace is needed without re-running the program. |
| Authority | Read-only. Emits analysis and commands for the operator to run on the target; no file writes, no rollback needed. No remote mutation. |
| Side effect | Diagnostic commands and a crash verdict in chat. Nothing is written. |
| Done | The crashing frame, signal, and faulting access are named, or the missing prerequisite (symbols, core file, build ID) is stated. |
core file, a coredumpctl entry, or a /cores/core.<PID> file on macOS.Enable cores on Linux.
ulimit -c unlimited # this shell only
ulimit -c # confirm
cat /proc/self/limits # per-process view
Persist for all users in /etc/security/limits.conf:
* soft core unlimited
* hard core unlimited
Control where cores land:
cat /proc/sys/kernel/core_pattern
sudo sysctl -w kernel.core_pattern=/tmp/core-%e-%p-%t
%e is the executable name, %p the PID, %t the timestamp. If the pattern starts with |, a pipe handler such as systemd-coredump or apport owns core collection; use step 2 instead of looking for files. Done when: ulimit -c reports unlimited and the pattern names a writable path or a known pipe handler.
Use coredumpctl when systemd collects cores.
coredumpctl list # recorded crashes
coredumpctl list myapp # crashes of one executable
coredumpctl info # details of the latest
coredumpctl gdb # open the latest in GDB
coredumpctl gdb 12345 # open a specific PID
coredumpctl dump 12345 -o myapp.core # export the core file
Cores live in /var/lib/systemd/coredump/. Done when: the crash is listed and coredumpctl gdb opens it.
Enable cores on macOS.
ulimit -c unlimited
ls /cores/ # cores land as /cores/core.<PID>
Crash Reporter also writes .crash and .ips logs under ~/Library/Logs/DiagnosticReports/. Done when: a core or crash report exists for the failed run.
Analyze the core with GDB.
gdb ./prog core.12345
gdb ./prog-with-symbols core.12345 # use the unstripped build when stripped
(gdb) bt # call stack
(gdb) bt full # stack plus locals
(gdb) info registers # CPU state at the fault
(gdb) frame 2 # jump to a frame
(gdb) info locals
(gdb) print ptr
(gdb) thread apply all bt full # every thread
(gdb) print $_siginfo # signal details on Linux
Done when: the crashing frame, the signal, and the faulting address are named.
Analyze the core with LLDB.
lldb ./prog -c core.12345
(lldb) target create ./prog --core core.12345 # equivalent, inside LLDB
(lldb) bt
(lldb) thread backtrace all
(lldb) frame select 2
(lldb) frame variable
(lldb) register read
Done when: the crashing frame and faulting access are named.
Resolve missing symbols with debuginfod. debuginfod maps build IDs to DWARF data over HTTP.
export DEBUGINFOD_URLS="https://debuginfod.ubuntu.com https://debuginfod.elfutils.org"
gdb ./prog core # GDB fetches symbols automatically
debuginfod-find debuginfo <build-id>
debuginfod-find source <build-id> /path/to/file.c
Done when: symbols resolve, or the build ID is recorded for manual lookup.
Resolve symbols manually when debuginfod cannot help.
readelf -n ./prog | grep 'Build ID'
Install the matching debug package (prog-dbgsym or prog-dbg on Debian, prog-debuginfo on Fedora/RHEL), then point GDB at it:
(gdb) set debug-file-directory /usr/lib/debug
Done when: GDB loads the matching debug file and bt shows function names.
Strip for distribution while keeping symbols. Build with symbols, split them out, ship the stripped binary.
objcopy --only-keep-debug prog prog.debug
objcopy --strip-debug prog prog.stripped
objcopy --add-gnu-debuglink=prog.debug prog.stripped
eu-strip -f prog.debug prog does the split in one step. Keep prog.debug in a symbol store indexed by build ID. Done when: the stripped binary resolves symbols through its .gnu_debuglink.
Triage without an interactive session.
gdb -batch -ex 'bt full' -ex 'thread apply all bt full' ./prog core 2>&1 | tee crash.txt
gdb -batch -ex 'info registers' ./prog core
file core # signal, PID, architecture
Done when: crash.txt holds the backtrace and register state.
For the core-pattern token table, the public debuginfod server list, and the full command set, see references/cheatsheet.md.
ulimit -c, the kernel.core_pattern target, and whether a pipe handler intercepted the dump. Re-run the failing program after fixing the limit.coredumpctl list is empty: cores may go to files instead; check core_pattern and the filesystem it names.no debugging symbols found: fetch them through debuginfod (step 6) or install the debug package (step 7). A stripped binary still yields addresses and a usable bt skeleton.bt stops early or shows ?? frames. Read info registers and walk the stack pointer manually with x/.A crash verdict naming the signal, the faulting frame and address, and the register state, plus the symbol-resolution path used (unstripped binary, debug package, or debuginfod).
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
日本語の概要は準備中です。原文の説明を表示しています。
Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.
日本語の概要は準備中です。原文の説明を表示しています。
Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.
日本語の概要は準備中です。原文の説明を表示しています。