問題タブ [ftrace]

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 に答える
312 参照

android - adb を使用して /sys/kernel/debug/tracing/available_filter_functions を表示すると、そのようなデバイスはありません

彼ら。

Nexus 6P(An Old Android Smartphone)で仮想メモリ管理を勉強しようとしています。

AOSP のデフォルトのカーネルでは CONFIG_FUNCITON_TRACER がオンにならなかったため、関数トレーサを使用してメモリ管理関連の関数を調べることができません。

そこで、Android カーネルのソース コードをダウンロードし、config_function_tracer とそれに依存する他の構成をオンにして、カーネルを再構築しました。次に、再構築されたカーネル イメージ ファイルを aosp に配置し、再構築された boot image を実行して、ビルド出力イメージを電話にフラッシュします。

電話は正常に起動できます。すべて問題ありませんが、「cat /sys/kernel/debug/tracing/available_filter_functions」を正常に実行できません。「そのようなデバイスはありません」と表示されます。

selinux ラベルを確認し、コマンド 'setenforce permissive' で selinux をオフにしましたが、役に立ちません。

誰でもこの問題を解決するのを手伝ってもらえますか?

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

linux - Linux ftrace は、ロードされたモジュールのトレースを提供しません

hello.ko次の関数でカーネル スレッドを生成するという名前のテスト カーネル モジュールを作成しました。

ここで、ftrace を介してこの関数をトレースしたいと思います。したがって、モジュールがロードされるとシンボルが使用可能になることがわかります。

この関数をフィルタリングするように設定し、トレースをオンにしましたがthread_fn、関数が呼び出されたことを示す dmesg ログを取得しているにもかかわらず、トレースには何も表示されません。

トレースでは何も得られませんが、以下は、dmesgトレースしようとしている同じ関数から繰り返し取得しているログです。

私のカーネルのバージョンは5.8.0で、これを実行していますqemu-aarch64 version 2.11.1(Debian 1:2.11+dfsg-1ubuntu7.37~cloud0)

私はここで愚かなことをしていますか?それとも、既知の問題にぶつかっていますか?

編集 rootfs として Buildroot を使用しています。trace-cmd今回は、ftrace を直接操作する代わりに使用しました。モジュールをロードし、dmesg上記のように からログを確認できますthread_fn

しかし、私は再び何も得られませんでした。

編集 @IanAbbott コメントから間違いに気付いた後、コードを少し修正して、トレースがアクティブなときに少なくともトレースされている関数が呼び出されるようにしました (エントリ/出口がなく、数行しかなかった以前のケースの代わりに)トレースがアクティブな間、ループで実行されます)。

今、hello_log関数からトレースを取得することを期待していましたが、トレースで何も取得しません。今何が問題なのですか?