2016-02-02 168 views
1

我看過爲什麼要爲

Capture callstack and events in Xperf

和其他來源的「一般事件」沒有調用堆棧,但我喜歡做的最簡單的事情就是簡單地顯示在「堆棧」列WPA的「通用事件」圖。

WPA, Generic events graph

爲什麼不存在?當然,因爲堆棧信息不可用,但爲什麼?我知道「xperf -help stackwalk」,但列出的並不是我要找的。例如,

xperf -on networktrace -stackwalk networktrace 

可能得到的網絡事件調用堆棧。爲什麼?我肯定錯過了什麼。謝謝!

回答

2

激活的用戶模式的事件棧的語法如下: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