我已经在windbg中设置了符号路径,但是为什么每次windbg都为同一个exe下载相同的符号? [英] I've set symbol path in windbg, but why each time windbg downloads same symbol for same exe?

查看:67
本文介绍了我已经在windbg中设置了符号路径,但是为什么每次windbg都为同一个exe下载相同的符号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用windbg.exe调试了同一个exe.每次windbg加载此exe时,都会花一分钟时间下载符号.在windbg窗口的左下角,显示"正在下载符号[winnt.dll]...".

I used windbg.exe to debug the same exe. Each time windbg loads this exe, it will spend a minute to download symbols. On the left-bottom corner of windbg window, it shows ""Downloading symbols [winnt.dll]..."".

我已经看过多次了.我已经设置了符号路径,其中一行是:

I've see this multiple times. I've set my symbol path, and one line is:

************* Symbol Path validation summary **************
Deferred SRV*D:\SymCache\Microsoft*http://msdl.microsoft.com/download/symbols

这对我来说很奇怪,只要设置了Microsoft下载URL和本地缓存目录,为什么每次我打开windbg加载相同的exe时,windbg都会下载相同的winnt.dll ......?

This is weird to me, as long as I've set the microsoft download URL and the local cache dir, why each time I open windbg to load same exe, windbg will download the same winnt.dll.....?

谢谢.

推荐答案

WinDbg不会再次下载符号,但是会尝试重新下载上次找不到的文件.

WinDbg does not download symbols again, but it will try to download those files again which it didn't find last time.

在我的示例中,我下载了这些符号,并提取了 hal.dll kdcom.dll ntkrnlmp.pdb ntoskrnl.exe .

In my example, I have downloaded the symbols and it fetched hal.dll, kdcom.dll, ntkrnlmp.pdb and ntoskrnl.exe.

再次执行 .reload ,它再次寻找 halaacpi.dll .使用Wireshark监视流量,您可以看到:

Doing a .reload again, it was looking for halaacpi.dll once more. Monitoring the traffic with Wireshark you can see that:

请注意,每个请求的HTTP往返时间为8秒钟以上,因此花了66秒钟才知道没有什么可下载的.另请参见: WinDbg是否应该变得如此缓慢?

Please note the insane HTTP roundtrip times of 8+ seconds per request, so it took 66 seconds just to figure out that there's nothing to download. See also: Is WinDbg Supposed to Be So Excruciatingly Slow?

这篇关于我已经在windbg中设置了符号路径,但是为什么每次windbg都为同一个exe下载相同的符号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