首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试MFC:"mfc100.dll“无法找到或打开pdb

调试MFC:"mfc100.dll“无法找到或打开pdb
EN

Stack Overflow用户
提问于 2014-04-11 09:08:48
回答 1查看 4.5K关注 0票数 3

在调试时,我正在尝试进入MFC源代码。但是,Visual显然在加载适当的符号时遇到了问题:

C:\WINDOWS\符号\dll\mfc100.i386.pdb: PDB与图像不匹配。

因此,我检查了其他问题,通常建议启用“符号服务器”。但是,这并没有帮助,因为它似乎只下载了一个最小的PDB文件(~2MB),而不是一个实际允许您进入源代码(~20 MB)的PDB文件。

根据无法加载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 2013与VS 2010 C++项目。mfc100.dll版本:10.00.40219.01

WinDbg !sym noisy输出:

代码语言:javascript
复制
************* 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-11 12:26:33

正如MSDN员额 (由Crescens2k解释)中所解释的-

这些符号应该与VS使用的版本相匹配,因此如果您安装了比VS当前使用的版本更新的VC redist版本,它们就会失去同步。检查安装VS2010的VC目录中CRT的版本。应该有一个redist目录在那里,下面是CRT。检查这些文件的版本,看看它们是否与system32目录中的版本相同。通常情况下应该是匹配的。如果他们不检查VS的更新。最新版本应该是10.0.40219.325,因此请确保VS已经更新以使用该版本。

后来-

...try手动应用MFC安全更新。..。看看这能不能解决所有问题。

幸运的是,使用WinDbg工具,您可以将问题定位到不匹配的符号上,经验丰富的程序员(Crescens2k)的建议帮助解决了"DLL地狱“版本不匹配这一令人痛苦的丑陋问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23008222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档