2

マルチスレッドのpthreadアプリケーションでのコンテキスト切り替えの動作を監視したいと思います。

他のRTOS(Micro C OS)では、アプリケーションのスレッドごとにコンテキストスイッチコールバックを登録し、ログに記録して(または、gpioを切り替えて)、スレッドコンテキストの切り替えをリアルタイムで監視することができました。これは、複数のスレッドのリアルタイムの動作と相互作用をデバッグするための貴重なツールでした。

私の現在の環境は、pthreadapiを利用した組み込みLinuxです。各コンテキストスイッチを監視する方法はありますか?

4

1 に答える 1

2

あなたが説明した方法ではありませんが、oprofile、SystemTap、perf イベントなど、Linux 用のさまざまなプロファイリング ツールがありますが、それらが組み込み開発にどの程度適合するかはわかりません。

編集: perf はおそらく最適です (使用するのに十分な最新のカーネルを実行している場合)。これはメインラインにあるため、オンにするだけでよく、非常に基本的です。

編集:これらのどれもうまくいかない場合は、いつでもカーネルコンテキストスイッチコードを変更できます...

EDIT:トレースフレームワークの1つを見逃しました.LTTngもあります

busybox を使用していて、独自のカーネル perf をコンパイルできる場合は、おそらく最も最小限の方法です。これは、カーネルで perf イベントをオンにし、カーネル ソースに付属する perf ツールをコンパイルすることで構成されます (tools/perf にあります)。

于 2010-05-26T20:52:19.790 に答える