Kev*_*vin 1 c++ debugging breakpoints cmake sfml
我有一个在 Ubuntu 上创建的 CMake 项目,我现在正在 Visual Studio 上加载它(用于双引导开发)。
该项目可以在这里看到:http : //github.com/KiloMikeCodesStuff/Gravity
下图显示了问题: 
注意左边我是如何清楚地在第 5 行设置断点的。当我运行它时,断点移动并在第 8 行停止。
我试过了:
在所有情况下,结果都是一样的。我在想可能有一些代码优化(因为我选择为 x64 版本构建,因为这些是我为 SFML 拥有的唯一 DLL)。
这会是罪魁祸首吗?如果是这样,我如何禁用优化(记住它是一个 CMake 项目,而不是一个典型的 VS 项目)?
最可能的原因很简单,没有与第 5 行相关联的汇编代码,其后的第一行是第 8 行。在优化代码时可能会发生这种情况。禁用优化的命令行标志是 Visual C++ 是/Od. 由于前几行是简单的变量赋值,这些变量可以优化到寄存器中或推迟到以后。
这是无害的,因为当您在第 5 行设置断点时,执行仍在函数中的第一个代码处停止。尝试调试优化构建的常见问题适用(奇怪的变量值、执行跳跃等)。