GDBを使ったんだよ
GDBを使ってデバッグすると便利らしいけど意外と使う機会がなかった。
でもちょっと使う機会が出来たから今後使う時に困らないように使い方をメモっとく。
まずコンパイル時にファイルにデバッグ情報を追加して最適化を向こうにする。つまりコンパイルするときにコンパイルオプション-g -O0を付けておく。
これを付けてコンパイルされたプログラムを走らせる。
gdb a.out
ブレークポイントの設定
ブレークポイントを設定するのにはbreakコマンドを使えばよい。main関数に入るまで走らせるなら
(gdb)break main
とすればよく、行番号で指定したいなら
(gdb)break 行番号
とすればよい。
またbreakはbと省略することもできる。
実行
実行するには
(gbd) run
とすればプログラムが開始される。
関数の中を追いかけるときは
(gdb) step
関数の中を追いかけない時は
(gdb) next
とすればプログラムが1行ずつ実行されていく
次のブレークポイントまで一気に動かすのには
(gdb) continue
とすればよい。
これらはどれもn,s,cと省略することができる。