每次加载微软符号服务器,加载符号 | Microsoft Docs

加载符号

05/05/2017

本文内容

可以在 Windows 性能分析器 (WPA) 中设置以下用户首选项:

加载符号

配置符号路径

若要更改这些选项,请打开记录,然后选择 " 跟踪 " 菜单上的选项。

托管符号

以下系统支持托管进程的符号解析和堆栈:

Windows 8 或更高版本上的 .NET Framework 4.5 或更高版本

对于 x86 计算机上的 .NET Framework 4.0 或更高版本

使用 "捕获跟踪时," 会启用在跟踪中解析托管符号所需的所有提供程序。 "在保存的跟踪旁边创建一个文件夹,其中包含这些托管符号的 PDB 文件。 当 WPA 打开跟踪时,WPA 将查找此文件夹并将其自动添加到符号路径中。 如果 "未用于生成跟踪,则 .NET Framework 程序的任何符号可能根本不会进行完全解码或解码。

JavaScript 符号

在运行以下软件的系统上支持为 JavaScript 进程提供符号解析和堆栈:

Windows 7 以及 Internet Explorer 10 或更高版本

在 Windows 8 上使用 JavaScript 的应用程序

WP 使所需的提供程序可以解码受支持系统上的 JavaScript 代码的符号。 JavaScript 方法地址和堆栈帧将解码为 JavaScript 文件名、方法名称、行号和列号。

相对路径和嵌入的环境变量

_ Nt " _ 符号 _ 路径 " 和 " _ nt _ SYMCACHE" _ 路径 环境变量可以使用相对路径、绝对路径、网络共享路径或嵌入的环境变量。 首次设置相对路径时,WPA 会将相对路径转换为绝对路径。 当程序启动时,WPA 会转换 WPA 从环境变量加载的相对路径。

关闭该对话框后,WPA 会转换在 " 配置符号路径 " 对话框中输入的相对路径。 对当前目录所做的更改不会影响你已设置的相对路径。 第一次打开对话框时," 配置符号路径 " 对话框将显示当前设置的路径,以便您可以查看 WPA 展开任意相对路径的方式。

WPA 将展开嵌入的环境变量,同时展开相对路径。 由于 WPA 在程序启动时捕获环境变量,因此,对当前正在运行的 WPA 实例之外的环境变量所做的更改不会出现在该实例中。

使用 _ NT _ SYMCACHE _ PATH 环境变量的其他程序(如 WinDbg 或 Microsoft 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 _ 符号 _ 路径 环境变量:

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 _ 符号 _ 路径 环境变量的基本信息,请参阅以下 MSDN 文章:

WPA 中的符号加载取决于 _ NT _ 符号 _ 路径 环境变量指定的路径 (排除 WPA 已经缓存在 SymCache 文件夹) 中的符号。 WPA 会按顺序从左到左搜索路径。 但是,在这些路径之一中加载 PDB 文件中的符号可能会很耗时,尤其是在远程计算机上存在 PDB 时。 因此,建议将网络路径置于任何本地路径之后,并将本地 PDB 缓存用于任何远程符号服务器。 但是,即使所有符号都存储在本地,WPA 在加载符号时也可能会停止响应。 WPA 在完成加载符号后恢复为交互式状态。

如果未设置 _ NT _ 符号 _ 路径 环境变量,WPA 将使用以下默认值:

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

分号 (; ) 将不同的路径分隔开来。 第一个路径是句点 (。 ) 。 Wpa 加载跟踪时,WPA 会将此路径映射到当前文件夹。 有关 WPA 处理相对路径的方式的详细信息,请参阅本文的 SymCache 路径 部分。

第二个路径如下:

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 文件缓存到 (此文件夹相对于 Windows 性能工具包安装) 文件夹的 " \ 符号 " 文件夹中。 因此,WPA 会将 "符号" 文件夹放置在 SymCache 文件夹旁。 但是,如果 SymCache 文件夹位于网络共享上,则 WPA 会在包含 Program Files 文件夹的驱动器的根目录下创建符号文件夹。 此目录通常是驱动器 C。

如果你不想搜索并加载 PDB 文件中的符号,则可以将 _ NT _ 符号 _ 路径 环境变量设置为不包含符号的本地文件夹,例如句点 (。 ) 。 不要将 _ NT _ 符号 _ 路径 环境变量留空。 如果将 _ NT _ 符号 _ 路径 环境变量留空,WPA 将使用默认值。

当 WPA 打开录制时,WPA 将查找与使用 . ngenpdb 扩展名的跟踪同名的文件夹。 如果 WPA 找到此文件夹,则 WPA 会将文件夹附加到 _ NT _ 符号 _ 路径 环境变量的末尾。 Windows 性能记录器 (") 会自动创建一个文件夹,该文件夹包含" 在记录过程中捕获的托管代码的 PDB 文件。 例如,如果在 WPA 中打开 c: \ trace .etl 记录,则 wpa 会搜索 C: \ ngenpdb 文件夹。 如果此文件夹存在,则 WPA 会将该文件夹添加到 _ NT _ 符号 _ 路径 环境变量中。

相关主题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值