I've set symbol path in windbg, but why each time windbg downloads same symbol for same exe?

一曲冷凌霜 提交于 2020-01-16 04:11:06

问题


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

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.....?

Thanks.


回答1:


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

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

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

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?




回答2:


If pdb is in local cache symsrv downloads it from there else it downloads from symbolserver local cache can also be a mapped network drive a shared folder in host computer when you are debugging in a virtual machine etc etc diwnloading is a terminology which ststes it is fetching the symbols from somewhere it may be internal or external vize file://. Or http://



来源:https://stackoverflow.com/questions/39324154/ive-set-symbol-path-in-windbg-but-why-each-time-windbg-downloads-same-symbol-f

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!