問題タブ [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.
linux - What is the similar to printk in user mode?
We can use printk to send debug message in kernel driver. I have a user mode AP that call kernel driver. I would like to output user mode AP debug message with kernel mode driver at the same time. How to do that?
multithreading - Linux カーネル モジュールでの printk の奇妙な動作
Linux カーネル モジュールのコードを書いていますが、奇妙な動作を経験しています。これが私のコードです:
基本的に、スレッドが終了するのを待ってから、その後何かを印刷しようとしていました。上記のコードはその目標を達成しますが、WITH"printk("debug\n");"
はコメントされていません。コメントアウトしprintk("debug\n");
てデバッグなしでコードを実行し、insmod コマンドを使用してモジュールをロードするとすぐに、モジュールがハングアップし、再帰で失われたように見えます。printk が私のコードにそれほど大きな影響を与えるのはなぜですか?
どんな助けでも大歓迎です。
よろしく。
linux - カーネルでの印刷の出力はどこに行きますか?
Linux用のドライバー(具体的にはubuntuサーバー9.04)をデバッグしていますが、コードにいくつかのprintfステートメントがあります。
これらのステートメントの出力はどこで確認できますか?
編集1:私がやろうとしているのは、procファイルシステムを使用してカーネルに書き込むことです。印刷コードは
kern.logで、ファイル/ proc / net / madwifi / ath1 / fractel_configを(もちろん時間の経過とともに)上書きしようとすると、次のメッセージが表示されます。
説明はありますか?
c - Linux カーネルのデバッグ出力?
Linux カーネルで出力をデバッグするより良い方法はありますか?
現在、コードを散らかしています:
これはあまりきれいではありません。
行全体を適切#ifdef
な方法で :ed する方法が必要です。
makefile - pr_debug と printk の CFLAGS の設定
pr_debug
Linux カーネル モジュールを理解しようとしており、およびの出力を確認したいと考えていますprintk
。私はGNU Makeを使用しています。pr_debugメッセージ
を取得するには、 . DDEBUG
printk
では、ステートメントを有効にするにはどうすればよいですか?
ファイル名がkvm.c
. これら2つの違いは何ですか:
このステートメントは何をしますか:
[編集]:
私の角括弧の使い方が混乱を招いているようです。実際、[ファイル名] とは、kvm.c などのファイルを意味していました。
linux-kernel - printk 2 番目の出力
printk(KERN_INFO, ...) を実行すると、次のような結果が得られます。
<6>[116584.000183] ...
角かっこの間の数字は正確には何ですか?
kernel - 次のログレベルは何ですか: printk ("initrd メモリの解放: %ldk 解放\n", (終了 - 開始) >> 10);
カーネル関数呼び出しで
カーネルのログレベルは言及されていません。では、デフォルトで取られるログレベルはどうなるでしょうか?
linux - Linux での printk の実装
printk がカーネル空間からユーザー空間にデータを渡す方法を知りたいです。printkもrelayfsを使用しているか、独自の実装を持っているかに関係なく、大量のデータをカーネル空間からユーザー空間に転送するための効率的で統合されたファイルシステムを提供するrelayfsについて聞いたことがありますか??
c - Linuxカーネル:「open」syscallのprintkが機能しない
私は疑問を持っています。
カーネルを開き、ディレクトリlinux-3.1.1 / fs/open.cを変更しました
open.cのフォローコードを変更しました。
私はこの行だけを置きます:printk(KERN_EMERG "Testing");
そして私はライブラリを含めます:<linux/kernel.h>
そして<linux/printk.h>
そこで、Linux(Ubuntu)をコンパイルして再起動しました。再起動中に、画面に多くの「テスト」が表示されました。だから今まではOKです。
しかし今、私は問題を抱えています。このプログラムはcで作成しました。
私はこのプログラムをコンパイルして実行し、うまく機能しました。しかし、なぜ「テスト」がシェルに表示されなかったのかわかりません。つまり、PCを再起動したときに「テスト中」という単語がたくさん表示された場合、上記のプログラムを実行したときにこの単語が表示されないのはなぜですか。追加するだけで、上記のコードにこのライブラリを含めます。
unistd.h
、、、、fcntl.h
_ stdio.h
_stdlib.h
君たちありがとう。
c - 割り込みハンドラ内の printk 、それは本当に悪いですか?
割り込みハンドラはできるだけ短くする必要があることは誰もが知っています。また、割り込みハンドラ内でのデバッグなどの関数の追加printk
は、行うべきではありません。実際、私が書いた割り込み駆動の char デバイスの Linux カーネルをデバッグしていたときに試してみたところ、ドライバーのタイミングが台無しになりました。
私が持っている質問は、なぜこれが起こっているのですか?
printk
関数はバッファリングされます! これは、データがキューに挿入され、後で処理されることを理解している限り、おそらく割り込みハンドラーが終了した後に処理されることを意味します。
では、なぜ機能しないのでしょうか。