質問
私は、ドキュメントを読んで、私は任意のシンボルを取得するように見えるいけない何らかの理由が概説されたコマンドを使用し、アプリの一番上のセット以外のすべてのサマリーテーブルの機能欄で「未知の」のちょうどシリーズ私は、マイクロソフトのサーバーにenviromental変数を設定し、direcoriesアプリのためのPDBのをcontaing ....デバッグしようとしていました。私はまた、サマリー表を立ち上げる前に、「シンボルの読み込み」の項目を選択してください行われます。
私はそれがシンボルをロードしながら、TABLを表示するためのいくつかの時間を取るべきで読んでいた情報にArcording、しかし私のため表には、ほぼ瞬時に表示され、sprite.exe-> sprite.exe HADで唯一の一番上の項目関数名は、関数のパーソナルプラグインの行が空白または「不明」のいずれかであった。
VistaのSP1を使用してイムます。
これは私が使用したバッチファイルです。私はsybolsがロードされるのを防ぐことは何もしませんでしたか?
REM start profiler
xperf -on PROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE^
-stackwalk profile -minbuffers 16 -maxbuffers 1024 -flushtimer 0^
-f tmp.etl
REM run the app we want to profile
sprite.exe
REM stop
xperf -d profile.etl
REM set symbol path
set _NT_SYMBOL_PATH = ^
C:\Projects\C++\fl lib\bin;^ REM dlls
C:\Projects\C++\fl lib\samples\bin;^ REM main exe
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
REM display profile
xperf profile.etl
解決
それはdbghelp.dll
のどのバージョンを使用していますか?私はトラブルkernrate
にインストールされているdbghelp.dll
のバージョンを使用している場合%SystemRoot%\system32
や他のユーティリティでの作業PDBシンボルを取得しなければならなかった。
あなたはXperfは、それを見つけることができるディレクトリにWindows用デバッグツールの最新バージョンからdbghelp.dll
とsymsrv.dll
をコピーする必要があるかもしれません。
また、あなたは「=」の前にスペースを削除する必要があり、さもなければ、あなたは(名前の末尾のスペースを含む)「_NT_SYMBOL_PATH
」変数を定義しています。
行の末尾にコメントを含めるには、いずれかの仕事に行くのではありません。このような「^」などの行継続文字は通常、行の最後の文字である必要があります。私は(XP上で)その文を実行したとき、私は「_NT_SYMBOL_PATH
」に等しい「C:\Projects\C++\fl lib\bin; REM dlls
」と次の行に関するエラーになってしまっています。
他のヒント
タグを設定してみてください
TRACE_FORMAT_SEARCH_PATH
環境変数。問題が解決しない場合は、手動TracePdb.exeを使用してのPDBからTMFファイルを抽出する必要があります(あるいは少なくともその代わりSYMの*パスの定期的なパスを使用します)。これは、はるかにETLトレースを使用しての最も厄介な部分です/ Xperfは