没有msvcr100d.dll的来源!__ CrtDumpMemoryLeaks()

时间:2012-04-04 09:08:04

标签: c++ visual-studio debugging visual-c++ msvcrt

使用Visual Studio 2010调试C ++项目时,找不到crt的源代码。当我试图进入一个这样的模块时,它显示“No Source Available”。它也没有为Browse提供选项,以便我可以帮助它找到源位置。

在Option Solution-> Common Properties-> Debug Source Files下,更新了crt源的正确位置。

由于缺乏crt的源代码级调试,我必须通过反汇编来阅读这个问题变得越来越困难。

任何人都可以帮我弄清楚可能出现的问题吗?

请注意**我正在通过Visual Studio使用外部构建系统来构建我的C ++项目。

在汉斯的指导下,我如何缩小问题范围。

虽然断点仍处于活动状态,但我列出了所有符号加载信息。我意识到msvcr100d.i386.pdb与dll不匹配。它实际上一直都是从微软的公共符号存储中取出,当然这些符号被剥离了。这就是我问题的根本原因。

这是social.msdn

中的类似问题

2 个答案:

答案 0 :(得分:1)

您可以在中断活动时使用Debug + Windows + Modules查看问题的原因。右键单击msvcr100d.dll并选择“符号加载信息”以获取有关调试器使用的.pdb的信息。

由于某种原因,Microsoft Symbol Server提供了一个剥离了源信息的服务器。这可能是故意的,与DLL的服务和安全补丁与vc / crt / scr中的源代码不同步有关。您可以通过发布到connect.microsoft.com

获得真实答案而不是猜测

一种解决方法是使用/ MTd而不是/ MDd编译代码,如果可能的话。项目+属性,C / C ++,代码生成,运行时库设置。然后调试器将使用vc / lib中的.pdb文件。请密切关注球,调试代码而不是CRT。

答案 1 :(得分:0)

您可以在安装文件夹VC \ CRT \ SRC子文件夹中找到CRT的来源。

如果它们不存在,安装VS2010时是否安装了它们? (不确定你是否真的可以选择这个)。