2012-11-02 37 views
5

カーネルクラッシュが発生した後、カーネルの以前のデバッグ情報を取得する方法はありますか?カーネルクラッシュ後のLinuxカーネルデバッグ情報の取得

カーネルモジュールを開発しようとしていますが、基本的にはカーネルネットワークスタック内のipレイヤーでIPパケットをキャプチャします。&私は同じパケットをNICに送信して送信しなければなりません。これらすべてのプロセスの間に、のprintk()の助けを借りてデバッグ情報を書いています。何かが間違っている場合は&カーネルの障害が発生したため、システムを再起動する必要があります。だから私は以前のデバッグ情報を得るための方法はありますか?デバッグ情報が再起動した後、私がdmesgコマンドで取得しようとしているので、デバッグ情報が存在しないためです。

答えて

7

実際には/ var/log/dmesgのファイルは、現在のブートの印刷メッセージのログが含まれています。 /var/log/kern.logファイルには、以前のブートカーネルのprintメッセージログがubuntuに格納されています。他のLinuxのフレーバーでは、fedoraなどの/ var/log/messagesファイルに含まれます。

2

キーボードまたはシリアルコンソールを使用してmagic SysRqキーシーケンスを入力すると、ハングしたシステムとやりとりすることができます。

+0

実際に私のモジュールシステムを実行すると、ハングするので、何もできません。私はreboot.imを魔法のSysRqキーシーケンスで試していますが、結果が得られません。 – akp

+0

* magic sysrq *カーネルの設定とビルド中に –

4

システムの再起動後でも、カーネルログメッセージは/var/log/dmesgファイルで表示されます。

dmesg.Xには非常に多くのファイルがあります。これらのファイルは以前のカーネルログです。 dmesgは最新のファイルです。

difference between dmesg and /var/log/kern.log

2

Linuxの最新バージョンcrash dumpsをサポートしています。成功すると、カーネルログメッセージやスタックトレースなど、メモリの完全ダンプが含まれます。

0

実際、クラッシュ情報(dmesg)は/ var/crash /の場所にあります。 ここにはすべてのシステムクラッシュのためのフォルダがあります。 127.0.0.1-date-timeのようなフォルダ名。 vmcore-dmesg.txtはフォルダ内にあります。これらのファイルから、クラッシュ前に実行されるdmesgを取得しています。

関連する問題