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 debugging with LLDB on macOS, FreeBSD, or Linux-clang, mapping GDB commands to LLDB, Xcode or VS Code integration, LLDB Python scripting, or debugging Swift and Objective-C.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
| Field | Bound contract |
|---|---|
| Trigger | A program needs debugging with LLDB on macOS, FreeBSD, or a clang-built Linux tree, a GDB habit needs its LLDB equivalent, or LLDB needs driving from Xcode, VS Code, or Python. |
| 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 verdict in chat. Nothing is written. |
| Done | The bug is localized to a frame, variable, or instruction, or the GDB-to-LLDB mapping for the needed command is given. |
-g.Start the session.
lldb ./prog # load a binary
lldb ./prog -- arg1 arg2 # with arguments
lldb -p 12345 # attach to a PID
lldb -c core.1234 # load a core
lldb ./prog core.1234 # binary plus core
Done when: LLDB has a live process or a loaded core.
Map GDB habits to LLDB. The common cases:
| GDB | LLDB |
|---|---|
run [args] | process launch [args] / r |
continue | process continue / c |
next | thread step-over / n |
step | thread step-in / s |
nexti | thread step-inst-over / ni |
stepi | thread step-inst / si |
finish | thread step-out / finish |
break main | breakpoint set -n main / b main |
break file.c:42 | breakpoint set -f file.c -l 42 / b file.c:42 |
break *0x400abc | breakpoint set -a 0x400abc / b -a 0x400abc |
watch x | watchpoint set variable x / wa s v x |
print x | frame variable x / p x |
info locals | frame variable / fr v |
backtrace | thread backtrace / bt |
frame N | frame select N / f N |
info threads | thread list |
thread apply all bt | thread backtrace all |
x/10wx addr | memory read -s4 -fx -c10 addr / x/10xw addr |
set var = 42 | expression var = 42 / expr var = 42 |
The full map lives in references/gdb-lldb-map.md. Done when: the needed command has its LLDB form.
Set breakpoints.
b main
breakpoint set --name foo --condition 'x > 0'
b file.c:42
breakpoint set --file file.c --line 42
b -a 0x100003f20 # address
breakpoint set --func-regex '^MyClass::' # regex
breakpoint set -o -n foo # one-shot
breakpoint list # br l
breakpoint delete 2
breakpoint disable 1 / breakpoint enable 1
breakpoint command add 1 # commands on hit, end with DONE
Done when: execution stops at the condition that matters.
Inspect state.
p x / p *ptr / p arr[0]
frame variable # arguments and locals
expression x * 2 + 1 # evaluate any expression
register read / register read rip rsp
memory read --size 4 --format x --count 10 0x7fff0000
x/10xw 0x7fff0000 # GDB-compatible syntax works
image lookup --type MyClass # type info
type lookup MyClass
Done when: the variable, register, or memory region in question is read.
Set watchpoints.
watchpoint set variable x # write watchpoint
watchpoint set variable -w read x # read watchpoint
watchpoint set variable -w read_write x
watchpoint set expression -- &x # by address
watchpoint list / watchpoint delete 1
Done when: the write or read that corrupts state is trapped.
Debug threads.
thread list
thread select 3
thread backtrace all
thread backtrace --count 5
thread step-over # steps this thread only
Done when: each thread's state is known.
Use the Apple-specific surface.
image lookup --address 0x18ab12345 # symbol in the shared cache
image lookup --name objc_msgSend
b "-[NSArray objectAtIndex:]" # Objective-C method breakpoint
po myObject # print-object, calls -description
image list / image list -b # loaded libraries
Done when: Objective-C or shared-cache frames resolve.
Drive LLDB from VS Code. Install the CodeLLDB extension and add a launch.json configuration:
{
"name": "Debug (lldb)",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/build/prog",
"args": [],
"cwd": "${workspaceFolder}",
"preLaunchTask": "build"
}
Done when: F5 launches the program under LLDB.
Script LLDB with Python.
import lldb
def print_all_threads(debugger, command, result, internal_dict):
target = debugger.GetSelectedTarget()
process = target.GetProcess()
for thread in process:
print(f"Thread {thread.GetIndexID()}: {thread.GetName()}")
for frame in thread:
print(f" {frame}")
def __lldb_init_module(debugger, internal_dict):
debugger.HandleCommand('command script add -f myscript.print_all_threads pthreads')
Load with command script import /path/to/myscript.py. Done when: the script command runs inside LLDB.
<unavailable> for a variable: the value was optimized out; see debug-optimized-builds.references/gdb-lldb-map.md; where no equivalent exists, the table says so.b "-[Class method:]".expression fails on a function call: the function may be inlined or stripped; call it by address or evaluate the expression manually.target create ./prog --core core needs the exact executable.The bug localized to a frame, variable, register, or instruction, with the LLDB commands that produced the evidence; or the GDB-to-LLDB mapping for the command that was asked about.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。