Windows 事件跟踪 (ETW) 具有使用事件流捕获堆栈跟踪的功能。我假设它们是使用 EVENT_HEADER_EXT_TYPE_STACK_TRACE32 (或 64)标头获取/编码的。但是,事件标头不受事件源 POV 的控制。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa363760%28v=vs.85%29.aspx
在我的 .net 应用程序中,我通过观察在另一个线程(UI 线程)中诊断特定的情况。我可以收集暴露情况的堆栈跟踪,数据片段已就位,但我想使用 ETW 及其工具链进行进一步分析。
[顺便说一句,是的,我正在寻找拦截器,但是虽然现有的基础设施非常适合诊断已知的单个拦截器,但我需要获得概述,并且在这种情况下事件关联是不够的。此外,收集的数据很容易淹没我需要收集的设备。我的探测器要聪明得多,至少对于我来说是这样。]
所以我正在寻找(按偏好顺序)
有人指点吗?
我选择了选项 4:使用完全不同的格式,至少有一个工具可以摄取和分析。在本例中,编写了一个 .perfView.xml 文件并完成了这项工作,尽管分析功能并不像我希望的那么好。
为此使用隐藏的 et 命令:
“隐藏”ETW 堆栈跟踪功能 – 获取到处都是的堆栈!
Xperf 中的堆栈遍历