我在让 WinDbg 将PDB文件用于我的.NET DLL 文件时遇到问题。我正在查看的挂起转储来自生产版本,但我有来自相同代码的调试版本的 PDB 文件。
我将符号路径设置为包含本地文件夹和 Microsoft 符号服务器。
C:\websymbols\foo;srv*c:\websymbols*http://msdl.microsoft.com/download/symbols
我把我所有的 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
在测试环境中将 WinDbg 附加到服务时,托管堆栈与方法名称一起显示得很好。转储内存并在本地分析 DMP 文件我看不到托管堆栈中的名称。我可能做错了什么?