You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Performance Analyzer无法解析C#应用程序符号求助

求助:WPA无法加载自定义ETW应用程序的符号

各位好,我最近在做一个简单的ETW测试时,碰到了WPA(Windows Performance Analyzer)无法加载自定义应用程序符号的问题,折腾了好久没解决,想请大家帮忙看看。

先说说我的环境:

  • 操作系统:Windows Server 2012 R2(也试过Windows 10)
  • WPRUI/WPA版本:10.0.16299.91
  • Visual Studio Community 2017版本:15.6.6
  • .NET版本:4.7

我的测试场景很简单:

  1. 写了一个C#控制台应用程序(叫TestEtw,二进制是TestEtw.exe)
  2. 用WPRUI生成了对应的ETL跟踪文件
  3. WPRUI还输出了NGENPDB文件
  4. 同时也生成了TestEtw的Symcache文件,文件名是TestEtw.exe-f5dfdbac20df4e29879d1c9abbd2cda61v2.symcache
  5. 符号路径我配置的是:_NT_SYMBOL_PATH=c:\MySyms;srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
    • 我已经把项目bin目录里的TestEtw.pdb复制到了c:\MySyms目录下
  6. 但当我在WPA里加载ETL文件,点击「加载符号」后,发现TestEtw.exe的符号始终加载不出来,界面上还是显示未解析的状态

这是WPA里的截图:
WPA中符号未加载的状态

我已经尝试了这些方法排查:

  • 用symchk工具验证符号的可用性:
    执行命令:symchk c:\Users\Administrator\source\repos\TestEtw\TestEtw\bin\Debug\TestEtw.exe /v
    结果显示symchk成功在c:\MySyms\TestEtw.pdb找到了匹配的符号
  • 检查symcache目录:c:\symcache里确实有对应的symcache文件,文件名里的签名和PDB完全匹配
  • 换了旧版本的WPA(6.3.9600.16384,winblue_rtm版本),问题还是一样
  • 用Process Monitor监控WPA的行为,发现它确实已经打开了TestEtw的symcache文件

现在我就很困惑:symchk能找到PDB,WPA也加载了symcache,但就是不显示符号。有没有大佬遇到过类似的问题?求指点,谢谢!

内容的提问来源于stack exchange,提问作者BustaH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:52:30