1

LTTng を使用して、カーネル イベントとユーザー空間のトレースポイントをトレースしています。それらを 1 つの Trace Compass ウィンドウでまとめて視覚化したいと考えています。ただし、LTTng はカーネル イベントとユーザー空間イベントを別々のトレース ファイルに保存するため、Trace Compass でそれらを一緒に表示することができません。

ここの誰かが次のいずれかの方法を知っていますか?

(1) 両方の種類のイベントを 1 つのファイルに保存しますか?、または

(2) Trace Compass を使用して、2 つのトレース ファイルからの情報を結合しますか?


詳細:

LTTng を使用して 2 種類のイベントをトレースしています。

(1) カーネルsched_switchイベント (スケジューラがコンテキストスイッチを発生させたとき)

(2) ユーザー空間のカスタム トレースポイント (私は setMarkerTracepoint と名付け、私の C++ プログラムから投稿しました)

次のコマンドを使用して、トレース セッションをセットアップし、トレースを開始します

# trace data is saved at TRACE_DIR
TRACE_DIR=/home/root/lttng-traces
lttng-sessiond --daemonize
lttng create my-session --output=$TRACE_DIR
lttng enable-event --userspace tracepointProvider:setMarkerTracepoint
lttng enable-event --kernel sched_switch
lttng start

次に、C++ アプリケーションを実行し、アプリケーションの終了後に LTTng トレースを停止します。

lttng destroy

ここで、トレース データが保存された場所を確認すると、トレース データが保存されている場所が 2 つあります。

(1) /home/root/lttng-traces/kernel/

(2) /home/root/lttng-traces/ust/

Trace Compass を使用してトレースを視覚化します。カーネル ディレクトリの下のファイルには、すべての sched_switch イベントがありますが、setMarkerTracepoint イベントはありません。ust ディレクトリ以下のファイルはその逆です。

カーネル イベントでトレースしますが、ユーザー空間のトレースポイントはありません

ユーザー空間トレースポイントでトレースしますが、カーネル イベントはありません

C++ コードの sched_switch イベントとトレースポイントの両方を同じ Trace Compass ウィンドウに表示したいと考えています。

Trace Compass のユーザー ガイドLTTng のドキュメントでは、カーネル トレースとユーザー空間トレースを一緒に使用することについては触れていません。

lttng-viewbabeltrace がインストールされた状態でコマンドを使用すると、 lttng-view.

どんな助けでも大歓迎です!:)

4

1 に答える 1