我试图在调试时进入MFC源代码。然而,Visual Studio显然在加载适当的符号方面存在问题:
C:\WINDOWS\symbols\dll\mfc100.i386.pdb: PDB与映像不匹配。
我查看了SO上的其他问题,通常建议启用“符号服务器”。但这并没有帮助,因为它似乎只下载一个最小的PDB文件(~2 MB),而不是一个实际允许您进入源代码的PDB文件(~20 MB)。
根据无法加载mfc100.dll的符号,我应该从http://msdn.microsoft.com/en-us/windows/hardware/gg463028下载完整的符号包。我已经这样做了,但这也没有帮助,因为此包实际上根本不包括mfc100.dll的符号。
C:\WINDOWS\symbols\dll\mfc100.i386.pdb: PDB与映像不匹配。
我查看了SO上的其他问题,通常建议启用“符号服务器”。但这并没有帮助,因为它似乎只下载一个最小的PDB文件(~2 MB),而不是一个实际允许您进入源代码的PDB文件(~20 MB)。
根据无法加载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
*** ERROR: Module load completed but symbols could not be loaded for C:\WINDOWS\SYSTEM32\mfc100.dll
。 - floele