2016-09-06 78 views
0

我使用WinDBG来调试测试人员发给我的转储。现在,我从Microsoft的符号服务器获取调试符号时遇到了非常差的性能。我不是唯一一个,所以我期望微软目前有服务器问题,但它突出了一些关于WinDBG的符号缓存,我以前没有注意过。WinDBG在一段时间后清除缓存的pdb文件吗?

很多时候,当我打开一个新的转储它试图下载所有Microsoft符号的每个pdb。它会在我的调试会话期间缓存它们,如果我关闭WinDBG并再次打开它,它通常会打开而不必下载符号。但是,如果我打开前几天使用的转储,它似乎经常会丢失之前下载的符号。这似乎是清除旧pdb文件或一些这样的..

我有我的符号路径设置是这样的:

SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols 

所以,问题是可以控制的WinDbg清洗多久缓存的符号?由于磁盘价格便宜,我很乐意为它填充几GB符号文件...

+0

[我已经设置在WinDbg中的符号路径,但为什么每一次的WinDbg可能的复制下载相同的符号为相同的exe?](http://stackoverflow.com/questions/39324154/ive-set-symbol-path-in-windbg-but-why-each-time-windbg-downloads-same-symbol-f ) –

+0

我不相信这是同样的问题。我刚刚打开了上周打开的几个转储,并且应该包含所有符号。我抓到了WinDBG redownloading ntdll.pdb。这是一个符号文件,它始终可以在符号服务器上找到,所以我不明白为什么它应该需要redownloading,如果该版本以前曾见过。我想我肯定知道的唯一方法是记录我的符号缓存文件夹的内容,并观察它随着时间的推移正在做什么。 – Benj

+0

也许社区可以建立一个镜像服务器。如果每个人都贡献他的本地缓存符号,我想我们可以得到相当好的覆盖率 –

回答

1

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

正如@blabb在评论中提到的那样,由于您可以使用download symbol packages (Microsoft)进行非常旧的符号的离线使用,所以清除会起反作用。 Windows XP。

在我的电脑时,我加入了公司,我得到了,2014年的符号仍然存在:

Symbols of 2014

+1

嗯,你说得对。至少我会在几个月前重建我的笔记本电脑时重新开始工作......但是我发誓它会重新下载之前使用过的pdbs ..我会密切关注它,看看我能否抓住它出。 – Benj