我已从 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 演示.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top