0

VSPerfCmd (VS2010 プロファイラー) および Intel VTune Amplifier XE 2013 を使用してプロファイリングしようとしています: .vsp ファイルの VsPerfCmd について、いくつかの結果が利用可能です。ただし、profier は pdb を取得していません。アプリケーションの一部のコードは使用できません。

これはすでにあなたに起こっていますか?完全なプロファイルを取得するために、いくつかのコンパイラ オプションをオンにする必要があるかどうか知っていますか?

プロファイラーはどのディレクトリで .pdb 情報を見つけますか?

ありがとう

4

1 に答える 1

1

デフォルトでは、Windows のプロファイラーとデバッガーは、実行可能ファイルに記述されたパスで PDB ファイルを検索します。したがって、最初に行うことは、16進エディタで実行可能ファイルを開き、「.pdb」文字列を検索して、そこに記載されているファイルがディスクに存在するかどうかを確認することです。そうでない場合は、コンパイラに /Zi または /ZI オプションを指定し、リンカに /debug オプションを指定していることを確認してください。

アプリケーションの一部でシンボリック名が欠落している場合は、それらの部分が別個の動的または静的ライブラリーであるかどうか、およびそれらのデバッグ情報を生成するかどうかを確認してください。静的ライブラリの場合、デバッグ情報がリンクの途中で失われやすいため、デフォルトでは /Zi フラグがデバッグ情報を vc*.pdb ファイル (例: VS 2008 の vc90.pdb) に埋め込み、そのファイルは通常エクスポートされません。ビルド システムによって SDK に組み込まれます。静的ライブラリの場合、個人的には、デバッグ情報に /Z7 オプションを使用するのが最も便利だと思います。これは、デバッグ情報をオブジェクト ファイル自体に埋め込み、次に *.lib ファイルに埋め込み、最終的な *.exe / *.dll バイナリの PDB に伝播するためです。ファイル。

于 2012-12-02T19:21:05.687 に答える