My symbol path is:
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
The symbol folder
c:\Symbols\HelloWorld64.pdb\408F6A6B3154428DA5DB17FDD17ABAEE1\
has these two files
HelloWorld64.pd_
refs.ptr
To create the above compressed .pd_, I used the /compress option:
SymStore.exe add /compress /f "C:\Development\HelloWorld\Bin\HelloWorld\x64\HelloWorld64.pdb" /s C:\Symbols /t HelloWorld64-Release /v 2.47.0.1 /o
SYMSTORE MESSAGE: 0 alternate indexers registered
SYMSTORE MESSAGE: LastId.txt reported id 131
SYMSTORE MESSAGE: Final id is 0000000131
SYMSTORE MESSAGE: Copying
C:\Development\HelloWorld\Bin\HelloWorld\x64\HelloWorld64.pdb to C:\Symbols\HelloWorld64.pdb\408F6A6B3154428DA5DB17FDD17ABAEE1\HelloWorld64.pd_ [Force: T, Compress: T]
SYMSTORE: Number of files stored = 1
SYMSTORE: Number of errors = 0
SYMSTORE: Number of files ignored = 0
However, when loading the DMP file, WinDbg is unable to find .pd_ but looks for .pdb instead:
DBGENG: C:\Development\HelloWorld\Bin\HelloWorld\x64\HelloWorld64.exe - Mapped image memory
SYMSRV: BYINDEX: 0x12
c:\symbols*http://msdl.microsoft.com/download/symbols
HelloWorld64.pdb
408F6A6B3154428DA5DB17FDD17ABAEE1
SYMSRV: UNC: c:\symbols\HelloWorld64.pdb\408F6A6B3154428DA5DB17FDD17ABAEE1\HelloWorld64.pdb - file not found
SYMSRV: RESULT: 0x00000000
DBGHELP: HelloWorld64.pdb - file not found
DBGHELP: HelloWorld64 - no symbols loaded
Any ideas? Thanks!
symsrv can work with uncompressed pdb only if you have compressed pdbs you need a cache where it can be decompressed the walkthrough below done on Microsoft (R) Windows Debugger Version 10.0.19528.1000 AMD64
if you are using symstore to store a compressed pdb then you need a local cache to decompress it before symsrv can locate it
0:000> .reload /f
Reloading current modules
.SYMSRV: BYINDEX: 0x2
f:\symbols*https://msdl.microsoft.com/download/symbols
deto.pdb
3C481DA1FE5E450F947D744F14D014272
SYMSRV: UNC: f:\symbols\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pdb - file not found
SYMSRV: RESULT: 0x00000000
DBGHELP: F:\src\deto\deto.pdb - file not found
DBGHELP: deto - no symbols loaded
symbol not found above as only deto.pd_ exists there stored using symstore.exe
F:\src\deto>dir /s /b f:\symbols\deto.pdb\3C481DA1FE5E450F947D744F14D014272\
f:\symbols\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pd_
f:\symbols\deto.pdb\3C481DA1FE5E450F947D744F14D014272\refs.ptr
temporarily changed sympath to add a local cache
0:000> .sympath srv*f:\test*f:\symbols
DBGHELP: Symbol Search Path: srv*f:\test*f:\symbols
doing a .reload symbols are now accessible in f:\test (it will also copy ntdll.pdb and others from f:\symbols to f:\test before accessing them
compress option is mainly used for symbol server operations (where you have petabytes of symbols for gigabytes of versions) if you compile them simply store then uncompressed and get rid of headaches
0:000> .reload /f
Reloading current modules
.SYMSRV: BYINDEX: 0x8
f:\test*f:\symbols
deto.pdb
3C481DA1FE5E450F947D744F14D014272
SYMSRV: UNC: f:\test\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pdb - path not found
SYMSRV: UNC: f:\test\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pd_ - path not found
SYMSRV: UNC: f:\test\deto.pdb\3C481DA1FE5E450F947D744F14D014272\file.ptr - path not found
SYMSRV: UNC: f:\symbols\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pdb - file not found
SYMSRV: deto.pd_ from f:\symbols: uncompressed
SYMSRV: PATH: f:\test\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pdb
SYMSRV: RESULT: 0x00000000
DBGHELP: deto - private symbols & lines
f:\test\deto.pdb\3C481DA1FE5E450F947D744F14D014272\deto.pdb
User contributions licensed under CC BY-SA 3.0