|
|
1
2
请尝试将系统环境变量'u nt_symbol_path'设置为指向.pdb文件'u nt_symcache_path'以指向C:\ symbols。有关xperf符号处理的文档,请参见 http://msdn.microsoft.com/en-us/library/ff191023(VS.85).aspx 在windowsitpro.com上还有一篇很好的博客文章,标题是“在xperf的封面下”,其中介绍了提交xperf的符号。 注意,我需要用正确的值设置系统环境变量,xperfview没有选择在批处理文件中设置环境(启动xperfview后立即选中“检查跟踪”、“配置符号路径”菜单选项) |
|
|
2
2
对不起,我问了这个问题却忘了。 实际上有两个问题。 第一个是xperf实际上使用了我的符号的旧缓存版本。已通过从符号缓存中删除它来修复此问题。 第二个问题是,当我在xperfview中加载符号时,它实际上并没有将最新的pdb放入符号缓存中。不过,pdb在我确认包含在symbol路径变量中的目录中。不幸的是,我不记得确切的命令用来解决这个问题,但我相信它是一个' xperf file.etl-符号 '变体。该命令正确地解析了etl,并在遇到相关符号时加载/缓存了它们。之后,xperfview可以正确地显示我的符号。 请注意,每当pdb发生更改时,我都必须重新运行该命令,因为xperfview仍然不会触及符号缓存中没有的任何内容。我仍然不知道为什么它会在我的机器上这样,其他人似乎没有这个问题。 |
|
|
3
1
我刚发了一个 answer 一个类似的问题,所以可能与这里遇到的问题有关… 基本上,如果动态加载dll,它会给xperf在符号加载方面带来麻烦。 就我个人而言 猜测 它是关于xperf中的逻辑决定 是否还要尝试 加载给定模块的符号。例如,“加载所有的exe和它们的iat条目”(这将跳过所有的动态dll-看起来不是这样的,但是类似的事情正在发生) 编辑: 我最近和一个同事讨论过这个问题,并了解到xperf将正确地“决定”为以编程方式加载的dll加载符号… 如果 在进程结束之前,该dll一直处于加载状态。 所以,对于加载了 和 在执行期间卸载,在终止时卸载…xperf将跳过加载这些符号的尝试。 |
|
|
PHPLover · “支持PHP扩展或功能的端口”实际上是什么意思? 2 年前 |