インテル VTune Amplifier XE 2011 を使用して、プログラムのパフォーマンスを分析しています。解析結果でソース コードを表示できるようにしたいのですが、ドキュメントにはシンボル情報を提供する必要があると書かれています。残念ながら、私のプログラムをコンパイルするときにそのシンボル情報を生成する方法については述べていません。VTune の Windows バージョンでは、Microsoft Visual Studio が生成する ".pdb" ファイルを用意するだけで済みました。このシンボル情報を提供するために g++ を使用して作成できる同様の種類のファイルはありますか?
3 に答える
-g でコンパイルしてみましたか? 通常、デバッガー、プロファイラーなどのシンボリック データを生成するために必要なのはそれだけです。
ちなみに、Linux でのプロファイリングには、 RotateRight.com の Zoomが VTune よりもはるかに使いやすいです。
GCC でデバッグ情報を含む実行可能ファイルを取得する最も「古典的な」方法は、他のポスターで言及されているように「-g」コマンド ライン オプションを指定することです。デバッグ情報はコードまたはデータ セグメントの一部ではない ELF セクションに存在するため、これによってパフォーマンスが低下することはありません。つまり、.debug* セクションは、通常のプログラムの実行中にメモリにマップされません。デバッガーがそれらを取得するのはデバッグ時のみです。
実動ソフトウェアに取り組んでいる開発者にとって、もう 1 つの有用な考慮事項は、個別のデバッグ情報ファイルを使用することです。これは、上記のように「-g」を指定してプログラムをコンパイルし、objcopy ユーティリティを使用してデバッグ情報を含む ELF セクションを別のファイルにコピーし、元のバイナリ ファイルから別のデバッグ情報ファイルへのリンクを追加することを前提としています。これは、顧客にリリースしたビットのデバッグ情報を保存できるため、事後分析のデバッグが可能になるため、非常に便利です。もちろん、リリース ビットでのパフォーマンス プロファイリングにも使用できます。