我为CLR提供商录制了ETW事件:
xperf -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4 -f clr.etl
...
xperf -stop clr
然后在wpa.exe中打开clr.etl并看到大量的“通用事件”。但似乎wpa没有显示一些数据,如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 :(得分:5)
附注:我通常用至少两个内核标志记录跟踪:
xperf -on PROC_THREAD+LOADER -start clr -on e13c0d23-ccbc-4e12-931b-d9cc2eee27e4
xperf -stop -stop clr -d clr.etl
否则,WPA中可能无法解析进程名称。
回到你的问题,在WPA中如何呈现自定义字段有点奇怪,但在你克服了最初的痛苦之后,你会发现它的编辑器非常有用。您提到的字段是特定于给定事件的自定义字段之一。默认情况下,这些字段不会显示,您需要在“高级”视图窗口中添加它们:
我在Field1
列之前拖了Thread Name
。然后你需要选择一个事件(不是它的父项,而是带有事件的行),你会注意到字段的列名相应地改变了:
此外,Message
字段通常包含所有字段(其名称和值),例如:Reason=1; Count=2; ClrInstanceID=36
答案 1 :(得分:5)
它出现在"正常"由于.NET修补程序等原因,CLR ETW提供程序注册很乱。在这种情况下,您需要使用(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的答案是正确的。