CentOSでkernel crashdump解析

CentOS4ベースで解析する必要があったのでやりながらメモ。

  • 用意する物

#バージョンはすべて同一で揃える
対象環境から取得
vmcore (diskdump/netdumpで取得、/var/crash以下に落ちてる)
CentOSのミラーから取得
kernel-2.6.9-XX.X.X.EL.i686.rpm (既に入ってるはず)
kernel-2.6.9-XX.X.X.EL.src.rpm (参照用)
http://vault.centos.org/debuginfo/4/i386/ から取得
kernel-debuginfo-2.6.9-XX.X.XX.EL.i686.rpm (デバックシンボル付き)

#/usr/src/redhat/BUILD/kernel-2.6.9 以下にパッチ後のソースが展開される
rpm -ivh kernel-2.6.9-XX.X.X.EL.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp kernel-2.6.spec

  • デバック情報付きバイナリの展開

#/usr/lib/debug 以下に展開される
rpm -ivh kernel-debuginfo-2.6.9-XX.X.XX.EL.i686.rpm

gdb --core=./vmcore --se=/usr/lib/debug/lib/modules/2.6.9-XX.X.X.EL/vmlinux
良く使うコマンドは以下
list
bt
info reg
ptype
p

解った情報からgoogleで調べるなり、kernelソースをgrepして追っかけるなりする。