共用方式為


載入符號

您可以在 Windows 效能分析器 (WPA) 中設定下列使用者喜好設定:

  • 載入符號

  • 設定符號路徑

若要變更這些選項,請開啟錄製,然後選取 [ 追蹤 ] 功能表上的選項。

Managed 符號

下列系統支援 Managed 進程的符號解析和堆疊:

  • 在 Windows 8 或更新版本上使用 .NET Framework 4.5 或更新版本

  • 在 x86 電腦上.NET Framework 4.0 或更新版本

當您使用 WPR 擷取追蹤時,WPR 會啟用解析追蹤中 Managed 符號所需的所有提供者。 WPR 會在儲存的追蹤旁邊建立資料夾,其中包含這些 Managed 符號的 PDB 檔案。 當 WPA 開啟追蹤時,WPA 會尋找此資料夾,並自動將它新增至符號路徑。 如果未使用 WPR 來產生追蹤,則.NET Framework程式的任何符號都可能不會完全解碼或完全解碼。

JavaScript 符號

在執行下列軟體的系統上,支援 JavaScript 進程的符號解析和堆疊:

  • Windows 7 與 Internet Explorer 10 或更新版本

  • 在 Windows 8 上使用 JavaScript 的應用程式

WP 可讓必要的提供者在支援的系統上解碼 JavaScript 程式碼的符號。 JavaScript 方法位址和堆疊框架會解碼為 JavaScript 檔案名、方法名稱、行號和資料行編號。

相對路徑和內嵌環境變數

_NT_SYMBOL_PATH_NT_SYMCACHE_PATH環境變數可以使用相對路徑、絕對路徑、網路共用路徑或內嵌環境變數。 當您第一次設定相對路徑時,WPA 會將相對路徑轉換為絕對路徑。 WPA 會在程式啟動時,轉換 WPA 從環境變數載入的相對路徑。

WPA 會在關閉對話方塊時,轉換您在 [ 設定符號路徑 ] 對話方塊中輸入的相對路徑。 目前目錄的變更不會影響您已設定的相對路徑。 當您第一次開啟對話方塊時,[ 設定符號路徑 ] 對話方塊會顯示目前設定的路徑,讓您可以查看 WPA 展開任何相對路徑的方式。

WPA 會同時展開內嵌環境變數,同時展開相對路徑。 因為 WPA 會在程式啟動時擷取環境變數,所以目前執行中 WPA 實例以外的環境變數變更不會出現在該實例中。

其他使用 _NT_SYMCACHE_PATH 環境變數的程式,例如 WinDbgMicrosoft Visual Studio,可能無法以相同方式處理相對路徑或內嵌環境變數。

SymCache 路徑

WPA 會使用 SymCache 檔案,從程式資料庫快取符號資訊, (PDB) 檔案,以精簡且容易存取的方式。 在 WPA 以追蹤的符號填入 SymCache 資料夾之後,重載該追蹤的符號會更快。 如果 SymCache 檔案變得太大或不再需要,您可以安全地刪除該 SymCache 檔案。 WPA 會視需要以新檔案重新填入 SymCache 資料夾。 您也可以將 SymCache 檔案複製到另一部電腦,或透過網路共用檔案,以加速在不同電腦上的符號載入。

如果您使用 [ 設定符號路徑 ] 對話方塊,將 _NT_SYMCACHE_PATH 環境變數設定為 WPA 無法存取的資料夾, [確定 ] 按鈕就不會關閉對話方塊。 不過,您不會收到錯誤訊息。

如果 _NT_SYMCACHE_PATH 環境變數未指派或空白,WPA 會在包含 WPA 可執行檔的磁片磁碟機根目錄建立 SymCache 資料夾。 如果 _NT_SYMCACHE_PATH 環境變數是在網路共用上執行,變數會在包含 Program Files 資料夾的磁片磁碟機根目錄建立 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 在其中一個替代位置中找到 SymCache 檔案時,WPA 只會將檔案複製到路徑中的第一個 SymCache 資料夾。 WPA 也會將新建立的 SymCache 檔案放入路徑中的第一個 SymCache 資料夾。

若要停用複製和寫入,但仍使用階層式搜尋功能,您應該將路徑中的第一個位置保留空白,如下列範例所示:

*\\network\SymCache

當您發出此命令時,WPA 會搜尋 \\network\SymCache 資料夾。 不過,WPA 不會複製結果或將產生的 SymCache 檔案寫入至不同的資料夾。

符號路徑

如需 _NT_SYMBOL_PATH 環境變數的基本資訊,請參閱下列 MSDN 文章:

WPA 中的符號載入取決於_NT_SYMBOL_PATH環境變數指定 ( 排除 WPA 已在 SymCache 資料夾中快取的符號) 的路徑。 WPA 會循序搜尋路徑,從左側開始。 不過,從其中一個路徑中的 PDB 檔案載入符號可能相當耗時,特別是當 PDB 存在於遠端電腦上時。 因此,建議您在任何本機路徑後面放置網路路徑,並針對任何遠端符號伺服器使用本機 PDB 快取。 不過,即使所有符號都儲存在本機,WPA 在載入符號期間可能會變得沒有回應。 WPA 會在載入符號完成之後返回互動式狀態。

未設定 _NT_SYMBOL_PATH 環境變數時,WPA 會使用下列預設值:

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

分號 (;) 分隔不同的路徑。 第一個路徑是句點 (.) 。 WPA 會在 WPA 載入追蹤時,將此路徑對應至目前資料夾。 如需 WPA 處理相對路徑方式的詳細資訊,請參閱本文的 SymCache Path 一節。

第二個路徑如下:

 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 公用符號伺服器下載符號,並在 \Symbols 資料夾中快取 PDB 檔案, (此資料夾相對於 Windows Performance Toolkit 安裝資料夾) 。 因此,WPA 會將 Symbols 資料夾放在 SymCache 資料夾旁邊。 不過,如果 SymCache 資料夾位於網路共用上,WPA 會在保存 Program Files 資料夾的磁片磁碟機根目錄建立 Symbols 資料夾。 這通常是 C 磁片磁碟機。

如果您不想從 PDB 檔案搜尋和載入符號,您可以將 _NT_SYMBOL_PATH 環境變數設定為不包含符號的本機資料夾,例如句點 (.) 。 請勿將 _NT_SYMBOL_PATH 環境變數保留空白。 如果您將 _NT_SYMBOL_PATH 環境變數保留空白,WPA 會使用預設值。

當 WPA 開啟錄製時,WPA 會尋找與使用 .ngenpdb 副檔名之追蹤名稱相同的資料夾。 如果 WPA 找到此資料夾,WPA 會將資料夾附加至 _NT_SYMBOL_PATH 環境變數的結尾。 Windows Performance Recorder (WPR) 會自動建立資料夾,其中包含 WPR 在錄製期間擷取的 Managed 程式碼 PDB 檔案。 例如,如果您在 WPA 中開啟 C:\trace.etl 錄製,WPA 會搜尋 C:\trace.etl.ngenpdb 資料夾。 如果此資料夾存在,WPA 會將資料夾新增至 _NT_SYMBOL_PATH 環境變數。

WPA 功能

載入符號或設定符號路徑

使用 CLR 4.0 NGEN PDB 支援

常見深入分析問題