【发布时间】:2016-09-06 08:59:16
【问题描述】:
我经常使用 WinDBG 来调试测试人员发送给我的转储。现在,我在从 Microsoft 的符号服务器获取调试符号时遇到了非常糟糕的性能。我不是唯一一个,所以我预计微软目前有服务器问题,但它强调了一些关于 WinDBG 的符号缓存的东西,我以前没有太多关注。
当我打开一个新的转储时,它通常会尝试下载所有 Microsoft 符号的每个 pdb。它会在我的调试会话期间缓存它们,如果我关闭 WinDBG 并再次打开它,它通常会打开而无需下载符号。但是,如果我打开几天前使用的转储文件,它似乎经常丢失之前下载的符号。它似乎正在清除旧的 pdb 文件之类的......
我的符号路径设置如下:
SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
那么,问题是,是否可以控制 WinDBG 清除缓存符号的频率?我很乐意用符号文件填充几 GB,因为磁盘很便宜...
【问题讨论】:
-
我不相信这是同一个问题。我刚刚打开了上周打开的几个转储,应该有所有的符号。我发现 WinDBG 正在重新下载 ntdll.pdb。那是一个符号文件,它总是可以在符号服务器上找到,所以我不明白如果以前见过这个版本,为什么需要重新下载。我想我肯定知道的唯一方法是记录我的符号缓存文件夹的内容并观察它随着时间的推移在做什么。
-
或许社区可以建立一个镜像服务器。如果每个人都贡献他的本地缓存符号,我想我们可以获得相当好的覆盖率
-
如果您有时间,请查看
.symopt-0x20000。由于反义,描述有点奇怪 -
Windbg 不清除 pdbs 我的 csche 中有一些非常旧的 vix 10 年旧 pds 如果您不知道您可以下载符号并离线使用它,如果 windbg 要清除然后旧的,请使用 symchk pdb 将丢失
标签: windbg