「参照」のコマンドのリストを含むperf script
、perf trace
およびに関するドキュメントを見ました。trace-cmd
sched:sched_process_exec
たとえば、「リアルタイム」を使用して追跡できますperf trace -a --no-syscalls -e sched:sched_process_exec
。しかし、プロセスを示すだけです名前(例えばls
)。トレースポイントに特定のパラメータがない場合、PIDは表示されません。 perf script
常にPIDを表示しますが、リアルタイム出力は表示しません。ファイルの内容を表示しますperf.data
。
btrace
forなどの単一コマンドでは必要ありませんblktrace
。 blktrace -d /dev/sda -o - | blkparse -i -
.
(上記の両方のコマンドはPIDを表示します:-).blktrace
トレースイベントも使用する一連のコマンドが、記録されたトレースを印刷するのと同じ形式でリアルタイム出力を印刷できることを見ると、残念です。ユニバーサルトラッキングツールでこのような素晴らしい機能を見つけたことはありません! )
答え1
perf record -a --no-syscalls -e sched:sched_process_exec sh -c read | perf script
(sh -c read
このトレースを停止する方法があります。Enterキーを押します。このコマンドを省略してctrl + Cを使用してパイプを中断しようとすると、出力も失われます。おそらく中断されるためですperf script
)。
ただし、バッファリングのため、この出力は「リアルタイム」ではありません。たとえば、上記のコマンドを実行すると何も表示されませんが、Enterキーを押すとコマンドが停止し、のexec()行が表示されますsh
。 blktrace
持つ特別なケースコードデフォルトのC stdioバッファリングの無効化を含むパイプの出力を処理します。コマンドperf record
で実行しようとすると、unbuffer
「互換性のないファイル形式」エラーが発生します。エラーはperf script
。
man perf-report
...
オプション
-i, --input=
ファイル名を入力してください。 (既定値: perf.datastdinがfifoでない限り)