如何在 64b 操作系统上执行 Xperf 调用堆栈捕获?
我已经从 Windows SDK 安装了 Xperf 性能分析器,并使用以下命令捕获了文档中所述的跟踪:
xperf -on SysProf -stackwalk profile
尽管如此,堆栈跟踪不包含任何调用堆栈数据。
我的平台是Vista 64b。 在 64b Windows 上捕获调用堆栈是否需要任何特殊设置或技巧?
I have installed Xperf performance analyzer from Windows SDK and captured a trace as described in the documentation using following command:
xperf -on SysProf -stackwalk profile
Still, the stack trace does not contain any callstack data.
My platform is Vista 64b. Are there any special settings or tricks needed to capture callstacks on 64b Windows?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经过更多搜索后,我找到了一个设置:
设置注册表值DisablePagingExecutive = 1并重新启动(请参阅Windows 性能工具包常见问题解答)。
虽然这听起来不错,但它似乎对我的系统没有帮助,仍然没有调用堆栈。
联系 Microsoft 支持后,他们的答复是使用 x64 Vista,您只能捕获 x64 本机应用程序的调用堆栈,而不能捕获 32b 应用程序的调用堆栈。
Windows 7 似乎已经消除了该限制,并且它在 Win 7 x64 上运行良好,至少这表示 Xperf 上的阀门演示。
After some more searching I have found one setting:
Set registry value DisablePagingExecutive = 1 and reboot (see Windows Performance Toolkit FAQ).
While this sounds great, it does not seem to help at my system, still no call-stacks.
After contacting Microsoft support their reply was with x64 Vista you can capture only callstacks of x64 native applications, not 32b ones.
Windows 7 seems to have removed the limitation and it works fine on Win 7 x64, at least this says Valve presentation on Xperf.