2017-01-05 15 views
2

я записываю события ETW для поставщика CLR:Как просмотреть общие детали события с помощью wpa?

xperf -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 -f clr.etl 
... 
xperf -stop clr 

затем открыть clr.etl в wpa.exe и увидеть множество «общего события». Но, кажется, ВП не отображаются некоторые данных, которые описаны в MSDN

Все, что я могу видеть, похоже на это:

Process Unknown 
Id 1 
Opcode Name 
Task Name 
Provider Name e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 
Time 0,071731589s 
Selection Duration 0,416407863s 
Start Time 0,002151869s 
End Time 0,418559732s 
Data Points 1 
Table Data Point Selection 
Cpu 0  
ThreadId 50 440  
Sum of Count 1 23 
Time (s) 0,071846769  

Лоо, как это GCStart_V1 события, но я не могу найти, например, поле Reason

Возможно ли просмотреть данные общих событий в wpa?

WPA версия - 10.0.10586.212

+0

Использование WPR для сбора данных: ** «C: \ Program Files (x86) \ Windows Kits \ 10 \ Windows Performance Toolkit \ wpr.exe" -start DotNET ** и ** "C: \ Program Files (x86) \ Windows Kits \ 10 \ Windows Performance Toolkit \ wpr.exe "-stop C: \ clr.etl ** теперь просмотрите данные в WPA – magicandre1981

+0

. Он не отображает больше информации, кроме имени процесса. Никаких дополнительных полей не показано :( –

+0

какая версия Windows вы используете? Также откройте ETL с Perfview и посмотрите, показывает ли этот инструмент данные: https://www.microsoft.com/en-us/download/details.aspx?id = 28567 – magicandre1981

ответ

3

Это происходит на «обычных» машинах довольно часто, что регистрация поставщиков CLR ETW перепуталась из-за .NET-исправлений и т. д. В этом случае вам нужно заново/зарегистрировать его (64 бит)

wevtutil um %windir%\Microsoft.NET\Framework64\v4.0.30319\CLR-ETW.man 
wevtutil im %windir%\Microsoft.NET\Framework64\v4.0.30319\CLR-ETW.man 

Если ваша проблема была, что ваш взгляд не был настроен для просмотра Field1 .. N пользовательских событий, то ответ от lowleveldesign является правильной ,

+0

эта манифестация тоже есть, что я думаю. Кстати, я ответил на ваш вопрос LiveKD на форуме sysinternals. – magicandre1981

+0

Спасибо, Андре! Это помогло. Правильная версия SDK сделала трюк. –

+0

Спасибо, это помогает. –

3

Примечание стороны: я обычно записывают след, по крайней мере, эти два флага ядра:

xperf -on PROC_THREAD+LOADER -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 
xperf -stop -stop clr -d clr.etl 

В противном случае имена процессов могут не быть разрешены в WPA.

Возвращаясь к вашему вопросу, немного странно, как настраиваемые поля отображаются в WPA, но после того, как вы преодолеете начальную боль, вы найдете его редактор очень полезным. Поле, о котором вы упомянули, является одним из настраиваемых полей, специфичных для данного события. По умолчанию эти поля не отображаются, и вы должны добавить их в расширенном окне просмотра:

add-field-to-view

Я перетащил Field1 до Thread Name колонны. Затем вам нужно выбрать событие (а не его родителей, но строку с событием), и вы заметите, что имена столбцов для полей изменяются соответственно:

reason-field

Также Message поле обычно содержит все поля (их имена и значения), например, в этом случае: Reason=1; Count=2; ClrInstanceID=36