【问题标题】:Breakpoints not being hit in Visual Studio 2012Visual Studio 2012 中未命中断点
【发布时间】:2018-01-21 02:48:34
【问题描述】:

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

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

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

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

断点被忽略,旁边有一个感叹号表示“断点当前不会被命中。没有为此文档加载任何符号”。

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

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

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

【问题讨论】:

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


    【解决方案1】:
    • 尝试重建应用程序。

    • 确保它在调试配置中。

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

    【讨论】:

    • 我试过了,但它不起作用。此外,任何地方都没有 pdb 文件。这些不应该在 Debug 文件夹中吗?
    • 我不确定是否在调试文件夹中,但在项目文件夹中应该有.pdb 文件。
    • 在构建后的输出中我收到一个警告:main.obj : warning LNK4099: PDB 'vc110.pdb' is not found with 'main.obj' or at 'Z:\Projects\Tools\调试测试\调试\vc110.pdb';链接对象好像没有调试信息 DebugTest.vcxproj -> Z:\Projects\Tools\DebugTest\Debug\DebugTest.exe
    • 你知道如何解决这个问题吗?
    • 找到了link 这个问题的解决方案在哪里,让我们看看。 :-)
    【解决方案2】:

    这是我如何使断点工作的,以防这对任何人都有帮助,尽管我并不真正了解我在做什么。

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

    如果有人能详细说明为什么这会导致符号加载,而前一个选项没有。

    【讨论】:

      猜你喜欢
      • 2014-03-27
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多