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-view
babeltrace がインストールされた状態でコマンドを使用すると、 lttng-view
.
どんな助けでも大歓迎です!:)