在Visual Studio 2012中没有遇到断点

时间:2017-08-12 20:23:01

标签: c++ visual-studio visual-studio-2012

我已经多次看过这个问题而且我已经尝试了所有我读过的废话,但是我无法让它发挥作用。

我在调试模式下使用Visual Studio 2012。我编译简单的代码

#include<iostream>
int main()
{
 std::cout << "Hi" << std::endl;
 system("pause");
 return 0;
}

我在第4行(std :: cout ...)中设置了一个断点,然后按F5执行。

断点被忽略,旁边有一个惊叹号,说&#34;断点当前不会被击中。没有为此文档加载符号&#34;。

编辑:在构建后的输出窗口中,我收到警告:

main.obj:警告LNK4099:PDB&#39; vc110.pdb&#39;没有找到&#39; main.obj&#39;或者在&#39; Z:\ Projects \ Tools \ DebugTest \ Debug \ vc110.pdb&#39 ;;链接对象,好像没有调试信息DebugTest.vcxproj - &gt; Z:\项目\工具\的DebugTest \调试\ DebugTest.exe

但是,如果我去Properties&gt;配置属性&gt;链接器&gt;调试,生成程序数据库文件&#34;我相信我有正确的&#34; $(OutDir)$(TargetName).pdb&#34;所以我不明白为什么没有创建pdb文件。

2 个答案:

答案 0 :(得分:1)

  • 尝试重建应用程序。

  • 确保它处于调试配置中。

当调试信息文件(.PDB)与实际编译的二进制文件不同步时,就会发生这种情况。

答案 1 :(得分:0)

以下是我如何使断点有效,以防这对任何人都有帮助,虽然我不太了解我在做什么。

在项目属性中&gt; C / C ++&gt;一般情况下,在调试信息格式设置中,我更改了程序数据库&#34; to&#34; C7兼容&#34;。现在加载符号并且命中断点。

如果有人可以详细说明为什么这会导致符号加载,那将是很好的,而前一种选择则没有。