0


错误日志:解决在VScode中调试C++代码断点无效、断点错位的问题

问题可能原因有:

  1. 调试时断点无效,大概率是 CMakeLists.txt 设置成了 Release 模式;
  2. 如果在 CMakeLists.txt 在设置成 Debug 以后,调试时能够停下来,但没在断点处停下,而是停在了别的地方,这就是代码编译优化导致的了。应该是 CMakeLists.txt 中添加了 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3"),测试发现 O1O2O3 都会出现同样的问题。也就是说,任何级别的优化都会带来代码结构的改变,会使目标代码的执行顺序变得面目全非,导致调试信息严重不足。 - 有的文章中说添加设置 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") 能解决问题,但是亲测若添加了代码编译优化,是没办法解决这问题的。

问题二对应的场景为以下:

程序运行前:
在这里插入图片描述

程序运行后:
在这里插入图片描述
可以在 CMakeLists 中将 Debug 和 Release 使用

CMAKE_CXX_FLAGS_DEBUG

CMAKE_CXX_FLAGS_RELEASE

区分开来。

标签: vscode c++ ide

本文转载自: https://blog.csdn.net/qq_28087491/article/details/137646688
版权归原作者 泠山 所有, 如有侵权,请联系我们删除。

“错误日志:解决在VScode中调试C++代码断点无效、断点错位的问题”的评论:

还没有评论