問題タブ [printk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - printkはラインバッファリングされていますか?
Linuxアプリケーションレベルでは、すべてのprintfメッセージはに移動しstdout
、すべてのerrメッセージはに移動しますstderr
。どこ
stderrは通常、バッファリングされておらず、
stdoutはラインバッファリングされます
それで、マクロを指定するそのような他のレベルの 有無にかかわらずkernel space
使用するとき、このメッセージはどのようにバッファリングされますか?printk()
KERN_ERR
dmesg
別のメカニズムはありますか?
c++ - 構造体とそのすべてのコンテンツを画面に出力する方法は?
構造体と構造体へのポインタを入力として取得し、そのすべての内容を次のように出力するマクロをc
/で見つけたいと思います。c++
typedef
という名前の構造体があるとしましょうstruct account
。
そして、私はそれを次のように使用します:
Linux kernel/c lanaguge に次のようなマクロが必要です。
そして次を印刷します:
アイデアは、カーネルに一種のdir
python関数を持たせることです
linux-kernel - linux-kernel {{sys-callの追加:ユーザースペースからのテスト:data/printkの問題}}
さて、カーネルスペースにいくつかのシステムコールを正常に追加しました。現在、私は彼らの主な意図をコメントアウトしています。データがユーザースペースからカーネルスペースに正常に、そして期待どおりに渡されていることを確認したかったのです。現在、ユーザースペースで変数をunsigned longとして宣言し、printkを介して出力すると、値が同じにならないという問題が発生しています。私はこのトピックに関する他の問題を見てきましたが、それらは役に立たなかったようです。人々は単にprintkを間違って使用していたと思います。以前、文字列を出力するだけのカーネルスペースでこれをテストしましたが、すべて問題がなかったので、ユーザースペースから渡されるデータを追加して、この問題が発生しました。
ユーザースペース:
カーネルスペース:
すべて正常にコンパイルされ、警告やエラーは発生しません。しかし、:を実行すると、期待していた47ではなく1334886164dmesg | tail -20
のような値が得られます。(はい、必要なすべての、、、などを実行しました)。まるでゴミを掴んだり、メモリを使いすぎたりしているようです。しかし、私は途方に暮れています。何か考え/アイデアはありますか?make
make module_install install
reboot
linux - カーネルログへの出力に関する制限
Linux デバイス ドライバー (カーネル バージョン 2.6.32-37) に取り組んでいます。ほとんどの場合、(printk を使用して) カーネル ログに出力してコードをデバッグします。コンピューターが突然応答しなくなるまで、すべてがうまくいきます。何度もチェックしましたが、私のコードは正しいようです。私の質問は:
カーネルログへの出力が多すぎると、コンピューターが応答しなくなる可能性はありますか?
どうもありがとう!
オマー
logging - アプリケーションの実行中にカーネル ログを記録する
printk
このようなLinuxカーネル内にいくつかのステートメントを入れました
a.out
次のように、 application の実行中にこのコマンドの出力を記録することに興味があります。
しかし、この方法はうまくいかないようです。newLog.txt と oldLog.txt はどちらも同じようなものです。ただし、コマンド出力で確認でき"Hello from Kernel"
ますdmesg
。このようなログをキャプチャする簡単な方法を知っていますか?
2 番目の質問はログレベルについてです。ステートメントで使用KERN_DEBUG
しましたが、設定してもコマンド出力に出力されます。printk
echo 1 > /proc/sys/kernel/printk
Hello from kernel
dmesg
c - 新しくコンパイルされたカーネルを起動した後、printk が書き込みを停止しました
VMware マシンで最新の Linux カーネル バージョン (3.7.6) をコンパイルし、新しいカーネルで正常に起動できましたが、何らかの理由で、syslog でカーネルからの printk メッセージを表示できません(/var/log をチェックしています) /messages )、動的に挿入されたモジュールが syslog に書き込まれない
私も試してみました
しかし運がない
私のprintk構成は以下の値で問題ないようです
私が使用しているモジュールもロードされており、そこから見ることができます
解像度に関するアイデアは大歓迎です。
linux - Linux カーネルの printk 出力
私は Linux カーネル開発に不慣れで、timekeep.c ファイルに printk 関数を追加するだけでシステム コール関数を変更しようとすると、次のようになります。
dmesg ユーティリティを使用すると、次のような出力が得られます。
[] 内のものがどのように生成されるのか、よくわかりません。誰かが私にそれについてのヒントを教えてもらえますか?
android - Android KERN_DEBUG ログ レベル
Android では、KERN_DEBUG ログ レベルはどこに書き込まれますか? たとえば、私が電話するとしたら
次に、出力はどこに書き込まれますか?