我的符号路径是:
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols符号文件夹
c:\Symbols\HelloWorld64.pdb\408F6A6B3154428DA5DB17FDD17ABAEE1\这两个文件
HelloWorld64.pd_
refs.ptr为了创建上面压缩的.pd_,我使用了/compress选项:
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但是,在加载DMP文件时,WinDbg无法找到.pd_,而是查找.pdb:
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有什么想法吗?谢谢!
发布于 2020-04-07 16:48:25
只有当您有压缩的pdb时,symsrv才能与未压缩的pdb一起工作,您需要一个缓存,在此缓存可以解压缩版本10.0.19528.1000 AMD64上的演练。
如果使用symstore存储压缩的pdb,则需要一个本地缓存来解压缩它,然后symsrv才能找到它。
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上面找不到符号,因为只有deto.pd_存在,在那里使用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临时更改符号路径以添加本地缓存
0:000> .sympath srv*f:\test*f:\symbols
DBGHELP: Symbol Search Path: srv*f:\test*f:\symbols执行.reload符号现在可以在f:\test中访问(它还将在访问f:\ ntdll.pdb之前将ntdll.pdb和其他符号从f:\符号复制到f:\test
“压缩”选项主要用于符号服务器操作(在这些操作中,您有千兆字节的符号,用于千兆字节的版本),如果您编译它们,只需存储,然后解压缩,并消除头痛。
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.pdbhttps://stackoverflow.com/questions/61069507
复制相似问题