「crashコマンドによるクラッシュダンプ調査」の編集履歴(バックアップ)一覧はこちら

crashコマンドによるクラッシュダンプ調査」(2011/10/23 (日) 00:39:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

* crashコマンドによるクラシュダンプの解析  クラッシュダンプをデバッグするには、crashコマンドを使う。 Usage: crash [-h [opt]][-v][-s][-i file][-d num] [-S] [mapfile] [namelist] [dumpfile] :mapfile|シンボルのアドレスが記された以下にあるファイル。ダンプ取得時のカーネルがシンボル情報をもっていれば、nmコマンドで作れるらしい。     /boot/System.map-<カーネルバージョン> :namelist|デバッグ情報付き(-gオプションでコンパイル)のカーネルのバイナリ(vmlinux)。kernel-debuginfoをインストールすると、以下に作成される。 /usr/lib/debug/lib/modules/<カーネルバージョン>/vmlinux :dumpfile|クラッシュダンプ(vmcore)で、カーネルのパニック時などにデフォルトの設定なら以下に作成される。 /var/crash/YYYY-MM-DD-hh:mm/vmcore というわけで、crashコマンドを使う前に、「kernel-debuginfo」パッケージをインストールする。CentOSだとRHEL用のrpmが以下にあるので、他に必要な「kernel-debuginfo-common」そこからダウンロードしてインストールした。  kernel-debuginfoをインストールするには、他にkernel-debuginfo-commonも必要なので、それもインストールする。  http://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/i386/Debuginfo/ # rpm -ivh kernel-debuginfo-common-2.6.18-274.7.1.el5.i686.rpm # rpm -ivh kernel-debuginfo-2.6.18-274.7.1.el5.i686.rpm なお、RHELだと以下でインストールできるらしが、CentOSなので地道にダウンロードした。 でも、ダウンロード元がRedHatのサイトなので、以下でもOKかも。 # yum −enablerepo=¥*debuginfo install kernel-debuginfo.$(uname -m) crash インストールが済むと、デバッグ情報を含んだカーネルが以下にできているので、それをcrashのnamelistに指定する。 $ ls -l /usr/lib/debug/lib/modules/2.6.18-274.7.1.el5/vmlinux -rwxr-xr-x 1 root root 70916548 10月 18 01:29 vmlinux クラッシュダンプの起動は以下のようにする。 # crash /boot/System.map-2.6.18-274.7.1.el5 \ /usr/lib/debug/lib/modules/2.6.18-274.7.1.el5/vmlinux \ /var/crash/2011-10-22-20\:08/vmcore すると、以下のような表示のあとに「crash>」のプロンプトが出て、解析用のサブコマンドが入力できる。 ・・・中略・・・ SYSTEM MAP: /boot/System.map-2.6.18-274.7.1.el5 DEBUG KERNEL: /usr/lib/debug/lib/modules/2.6.18-274.7.1.el5/vmlinux (2.6.18-274.7.1.el5) DUMPFILE: vmcore CPUS: 4 DATE: Sat Oct 22 10:16:57 2011 UPTIME: 00:06:41 LOAD AVERAGE: 0.21, 0.12, 0.05 TASKS: 194 NODENAME: localhost.localdomain RELEASE: 2.6.18-274.7.1.el5 VERSION: #1 SMP Thu Oct 20 16:20:37 EDT 2011 MACHINE: i686 (2594 Mhz) MEMORY: 1 GB PANIC: "SysRq : Trigger a crashdump" PID: 5948 COMMAND: "bash" TASK: f7c5b000 [THREAD_INFO: dacdc000] CPU: 2 STATE: TASK_RUNNING (SYSRQ) crash> help * files mod runq union alias foreach mount search vm ascii fuser net set vtop bt gdb p sig waitq btop help ps struct whatis dev irq pte swap wr dis kmem ptob sym q eval list ptov sys exit log rd task extend mach repeat timer crash> ps PID PPID CPU TASK ST %MEM VSZ RSS COMM > 0 0 0 c06903c0 RU 0.0 0 0 [swapper] 0 1 1 f7c32550 RU 0.0 0 0 [swapper] ・・・省略・・・
* crashコマンドによるクラシュダンプの解析  クラッシュダンプをデバッグするには、crashコマンドを使う。 Usage: crash [-h [opt]][-v][-s][-i file][-d num] [-S] [mapfile] [namelist] [dumpfile] :mapfile|シンボルのアドレスが記された以下にあるファイル。ダンプ取得時のカーネルがシンボル情報をもっていれば、nmコマンドで作れるらしい。     /boot/System.map-<カーネルバージョン> :namelist|デバッグ情報付き(-gオプションでコンパイル)のカーネルのバイナリ(vmlinux)。kernel-debuginfoをインストールすると、以下に作成される。 /usr/lib/debug/lib/modules/<カーネルバージョン>/vmlinux :dumpfile|クラッシュダンプ(vmcore)で、カーネルのパニック時などにデフォルトの設定なら以下に作成される。 /var/crash/YYYY-MM-DD-hh:mm/vmcore というわけで、crashコマンドを使う前に、「kernel-debuginfo」パッケージをインストールする。CentOSだとRHEL用のrpmが以下にあるので、他に必要な「kernel-debuginfo-common」そこからダウンロードしてインストールした。  kernel-debuginfoをインストールするには、他にkernel-debuginfo-commonも必要なので、それもインストールする。  http://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/i386/Debuginfo/ # rpm -ivh kernel-debuginfo-common-2.6.18-274.7.1.el5.i686.rpm # rpm -ivh kernel-debuginfo-2.6.18-274.7.1.el5.i686.rpm なお、RHELだと以下でインストールできるらしが、CentOSなので地道にダウンロードした。 でも、ダウンロード元がRedHatのサイトなので、以下でもOKかも。 # yum −enablerepo=¥*debuginfo install kernel-debuginfo.$(uname -m) crash インストールが済むと、デバッグ情報を含んだカーネルが以下にできているので、それをcrashのnamelistに指定する。 $ ls -l /usr/lib/debug/lib/modules/2.6.18-274.7.1.el5/vmlinux -rwxr-xr-x 1 root root 70916548 10月 18 01:29 vmlinux クラッシュダンプの起動は以下のようにする。 # crash /boot/System.map-2.6.18-274.7.1.el5 \ /usr/lib/debug/lib/modules/2.6.18-274.7.1.el5/vmlinux \ /var/crash/2011-10-22-20\:08/vmcore すると、以下のような表示のあとに「crash>」のプロンプトが出て、解析用のサブコマンドが入力できる。 ・・・中略・・・ SYSTEM MAP: /boot/System.map-2.6.18-274.7.1.el5 DEBUG KERNEL: /usr/lib/debug/lib/modules/2.6.18-274.7.1.el5/vmlinux (2.6.18-274.7.1.el5) DUMPFILE: vmcore CPUS: 4 DATE: Sat Oct 22 10:16:57 2011 UPTIME: 00:06:41 LOAD AVERAGE: 0.21, 0.12, 0.05 TASKS: 194 NODENAME: localhost.localdomain RELEASE: 2.6.18-274.7.1.el5 VERSION: #1 SMP Thu Oct 20 16:20:37 EDT 2011 MACHINE: i686 (2594 Mhz) MEMORY: 1 GB PANIC: "SysRq : Trigger a crashdump" PID: 5948 COMMAND: "bash" TASK: f7c5b000 [THREAD_INFO: dacdc000] CPU: 2 STATE: TASK_RUNNING (SYSRQ) crash> help * files mod runq union alias foreach mount search vm ascii fuser net set vtop bt gdb p sig waitq btop help ps struct whatis dev irq pte swap wr dis kmem ptob sym q eval list ptov sys exit log rd task extend mach repeat timer crash> ps PID PPID CPU TASK ST %MEM VSZ RSS COMM > 0 0 0 c06903c0 RU 0.0 0 0 [swapper] 0 1 1 f7c32550 RU 0.0 0 0 [swapper] ・・・省略・・・ ---- #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: