基本的に自分用のメモですが、これからgdbを触ってみようと思っている方も参考になるかと思います。
gdbとは
C言語やC++等のプログラムをLinux上でデバッグするデバッガです
準備
デバッグ対象のソースを-g3
オプションを付けてビルドする
- オプションを付けずともgdbは使用可能ですが、付けないとデバッグ情報がほとんどないので付けるのをオススメします
使い方
以下のように準備した実行ファイルをgdbに読み込ませます。
今回は例として実行ファイル名はa.out
としています。
$ gdb a.out
コマンド
run [引数]
- gdbで読み込んだプログラムを実行します
- 省略形は
r
(gdb) r
quit [引数]
- gdbを終了します
- 省略形は
q
(gdb) q
break ファイル名:行数
- 指定のファイル/行にブレイクポイントを設定します
- 省略形は
b
(gdb) b hoge.cpp:10
next
- ステップ実行をします(関数の中には入りません)
- 省略形は
n
(gdb) n
step
- ステップ実行をします(関数の中に入ります)
- 省略形は
s
(gdb) s
continue
- ブレイクポイントなどで停止したプログラムを次のブレイクポイントまで再開します
- 省略形は
c
(gdb) b hoge.cpp:10
- 変数や式などを評価し表示します
- 省略形は
p
(gdb) p hoge
backtrace
- 直前までの関数呼び出しの履歴を表示します
- 省略形は
bt
(gdb) bt