如何在 64b 操作系统上执行 Xperf 调用堆栈捕获?
-
20-08-2019 - |
题
我已从 Windows SDK 安装了 Xperf 性能分析器,并使用以下命令捕获了文档中所述的跟踪:
xperf -on SysProf -stackwalk profile
尽管如此,堆栈跟踪不包含任何调用堆栈数据。
我的平台是Vista 64b。在 64b Windows 上捕获调用堆栈是否需要任何特殊设置或技巧?
解决方案
经过更多搜索后,我找到了一个设置:
设置注册表值DisablePagingExecutive = 1并重新启动(请参阅 Windows 性能工具包常见问题解答).
虽然这听起来不错,但它似乎对我的系统没有帮助,仍然没有调用堆栈。
联系 Microsoft 支持后,他们的答复是使用 x64 Vista,您只能捕获 x64 本机应用程序的调用堆栈,而不能捕获 32b 应用程序的调用堆栈。
Windows 7 似乎已经消除了该限制,并且它在 Win 7 x64 上运行良好,至少是这样说的 Xperf 上的 Valve 演示.
不隶属于 StackOverflow