Microsoft state here:
The Microsoft Symbol Server provides compressed versions of the symbol files. The files have an underscore at the end of the filename’s extension to indicate that they are compressed. For example, the PDB for ntdll.dll is available as ntdll.pd_.
I have 2 questions here:
The more general question: How can I cause Windbg to prefer the compressed version of the symbols? This would result in massive bandwidth savings. (Compressing c:\Symbols on my computer resulted in a 68% reduction in size). Sniffing the traffic reveals that the uncompressed version is tried first and then the compressed version (underscore at end of name).
and specific to MS Public Symbols: Are the compressed versions currently available at all? Trying to manually download a compressed versions of ntdll.pdb returns a 404 error.
>$ wget https://msdl.microsoft.com/download/symbols/ntdll.pdb/38A5841BD353770D9C800BF1AF6B17EB1/ntdll.pdb
...
ntdll.pdb 100%[=====================================================================================>] 1.46M 406KB/s in 4.4s
2018-11-11 01:16:56 (341 KB/s) - ‘ntdll.pdb’ saved [1534976/1534976]
>$ wget https://msdl.microsoft.com/download/symbols/ntdll.pdb/38A5841BD353770D9C800BF1AF6B17EB1/ntdll.pd_
....
HTTP request sent, awaiting response... 404 Not Found
2018-11-11 01:17:01 ERROR 404: Not Found.
Update:
I have now discovered that DbgHelp supports an option called SYMOPT_FAVOR_COMPRESSED which is explained as follows:
If there is both an uncompressed and a compressed file available, favor the compressed file. This option is good for slow connections.
The question now is how to enable this option in Windbg?
This option isn't documented in the officical Windbg documentation and setting it manually seems to only affect the UI level.
0:003> .symopt+ 0x800000
Symbol options are 0x830337:
0x00000001 - SYMOPT_CASE_INSENSITIVE
0x00000002 - SYMOPT_UNDNAME
0x00000004 - SYMOPT_DEFERRED_LOADS
0x00000010 - SYMOPT_LOAD_LINES
0x00000020 - SYMOPT_OMAP_FIND_NEAREST
0x00000100 - SYMOPT_NO_UNQUALIFIED_LOADS
0x00000200 - SYMOPT_FAIL_CRITICAL_ERRORS
0x00010000 - SYMOPT_AUTO_PUBLICS
0x00020000 - SYMOPT_NO_IMAGE_SEARCH
0x00800000 - SYMOPT_FAVOR_COMPRESSED
However inspecting the traffic using fiddler shows that the uncompressed version is still requested first.
User contributions licensed under CC BY-SA 3.0