使用“ .reload”迫使windbg加载PDB



我为我的可执行App.exe收集了一个转储: App.DMP

不幸的是,我们没有为此特定构建保存.pdb,但是由于我们有构建数字,我们可以重建相同的版本并重建.pdb

这无济于事,我无法用Visual Studio加载符号。

因此,我尝试使用WinDbg打开转储,并按照以下说明强制加载应匹配符号:

0:000> !sym –noisy
0:000> .reload /f /i C:Testsdump-eApp.exe
SYMSRV:  BYINDEX: 0x34
         C:Program Files (x86)Windows Kits10Debuggersx86sym
         App.pdb
         CEE75F0AAD5348458938777BBD4165B01
SYMSRV:  UNC: C:Program Files (x86)Windows Kits10Debuggersx86symApp.pdbCEE75F0AAD5348458938777BBD4165B01App.pdb - path not found
SYMSRV:  UNC: C:Program Files (x86)Windows Kits10Debuggersx86symApp.pdbCEE75F0AAD5348458938777BBD4165B01App.pd_ - path not found
SYMSRV:  UNC: C:Program Files (x86)Windows Kits10Debuggersx86symApp.pdbCEE75F0AAD5348458938777BBD4165B01file.ptr - path not found
SYMSRV:  RESULT: 0x80070003
SYMSRV:  BYINDEX: 0x35
         https://msdl.microsoft.com/download/symbols
         App.pdb
         CEE75F0AAD5348458938777BBD4165B01
SYMSRV:  UNC: C:Program Files (x86)Windows Kits10Debuggersx86symApp.pdbCEE75F0AAD5348458938777BBD4165B01App.pdb - path not found
SYMSRV:  UNC: C:Program Files (x86)Windows Kits10Debuggersx86symApp.pdbCEE75F0AAD5348458938777BBD4165B01App.pd_ - path not found
SYMSRV:  UNC: C:Program Files (x86)Windows Kits10Debuggersx86symApp.pdbCEE75F0AAD5348458938777BBD4165B01file.ptr - path not found
SYMSRV:  HTTPGET: /download/symbols/App.pdb/CEE75F0AAD5348458938777BBD4165B01/App.pdb
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/App.pdb/CEE75F0AAD5348458938777BBD4165B01/App.pd_
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  HTTPGET: /download/symbols/App.pdb/CEE75F0AAD5348458938777BBD4165B01/file.ptr
SYMSRV:  HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND
SYMSRV:  RESULT: 0x80190194
SYMSRV:  BYINDEX: 0x36
         c:testsdump
         App.pdb
         CEE75F0AAD5348458938777BBD4165B01
SYMSRV:  UNC: c:testsdumpApp.pdbCEE75F0AAD5348458938777BBD4165B01App.pdb - path not found
SYMSRV:  UNC: c:testsdumpApp.pdbCEE75F0AAD5348458938777BBD4165B01App.pd_ - path not found
SYMSRV:  UNC: c:testsdumpApp.pdbCEE75F0AAD5348458938777BBD4165B01file.ptr - path not found
SYMSRV:  RESULT: 0x80070003
DBGHELP: Failed copying the file 'D:AgtDef4_w36sAppx64ReleaseApp.pdb' to the cache
DBGHELP: D:AgtDef4_w36sAppx64ReleaseApp.pdb - file not found
*** WARNING: Unable to verify checksum for App.exe
*** ERROR: Module load completed but symbols could not be loaded for App.exe
DBGHELP: App - no symbols loaded

为什么力量加载不起作用?D:驱动器是什么?我没有这样的驱动器。它与此GUID(CEE75F0AAD53484589387777777777777777777777777777165B01(是否与我的转储匹配?力不应该覆盖这个吗?

符号和图像文件都具有编译时间校验和,因此重建相同的构建不会产生"兼容" PDB来调试系统。

使用该力与新的重建图像一起使用,可能会产生足够相似的构建,以诊断坠机的工作。但是,诸如全程优化,增量链接和配置文件引导 - 拟量化之类的优化可能会在符号中产生边际差异。

使用 .symopt smypt_load_anything,然后将新建的PDB和二进制放在搜索路径的开头。

WINDGB检查的位置是a(链接输出目录,b(符号路径上的路径。

这意味着当您构建二进制并在同一台计算机上进行调试时,通常会找到正确的值。D:是您的构建服务器的构建目录。

相关内容

  • 没有找到相关文章

最新更新