シンボルの読み込み

次のユーザー設定は、Windows Performance Analyzer で設定できます。

  • シンボルの読み込み

  • シンボル パスの構成

これらのオプションを変更するには、記録を開き、[トレース] メニューのオプションを選択します。

マネージド シンボル

マネージド プロセスのシンボル解決とスタックは、次のシステムでサポートされています。

  • .NET Framework 4.5 以降のリリースまたは Windows 8 以降のリリース

  • x86 マシンで .NET Framework 4.0 以降のリリース

WPR を使用してトレースをキャプチャすると、WPR により、トレース内のマネージド シンボルを解決するために必要なすべてのプロバイダーが有効になります。 WPR は、これらのマネージド シンボルの PDB ファイルを含む保存済みトレースの横にフォルダーを作成します。 WPA がトレースを開くと、WPA によってこのフォルダーが検索され、シンボル パスに自動的に追加されます。 WPR を使用してトレースを生成しない場合、.NET Framework プログラムのシンボルが完全にデコードまたはまったくデコードされない可能性があります。

JavaScript シンボル

JavaScript プロセスのシンボルの解決とスタックは、次のソフトウェアを実行しているシステムでサポートされています。

  • Windows 7 と Internet Explorer 10 以降のバージョン

  • Windows 8 で JavaScript を使用する Windows 8

WP を使用すると、必要なプロバイダーは、サポートされているシステムで JavaScript コードのシンボルをデコードできます。 JavaScript メソッドのアドレスとスタック フレームは、JavaScript ファイル名、メソッド名、行番号、列番号にデコードされます。

相対パスと埋め込み環境変数

環境変数 _NT_SYMBOL_PATH_NT_SYMCACHE_PATHは、相対パス、絶対パス、ネットワーク共有パス、または埋め込み環境変数を使用できます。 WPA は、相対パスを最初に設定するときに相対パスを絶対パスに変換します。 WPA は、プログラムの開始時に WPA が環境変数から読み込む相対パスを変換します。

WPA は、ダイアログ ボックスを閉じると、[シンボル パスの構成] ダイアログ ボックスに入力した相対パスを変換します。 現在のディレクトリを変更しても、既に設定されている相対パスには影響しません。 [シンボル パスの構成] ダイアログ ボックスは、最初にダイアログ ボックスを開いたときに現在設定されているパスが表示されます。そのため、WPA が相対パスを展開した方法を確認できます。

WPA は、相対パスを展開すると同時に、埋め込み環境変数を拡張します。 WPA はプログラムの開始時に環境変数をキャプチャします。そのインスタンスには、現在実行中の WPA インスタンスの外部にある環境変数に対する変更は表示されません。

WinDbg または Microsoft Visual Studio_NT_SYMCACHE_PATH などの環境変数を使用するその他のプログラムでは、相対パスや埋め込み環境変数が同じ方法で処理されない場合があります。

SymCache パス

WPA は SymCache ファイルを使用して、コンパクトでアクセスしやすい方法でプログラム データベース (PDB) ファイルからシンボル情報をキャッシュします。 WPA によってトレースのシンボルが SymCache フォルダーに設定されると、そのトレースのシンボルの再読み込みがはるかに高速になります。 SymCache ファイルが大きすぎるか、または不要になった場合、その SymCache ファイルを安全に削除できます。 WPA は、必要に応じて SymCache フォルダーに新しいファイルを再設定します。 また、SymCache ファイルを別のコンピューターにコピーしたり、ネットワーク上でファイルを共有して、異なるコンピューターでのシンボルの読み込みを迅速化することもできます。

[シンボル パスの構成] ダイアログ ボックスを使用して _NT_SYMCACHE_PATH 環境変数を WPA がアクセスできないフォルダーに設定した場合、[OK] ボタンはダイアログ ボックスを閉じません。 ただし、エラー メッセージも表示されません。

_NT_SYMCACHE_PATH 環境変数が未割り当てまたは空の場合、WPA は WPA 実行可能ファイルを含むドライブのルートに SymCache フォルダーを作成します。 _NT_SYMCACHE_PATH 環境変数がネットワーク共有で実行されている場合、変数は [プログラム ファイル] フォルダーを含むドライブのルートに SymCache フォルダーを作成します。 通常のシステム ドライブは C です。

SymCache の例

次のコマンドは、SymCache ファイルを C:\SymCache フォルダーに格納します。

C:\SymCache

次のコマンドは、SymCache ファイルを C:\SymCache フォルダーに格納し、\\network\SymCache フォルダーでシンボルを検索し、_NT_SYMBOL_PATH 環境変数を処理します。

