Phase 2: GDB / 逆アセンブル
このフェーズは「命令を書く」から「既存バイナリを観察して原因を特定する」に移行します。実務の障害対応に直結する章です。
このフェーズは「命令を書く」から「既存バイナリを観察して原因を特定する」に移行します。実務の障害対応に直結する章です。
1. デバッグビルドでシンボルを残す
gcc -O0 -g sample.c -o sample
2. ブレークして1命令ずつ追跡
gdb ./sample
(gdb) break main
(gdb) run
(gdb) stepi
(gdb) info registers
3. 逆アセンブルとメモリ観察
(gdb) disassemble /m main
(gdb) x/32xb $rsp
(gdb) x/8gx $rbp-0x40
run, continue, nexti, stepifinish, untilinfo registers, bt, framedisassemble, x/, info localsbreak, watch, rwatch, awatchcondition, commandscmp直後のje成立条件を説明するbtから異常関数を特定するx/で確認する