2

操作系统:Windows Server 2012 R2(也尝试过 Windows 10)

WPRUI/WPA 版本:10.0.16299.91

Visual Studio Community 2017 版本:15.6.6

.NET 版本:4.7

对于我认为非常简单的场景,我无法在 WPA 中加载符号。

  1. C# 控制台应用程序(称为 TestEtw - 二进制文件是 TestEtw.exe)
  2. ETL 文件
  3. NGENPDB 文件(由 WPRUI 输出)
  4. testetw 的 Symcache 文件 ( TestEtw.exe-f5dfdbac20df4e29879d1c9abbd2cda61v2.symcache )
  5. _NT_SYMBOL_PATH=c:\MySyms;srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
    1. PDB 在项目的 bin 目录中,我在其中复制了一份c:\MySyms
  6. 在 WPA 中加载 ETL 文件并单击加载符号。您会发现 wpa 不会为 TestEtw.exe(前面提到的 C# 控制台应用程序)加载符号

在此处输入图像描述

我尝试了很多事情:

  1. 验证 symchk 可以通过运行找到符号: symchk c:\Users\Administrator\source\repos\TestEtw\TestEtw\bin\Debug\TestEtw.exe /v
    1. 它在 c:\MySyms\TestEtw.pdb 中找到符号
  2. 已验证c:\symcache实际包含一个 testetw 文件,并且其名称与 PDB 签名匹配: TestEtw.exe-f5dfdbac20df4e29879d1c9abbd2cda61v2.symcache
  3. 旧版本的 WPA(6.3.9600.16384 - 这是 winblue_rtm 版本)也不会加载这些符号
  4. 通过 Process Monitor 确认 WPA 确实为 TestEtw 打开了 symcache 文件。

因此,似乎 symcheck 可以找到 pdb,wpa 正在填充 symcache 甚至加载 symcache 文件,但 WPA UI 没有在 TestEtw 中显示符号。

任何帮助将不胜感激。谢谢!

4

0 回答 0