4

マニュアルページによると、メッセージのログレベルの優先度がデフォルト設定のログレベルよりも高い場合、端末に出力されると書かれています。しかし、私が次のような文を使用したとき

printk(KERN_ALERT " MESSAGE ")

端末にメッセージを出力する際に​​問題に直面しています。デフォルトの優先順位は 4 に設定されてKERN_ALERTおり、優先順位1が高いためです。

では、どうすれば端末にメッセージを出力できますか?

4

3 に答える 3

3

これがあなたの質問に正確に答えるわけではないことはわかっていますが、コメントで述べたようにprintk、コンソールにログを作成することは一般的に良い考えではありません。これは、あなたの目的に十分に役立つはずの代替案です。

デバッグ目的で使用したいので、新しいターミナルを開いて次のコマンドを実行するだけです。

tail -f /var/log/messages

また

tail -f /var/log/dmesg

など。tail -fファイル内の最後のメッセージを出力しますが、更新を待ち続けます。ファイルにさらに行が書き込まれるとすぐに、tail -fそれらがコンソールに書き込まれます。

このメソッドを使用するか、コンソールに直接出力するかに関係なく、クラッシュの場合にログが確実に画面に表示されるようにprintk、デバッグ モードで呼び出すマクロを定義することにも関心があるかもしれません。msleepこれは次のように行われます。

set_current_state(TASK_INTERRUPTIBLE);
msleep(/* amount in milliseconds */);
于 2013-04-22T12:00:53.970 に答える