私は、特定の入力が与えられたさまざまなLinuxプログラム(Cで記述)で呼び出される関数を見つける必要があるプロジェクトに取り組んでいます。私の現在のアプローチは、-pg(プロファイリングオプション)を使用してプログラムをコンパイルして実行し、gprofの出力を処理することによって呼び出される関数を見つけることです。少なくとも1回呼び出された関数のみが出力ファイルに表示されます。
明らかな問題は、1つのプロセスだけがgprof出力ファイルに書き込めることです。プログラムが複数のプロセスをフォークする場合、他のプロセスからプロファイリング出力を取得しません。
gprofに各プロセスの出力ファイル(おそらくpidでラベル付けされている)を生成させる方法はありますか?マニュアルでは、各プロセスを別のディレクトリに変更することを提案していますが、これを行うためにソースコードを変更したくありません。Linux用の別のツールが役立ちますか?