リアルタイムのオーディオ処理を行う GNU/Linux 上の共有ライブラリをプロファイリングしようとしているので、パフォーマンスが重要です。システムのオーディオ入力と出力に接続する別のプログラムを実行し、callgrind でプロファイルします。
KCacheGrind の結果を見ると、どの関数が最も多くの時間を占めているかについての優れた情報が得られます。ただし、行ごとの情報を表示することはできません。代わりに、デバッグ シンボルを使用してコンパイルし、プロファイリングを再度実行する必要があると表示されます。
私がプロファイリングしているプログラムは、デバッグ シンボルを使用してコンパイルされていませんが、ライブラリはコンパイルされています。興味深いことに、 cachegrindのソース コード アノテーションは正常に機能するため、私はこれを知っています。
callgrind を実行すると、デフォルトではソース行情報をダンプすると表示されますが、実際にはそうしていません。それを強制する方法、または何がそれを止めているのかを理解する方法はありますか?