Анализатор производительности Windows (WPA) не разрешает символы для моего приложения на C#
ОС: Windows Server 2012 R2 (также пробовал Windows 10)
Версия WPRUI/WPA: 10.0.16299.91
Visual Studio Community 2017 версия: 15.6.6
Версия.NET: 4.7
У меня проблемы с загрузкой символов в WPA, потому что я думаю, что это действительно простой сценарий.
- Консольное приложение C# (называется TestEtw - двоичный файл - TestEtw.exe)
- Файл ETL
- Файлы NGENPDB (вывод WPRUI)
- Файл Symcache для testetw ( TestEtw.exe-f5dfdbac20df4e29879d1c9abbd2cda61v2.symcache)
_NT_SYMBOL_PATH=c:\MySyms;srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
- PDB находится в каталоге bin проекта, и я сделал его копию в
c:\MySyms
- PDB находится в каталоге bin проекта, и я сделал его копию в
- Загрузите файл ETL в WPA и нажмите кнопку загрузить символы. Вы обнаружите, что wpa не загружает символы для TestEtw.exe (вышеупомянутое консольное приложение C#)
Я пробовал несколько вещей:
- Проверено, что symchk может найти символы, запустив:
symchk c:\Users\Administrator\source\repos\TestEtw\TestEtw\bin\Debug\TestEtw.exe /v
- Находит символы в c:\MySyms\TestEtw.pdb
- Проверено, что
c:\symcache
фактически содержит файл testetw, и его имя совпадает с подписью PDB:TestEtw.exe-f5dfdbac20df4e29879d1c9abbd2cda61v2.symcache
- Более старая версия WPA (6.3.9600.16384 - это версия winblue_rtm) также НЕ загружает эти символы
- Подтвердил с помощью Process Monitor, что WPA действительно открывает файл symcache для TestEtw.
Таким образом, кажется, что symcheck может найти pdb, wpa заполняет symcache и даже загружает файл symcache, но пользовательский интерфейс WPA не отображает символы в TestEtw.
Любая помощь будет принята с благодарностью. Спасибо!