6

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

基本的にカーネルネットワークスタック内のIP層でIPパケットをキャプチャするカーネルモジュールを開発しようとしています。いくつかの変更を加えた後、同じパケットをNICに返送して送信する必要があります。

これらすべてのプロセスの間、私はprintk()の助けを借りてデバッグ情報を書いています。ただし、問題が発生してカーネル障害が発生した場合は、システムを再起動する必要があります。再起動後、 dmesgコマンドで取得しようとするとデバッグ情報が表示されないため、以前のデバッグ情報を取得する方法はありますか?

4

6 に答える 6

8

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

于 2012-11-02T06:34:24.790 に答える
4

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

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

dmesgと/var/log/kern.logの違いを参照してください

于 2012-11-02T06:23:30.317 に答える
2

キーボードまたはシリアルコンソールを介してマジックSysRqキーシーケンスを入力することにより、ハングしたシステムとの対話を試みることができます。

于 2012-11-02T05:13:52.067 に答える
2

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

于 2012-11-02T06:42:58.840 に答える
0

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

于 2016-05-03T04:38:29.620 に答える
0

GNOME Logsは、そのための非常に便利なソフトウェアです。ログメッセージを最後のセッションに制限して、クラッシュ前の最後のメッセージを簡単に読み取ることができます。

于 2020-12-21T03:38:15.927 に答える