0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

gdbを用いたC言語コードのデバッグ

0
Posted at

gdbを用いたデバッグ作業の備忘録を残す。
参考にしたのはこちら

gdbの使い方

コンパイルのコマンド。

$ gcc -g -O0 <ソースファイル名>

デバッグに入る。

$ gdb a.out

ブレークポイントをmain関数にする。

(gdb) break main

走らせる。

(gdb) run

該当箇所まで1行ずつ進める

(gdb) next
(gdb) next
...

怪しいところに来たら、変数を出力してみる

(gdb) print <変数>

ソースコード表示。

(gdb) list

あるところ(hogehoge.cの50行目まで)まですっ飛ばしたいとき。

(gdb) break hogehoge.c:50
(gdb) continue

デバッグはうまくいったの…?

原因はわかったが、コードに問題はなかった。
inputのデータファイルをうまく扱えていなかっただけであった。
gdbを用いたデバッグ作業も良いが、今回の場合はそれよりも物理量(位置、速度、粒子間距離など)をアウトプットするほうが原因を特定しやすかった。

教訓: 面倒くさがらずに、全ての粒子の位置、速度、粒子間距離などをアウトプットせよ。うまくいったケースとうまくいかなかったケースを比較せよ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?