FreeBSD QandA 182
Q. crash dump を swap デバイスに取ったのですが、どうやってこの
dump 結果を見たらよいのでしょうか?
A. swap デバイスはマルチユーザモードでは中身が変更されてしまいます。
ですからシングルユーザモードで上げてください。crash 直後は各
ファイルシステムが clean な状態になっていないので、
1. boot: kernel -s でシングルユーザモードで起動する。
2. fsck -p でファイルシステムをチェックする。
3. mount -a -t ufs で ufs のファイルシステムをマウントする。
4. savecore -N /kernel /var/crash とする。
という操作で /var/crash/ に vmcore.0 などが作成されます。vmcore は
セキュリティ上の理由で、root しか読めません。
ここまでの一連の動作は、/etc/rc.conf に dumpdev 変数を適切に
定義しておく事で /etc/rc の中で、自動的に行われます (もちろん
fsck で止まったりしなければ)。
最後に
gdb -k /kernel /dev/ad0b
(/dev/ad0b が crash dump 用のデバイスの場合)
とすれば OK です。カーネルにはデバッグ用のシンボルテーブルを
付けるのをお忘れなく。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。