問題タブ [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.

0 投票する
1 に答える
1937 参照

c - printkはラインバッファリングされていますか?

Linuxアプリケーションレベルでは、すべてのprintfメッセージはに移動しstdout、すべてのerrメッセージはに移動しますstderr。どこ

stderrは通常、バッファリングされておらず、

stdoutはラインバッファリングされます

それで、マクロを指定するそのような他のレベルの 有無にかかわらずkernel space使用するとき、このメッセージはどのようにバッファリングされますか?printk()KERN_ERR

dmesg別のメカニズムはありますか?

0 投票する
2 に答える
5774 参照

c++ - 構造体とそのすべてのコンテンツを画面に出力する方法は?

構造体と構造体へのポインタを入力として取得し、そのすべての内容を次のように出力するマクロをc/で見つけたいと思います。c++typedef

という名前の構造体があるとしましょうstruct account

そして、私はそれを次のように使用します:

Linux kernel/c lanaguge に次のようなマクロが必要です。

そして次を印刷します:

アイデアは、カーネルに一種のdirpython関数を持たせることです


構造体の内容を文字列化するマクロを書く

さまざまな型の変数値を出力するための最も一般的な C マクロ

構造体を出力する C プリプロセッサ マクロはありますか?

C プリプロセッサで while ループを記述する

0 投票する
1 に答える
327 参照

linux-kernel - linux-kernel {{sys-callの追加:ユーザースペースからのテスト:data/printkの問題}}

さて、カーネルスペースにいくつかのシステムコールを正常に追加しました。現在、私は彼らの主な意図をコメントアウトしています。データがユーザースペースからカーネルスペースに正常に、そして期待どおりに渡されていることを確認したかったのです。現在、ユーザースペースで変数をunsigned longとして宣言し、printkを介して出力すると、値が同じにならないという問題が発生しています。私はこのトピックに関する他の問題を見てきましたが、それらは役に立たなかったようです。人々は単にprintkを間違って使用していたと思います。以前、文字列を出力するだけのカーネルスペースでこれをテストしましたが、すべて問題がなかったので、ユーザースペースから渡されるデータを追加して、この問題が発生しました。

ユーザースペース:

カーネルスペース:

すべて正常にコンパイルされ、警告やエラーは発生しません。しかし、:を実行すると、期待していた47ではなく1334886164dmesg | tail -20のような値が得られます。(はい、必要なすべての、、、などを実行しました)。まるでゴミを掴んだり、メモリを使いすぎたりしているようです。しかし、私は途方に暮れています。何か考え/アイデアはありますか?makemake module_install installreboot

0 投票する
1 に答える
1087 参照

linux - カーネルログへの出力に関する制限

Linux デバイス ドライバー (カーネル バージョン 2.6.32-37) に取り組んでいます。ほとんどの場合、(printk を使用して) カーネル ログに出力してコードをデバッグします。コンピューターが突然応答しなくなるまで、すべてがうまくいきます。何度もチェックしましたが、私のコードは正しいようです。私の質問は:

カーネルログへの出力が多すぎると、コンピューターが応答しなくなる可能性はありますか?

どうもありがとう!

オマー

0 投票する
2 に答える
337 参照

logging - アプリケーションの実行中にカーネル ログを記録する

printkこのようなLinuxカーネル内にいくつかのステートメントを入れました

a.out次のように、 application の実行中にこのコマンドの出力を記録することに興味があります。

しかし、この方法はうまくいかないようです。newLog.txt と oldLog.txt はどちらも同じようなものです。ただし、コマンド出力で確認でき"Hello from Kernel"ますdmesg。このようなログをキャプチャする簡単な方法を知っていますか?

2 番目の質問はログレベルについてです。ステートメントで使用KERN_DEBUGしましたが、設定してもコマンド出力に出力されます。printkecho 1 > /proc/sys/kernel/printkHello from kerneldmesg

0 投票する
0 に答える
134 参照

c - 新しくコンパイルされたカーネルを起動した後、printk が書き込みを停止しました

VMware マシンで最新の Linux カーネル バージョン (3.7.6) をコンパイルし、新しいカーネルで正常に起動できましたが、何らかの理由で、syslog でカーネルからの printk メッセージを表示できません(/var/log をチェックしています) /messages )、動的に挿入されたモジュールが syslog に書き込まれない

私も試してみました

しかし運がない

私のprintk構成は以下の値で問題ないようです

私が使用しているモジュールもロードされており、そこから見ることができます

解像度に関するアイデアは大歓迎です。

0 投票する
2 に答える
6048 参照

linux - Linux カーネルの printk 出力

私は Linux カーネル開発に不慣れで、timekeep.c ファイルに printk 関数を追加するだけでシステム コール関数を変更しようとすると、次のようになります。

dmesg ユーティリティを使用すると、次のような出力が得られます。

[] 内のものがどのように生成されるのか、よくわかりません。誰かが私にそれについてのヒントを教えてもらえますか?

0 投票する
1 に答える
1019 参照

android - Android KERN_DEBUG ログ レベル

Android では、KERN_DEBUG ログ レベルはどこに書き込まれますか? たとえば、私が電話するとしたら

次に、出力はどこに書き込まれますか?