FreeBSD QandA 182

FreeBSD QandA

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 まで お知らせください。