Linux辛い

自分用メモ。
gdbを使ってデバッグまたはコアダンプを解析する方法。

下準備

Linuxではコアダンプの出力が無効になっているようなので有効にします。

1
# ulimit -c unlimited

unlimited出力サイズを無制限にするとのこと。
サイズを制限しなくてはならないような巨大プログラムや貧弱マシンでなければ無制限一択。

デバッグ

簡単。

1
2
3
4
5
# gdb 

...

# (gdb) run

gdbにプログラムのパスを渡し、run で実行するだけです。

ダンプの解析

ulimitでコアダンプを有効化にしていると、カレントディレクトリにダンプファイルが出力されるはず。
これをgdbで解析するには

1
2
3
4
5
# gdb  <ダンプのパス>

...

# (gdb)

はい、これでダンプを解析できます。
あとは、bt (backtrace)**、info threads**等でゴリゴリ解析してください。

時間ができたら、コマンドをまとめたいです。