为什么要为
问题描述:
我看过为什么要为
Capture callstack and events in Xperf
和其他来源的“一般事件”没有调用堆栈,但我喜欢做的最简单的事情就是简单地显示在“堆栈”列WPA的“通用事件”图。
为什么不存在?当然,因为堆栈信息不可用,但为什么?我知道“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
谢谢,但这不会将堆列添加到通用事件图中。我只获得一个额外的单独的“堆栈”图。没关系,但不在我期望的位置,即在“通用事件”窗口中。我的问题一般与通用事件有关,不仅仅与用户模式提供者有关。也许其他的内核标志没有相应的用户模式提供程序(是吗?),所以目前还不清楚。另外,如果我这样做,则符号会再次丢失。我们是否需要添加一组最小的提供者来获得符号支持? – CryGuy
通用事件=用户模式事件。点击“打开视图编辑器”并激活他在此处堆叠列。符号丢失,因为NETWORKTRACE是不够的。使用捕获PROC_THREAD + LOADER的NETWORK,都必须始终使用! – magicandre1981
对不起,但这是不对的,因为“networktrace”是一个内核标志,事件显示在“通用事件”图中。无论如何,我只需要接受(但不明白)该图中没有Stack列。关于符号,我也发现了,谢谢。 – CryGuy