在 Visual Studio 2012 中未命中断点

Breakpoints not being hit in Visual Studio 2012

本文关键字:中断 断点 Visual Studio 2012      更新时间:2023-10-16

我已经多次看到这个问题被问过,我已经尝试了我读过的所有废话,但我无法让它工作。

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

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

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

断点将被忽略,旁边有一个感叹号,表示"当前不会命中断点。本文件未加载任何文号"。

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

main.obj : 警告LNK4099:在 'main.obj' 或 'Z:\Projects\Tools\DebugTest\Debug\vc110.pdb' 找不到 PDB 'vc110.pdb' ;链接对象,好像没有调试信息 DebugTest.vcxproj -> Z:\Projects\Tools\DebugTest\DebugTest.exe

但是,如果我转到"属性">"配置属性">链接器>调试,则在"生成程序数据库文件"中,我相信我有正确的"$(OutDir($(TargetName(.pdb",所以我不明白为什么没有创建 pdb 文件。

  • 尝试重建应用程序。

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

当调试信息文件 (.PDB(与实际编译的二进制文件不同步。

这是我如何使断点工作,以防这对任何人有所帮助,尽管我真的不明白我在做什么。

在 C/C++> 常规>项目属性中,在"调试信息格式"设置中,我将"程序数据库"更改为"C7 兼容"。现在已加载符号并命中断点。

如果有人可以详细说明为什么这会导致符号加载,而前一个选项没有,那就太好了。