【问题标题】:Does WinDBG purge cached pdb files after a while?WinDBG 是否会在一段时间后清除缓存的 pdb 文件?
【发布时间】: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


【解决方案1】:

不,符号不会被清除。除了不可靠的时间戳之外,我不知道有任何信息可以告诉 WinDbg 符号的年龄。文件pingme.txt 是一个空文件。

正如 @blabb 在 cmets 中所提到的,清除会适得其反,因为您可以 download symbol packages (Microsoft) 离线使用非常旧的符号,例如Windows XP。

在我加入公司时拿到的电脑上,2014年的标志还在:

【讨论】:

  • 嗯,你是对的。我的至少可以追溯到几个月前我重建笔记本电脑的时候..但我发誓它正在重新下载我以前使用过的 pdbs..我会密切关注它,看看我是否能抓住它出来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 2014-06-03
  • 2020-09-30
  • 1970-01-01
相关资源
最近更新 更多