0

我正在尝试使用 Xperf 执行堆栈遍历,使用的批处理文件类似于使用 xperf 获取符号中列出的批处理文件。

我启动 XperfView,确认符号路径正确,然后加载符号。但是,当我尝试在“CPU 采样”图表的选定部分(5 秒左右)上打开汇总表时,性能分析器会挂起(无响应)很长时间(几小时)。

我昨晚让它运行,今天早上我进来时,汇总表终于加载了,包含预期的结果......我以为它可能只是执行初始下载以将符号缓存到 C:\symbols,但是今天早上的重复测试有类似的问题(此时挂起 1 小时 15 分钟)。

4

3 回答 3

3

WPT(xperf、xperfview、WPA)不附带 dbghelp.dll 和 symsrv.dll。这意味着,根据您的路径,您可能会得到:

  1. 快速符号加载
  2. 符号加载时间长达 150 倍
  3. 根本没有符号加载。

解决方案是将这些 DLL 的已知良好版本复制到 WPT 安装目录中。有关更多详细信息,请参阅这篇文章: http ://randomascii.wordpress.com/2012/10/04/xperf-symbol-loading-pitfalls/

于 2013-12-12T03:38:44.607 回答
1

在他的帖子中,Bruce Dawson 推测当前 SDK 中提供的 WPT 中的 dbghelp.dll 和/或 symsrv.dll 存在问题。他建议用 Visual Studio 2010 或 Windows 调试工具(即 WinDbg)中的替换那些。为我工作...

于 2013-03-15T15:11:49.333 回答
0

你有没有设置像这样的 symcache

SRV*c:\dev\symbols*http://msdl.microsoft.com/download/symbols

symcache 将在本地缓存符号。我通常有我的_NT_SYMBOL_PATH 环境变量与上述信息。

高温高压

于 2010-07-27T14:55:16.180 回答