【问题标题】:Visual Studio Skipping (And Moving) Breakpoint When Debugging (C++ / CMake)调试时 Visual Studio 跳过(和移动)断点 (C++ / CMake)
【发布时间】:2018-09-09 02:51:59
【问题描述】:

我有一个在 Ubuntu 上创建的 CMake 项目,现在正在 Visual Studio 上加载(用于双启动开发)。

项目可以在这里看到:http://github.com/KiloMikeCodesStuff/Gravity

下图显示问题:

请注意左边我是如何在第 5 行明确设置断点的。当我运行它时,断点移动并在第 8 行停止。

我试过了:

  • 清洁
  • 重建
  • 重命名变量

在所有情况下,结果都是一样的。 我在想也许有一些代码优化(因为我选择为 x64 版本构建,因为这些是我仅有的用于 SFML 的 DLL)。

这会是罪魁祸首吗?如果是这样,我该如何禁用优化(记住它是 CMake 项目,而不是典型的 VS 项目)?

【问题讨论】:

    标签: c++ debugging cmake sfml breakpoints


    【解决方案1】:

    最可能的原因是第 5 行没有关联的汇编代码,而代码之后的第一行是第 8 行。在优化代码时可能会发生这种情况。禁用优化的命令行标志是 Visual C++ 是 /Od。由于前几行是简单的变量赋值,这些变量可以优化到寄存器中或推迟到以后。

    这是无害的,因为当您在第 5 行设置断点时,执行仍会在函数中的第一个代码处停止。尝试调试优化构建的常见问题(奇怪的变量值、执行跳跃等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 2014-03-29
      • 2016-08-06
      • 2010-12-13
      • 2013-04-21
      • 1970-01-01
      相关资源
      最近更新 更多