WinDbg缺少托管代码的符号

tur*_*ose 2 symbols windbg

我在让WinDbg将PDB文件用于我的.NET DLL文件时遇到问题.我正在查看的挂起转储来自生产版本,但是我从相同代码的调试版本中获得了PDB文件.

我将符号路径设置为包括本地文件夹和Microsoft符号服务器.

C:\websymbols\foo;srv*c:\websymbols*http://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)

我把所有的PDB文件都放进去了C:\websymbols\foo.但是,托管堆栈列表不包含任何方法名称.

重新加载.reload /f,告诉我:

DBGHELP: No debug info for FOO.dll.  Searching for dbg file
SYMSRV:  c:\websymbols\foo\FOO.dbg\49B7F17C10000\FOO.dbg not found
SYMSRV:  c:\websymbols\FOO.dbg\49B7F17C10000\FOO.dbg not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/FOO.dbg/49B7F17C10000/FOO.dbg not found
DBGHELP: .\FOO.dbg - file not found
DBGHELP: .\dll\FOO.dbg - path not found
DBGHELP: .\symbols\dll\FOO.dbg - path not found
DBGHELP: FOO.dll missing debug info.  Searching for pdb anyway
DBGHELP: Can't use symbol server for FOO.pdb - no header information available
DBGHELP: FOO.pdb - file not found
*** WARNING: Unable to verify checksum for FOO.dll
*** ERROR: Module load completed but symbols could not be loaded for FOO.dll
DBGHELP: FOO - no symbols loaded
Run Code Online (Sandbox Code Playgroud)

在测试环境中将WinDbg附加到服务时,托管堆栈显示方法名称正常.转储内存,并在本地分析DMP文件,我没有看到托管堆栈中的名称.我可能做错了什么?

Rem*_*anu 7

您需要完全相同的PDB文件.调试符号不适用于零售转储.并且您需要完全相同构建的PDB文件.

每当你向野外发布时,你的构建团队应该存储私有PDB文件以供参考,以防你六个月后必须盯着转储...