PIDを使用してperfでプロセスを記録すると機能しない

PIDを使用してperfでプロセスを記録すると機能しない

perf を使用してパフォーマンス プロファイリングを実行すると、通常は次のように動作します。

perf record -g -F99 $BINARY_NAME

完了すると、コマンドは次のように表示されます。

[ perf record: Captured and wrote 0.006 MB output.data (37 samples) ]

そして、 を使用してキャプチャされたスタック トレースを読み取ることができますperf script

ただし、私のプログラムは非同期ネットワークを実行しており、接続先のサーバーがオフラインの場合 (私のプログラムは「ホストへのルートがありません (OS エラー 113)」というメッセージを受け取り、それらを処理して再度接続を試行します)、perf コマンドはサンプルを収集できません。

[ perf record: Captured and wrote 0.006 MB output.data ]

で検査するとperf script何も出力されません。サーバーがオンラインの場合は正常に動作します。

私のプログラムは Rust で書かれたネイティブ バイナリです。なぜこのようなことが起こるのか、何か考えはありますか?

関連情報