当前位置:   article > 正文

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

vscode jlink 调试没有断点光标

问题可能原因有:

  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_DEBUGCMAKE_CXX_FLAGS_RELEASE 区分开来。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/786341
推荐阅读
相关标签
  

闽ICP备14008679号