为什么要为

问题描述:

我看过为什么要为

Capture callstack and events in Xperf

和其他来源的“一般事件”没有调用堆栈,但我喜欢做的最简单的事情就是简单地显示在“堆栈”列WPA的“通用事件”图。

WPA, Generic events graph

为什么不存在?当然,因为堆栈信息不可用,但为什么?我知道“xperf -help stackwalk”,但列出的并不是我要找的。例如,

xperf -on networktrace -stackwalk networktrace 

可能得到的网络事件调用堆栈。为什么?我肯定错过了什么。谢谢!

激活的用户模式的事件栈的语法如下:PROVIDER:KEYWORD:LEVEL:'stack'

你必须激活栈是这样的:

“C:\ Program Files文件(x86)的\的Windows套件\ 8.1 \ Windows性能 Toolkit \ xperf.exe“-start UserLogger -on Microsoft-Windows-Kernel-Network :::'stack'+ Microsoft-Windows-Networking-Correlation :::'stack'+ Microsoft-Windows-TCPIP :::' ' -buffersize 2048 -f User.etl

+0

谢谢,但这不会将堆列添加到通用事件图中。我只获得一个额外的单独的“堆栈”图。没关系,但不在我期望的位置,即在“通用事件”窗口中。我的问题一般与通用事件有关,不仅仅与用户模式提供者有关。也许其他的内核标志没有相应的用户模式提供程序(是吗?),所以目前还不清楚。另外,如果我这样做,则符号会再次丢失。我们是否需要添加一组最小的提供者来获得符号支持? – CryGuy

+0

通用事件=用户模式事件。点击“打开视图编辑器”并激活他在此处堆叠列。符号丢失,因为NETWORKTRACE是不够的。使用捕获PROC_THREAD + LOADER的NETWORK,都必须始终使用! – magicandre1981

+0

对不起,但这是不对的,因为“networktrace”是一个内核标志,事件显示在“通用事件”图中。无论如何,我只需要接受(但不明白)该图中没有Stack列。关于符号,我也发现了,谢谢。 – CryGuy