- ハンズオンとしていい資料: [大規模ソフトウェアを手探る](https://doss.eidos.ic.i.u-tokyo.ac.jp/)
- gdb-pedaという拡張がいい
- [GitHub - longld/peda: PEDA - Python Exploit Development Assistance for GDB](https://github.com/longld/peda)
使い方
- 起動
- `$ gdb <実行バイナリ> <引数...>`
- `$ gdb -p プロセス番号`
- break point
- 関数名を指定: `b <関数名>`
- ファイル名・行番号を指定: `b <ファイル名>:<行番号>`
- ファイル名は省略可能
- breakpointの一覧: `info breakpoints`
- break pointの削除: `delete <番号>`
- 全削除: `delete`
- プログラムの実行
- `r`
- `r <引数1> <引数2>...`
- 実行
- `n`
- ステップin: `s`
- 関数から抜ける: `fin`
- 次のbreak pointまで続ける: `c`
- 変数
- 表示: `p <変数名>`
- 代入: `p <変数名>=<値>`