C:\SymCache*\\network\SymCache

この例では、\\network\SymCache フォルダーで検索したシンボルを C:\SymCache フォルダーにコピーします。 これにより、ユーザーは大きな SymCache フォルダーを作成し、特定のトレースに必要なファイルのみを指定されたフォルダーにコピーできます。

複数の代替 SymCache フォルダーを検索するには、アスタリスク (*) 区切り記号を使用してフォルダーを検索パスに追加します。 WPA が代替の場所の 1 つで SymCache ファイルを見つけると、WPA はパス内の最初の SymCache フォルダーにのみファイルをコピーします。 また、WPA では、新しく作成された SymCache ファイルもパスの最初の SymCache フォルダーに格納されます。

コピーと書き込みを無効にしつつも、階層検索機能を使用するには、次の例に示すように、パスの最初の位置は空のままにしておく必要があります。

*\\network\SymCache

このコマンドを実行すると、WPA は \\network\SymCache フォルダーを検索します。 ただし、WPA は結果をコピーしたり、生成された SymCache ファイルを別のフォルダーに書き込むのではありません。

シンボル パス

環境変数 _NT_SYMBOL_PATH に関する基本情報については、次の MSDN の記事を参照してください。

WPA でのシンボルの読み込みは _NT_SYMBOL_PATH 環境変数で指定されているパスによって異なります (WPA が SymCache フォルダーに既にキャッシュしているシンボルは除きます)。 WPA は、左側から順にパスを検索します。 ただし、これらのパスの 1 つで PDB ファイルからシンボルを読み込むには、特にリモート コンピューター上に PDB が存在する場合、時間がかかることがあります。 そのため、ローカル パスの後にネットワーク パスを置き、任意のリモート シンボル サーバーに対してローカル PDB キャッシュを使用することをお勧めします。 ただし、すべてのシンボルがローカルに格納されている場合でも、WPA はシンボルを読み込む間に応答しなくなる可能性があります。 WPA は、シンボルの読み込みが完了すると対話型の状態に戻ります。

新しい環境変数 _NT_SYMBOL_PATH が設定されていない場合、WPA では次の既定値が使用されます。

 .;SRV*\Symbols*https://msdl.microsoft.com/download/symbols;

セミコロン (;) は、異なるパスを区切ります。 最初のパスはピリオド (.) です。 WPA は、WPA がトレースを読み込むときに、このパスを現在のフォルダーにマップします。 WPA が相対パスを処理する方法の詳細については、この記事の「SymCache パス」セクションを参照してください。

2 番目のパスは次のとおりです。

 SRV*\Symbols*https://msdl.microsoft.com/download/symbols

NGEN PB パスも設定する必要があります。

set _NT_SYMBOL_PATH=srv*C:\Symbols.NGEN;srv*https://msdl.microsoft.com/download/symbols

このパスを指定すると、WPA は Microsoft パブリック シンボル サーバーからシンボルをダウンロードし、PDB ファイルを \Symbols フォルダーにキャッシュします (このフォルダーは Windows Performance Toolkit インストール フォルダーを基準としています)。 そのため、WPA は Symbols フォルダーを SymCache フォルダーの横に置きます。 ただし、SymCache フォルダーがネットワーク共有上にある場合、WPA は [プログラム ファイル] フォルダーを保持するドライブのルートに Symbols フォルダーを作成します。 通常のシステム ドライブは C です。

PDB ファイルからシンボルを検索して読み込みたくない場合は、_NT_SYMBOL_PATH 環境変数をピリオド (.) などのシンボルを含むローカル フォルダーに設定できます。 環境変数 _NT_SYMBOL_PATH を空のままにしないでください。 環境変数 _NT_SYMBOL_PATH を空のままにすると、WPA は既定値を使用します。

WPA が記録を開くと、WPA は .ngenpdb 拡張子を使用するトレースと同じ名前のフォルダーを検索します。 このフォルダーが見つかると、WPA はフォルダーを環境変数 _NT_SYMBOL_PATH の最後に追加します。 Windows Performance Recorder (WPR) は、記録中に WPR がキャプチャしたマネージド コードの PDB ファイルを含むフォルダーを自動的に作成します。 たとえば、WPA で C:\trace.etl 記録を開いた場合、WPA は C:\trace.etl.ngenpdb フォルダーを検索 します。 このフォルダーが存在する場合、WPA はフォルダーを環境変数 _NT_SYMBOL_PATH に追加します。

WPA の機能

シンボルの読み込みまたはシンボル パスの構成

CLR 4.0 NGEN PDB のサポートを使用する

一般的な詳細分析の問題