我正在尝试在调试时进入MFC源代码 . 但是,Visual Studio显然在加载适当的符号时遇到问题:
C:\ WINDOWS \ symbols \ dll \ mfc100.i386.pdb:PDB与图像不匹配 .
我在SO上检查了其他问题,通常建议启用“符号服务器” . 这没有帮助,因为它似乎只下载一个最小的PDB文件(~2 MB)而不是实际上允许您进入源(~20 MB)的PDB文件 .
根据Cannot load symbols for mfc100.dll我应该从http://msdn.microsoft.com/en-us/windows/hardware/gg463028下载一个完整的符号包 . 我做到了,但它也没有帮助,因为这个包实际上根本不包含mfc100.dll的符号 .
我尝试的下一件事是从另一个系统复制PDB文件 . 在我当地的Win7操作系统上,我有一个2011-06-10(24.708 KB)的mfc100.i386.pdb . 在我调试的系统上,我有来自2010-03-18(23.732 KB)的mfc100.i386.pdb . 两者都做“不匹配的形象” .
那么我应该从哪里获得正确的完整符号文件?
操作系统:Windows 8 x86 . Visual Studio 2013与VS 2010 C项目 . mfc100.dll版本: 10.00.40219.01
WinDbg !sym noisy
输出:
************* Symbol Path validation summary **************
Response Time (ms) Location
OK C:\Windows\symbols\dll
DBGHELP: Symbol Search Path: c:\windows\symbols\dll
DBGHELP: Symbol Search Path: c:\windows\symbols\dll
0:000> .reload
Reloading current modules
DBGHELP: c:\windows\symbols\dll\mfc100.i386.pdb - mismatched pdb
DBGHELP: c:\windows\symbols\dll\dll\mfc100.i386.pdb - file not found
DBGHELP: c:\windows\symbols\dll\symbols\dll\mfc100.i386.pdb - file not found
DBGHELP: C:\WINDOWS\SYSTEM32\mfc100.i386.pdb - file not found
DBGHELP: mfc100.i386.pdb - file not found
DBGHELP: Couldn't load mismatched pdb for C:\WINDOWS\SYSTEM32\mfc100.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\WINDOWS\SYSTEM32\mfc100.dll
DBGHELP: mfc100 - no symbols loaded
************* Symbol Loading Error Summary **************
Module name Error
mfc100 PDB not found : c:\windows\symbols\dll\symbols\dll\mfc100.i386.pdb
Unable to locate the .pdb file in this location
1 回答
如MSDN post所述(由Crescens2k提供) -
然后 -
令人高兴的是,使用WinDbg工具,您可以将问题定位到不匹配的符号,经验丰富的程序员(Crescens2k)的建议有助于解决版本与“DLL地狱”不匹配的痛苦难题 .