我正在尝试调试使用 CMake 配置创建的可执行文件
SET(CMAKE_BUILD_TYPE Debug)
但是,CLion 不会遇到任何断点。可能是什么问题?
我今天也遇到了同样的问题。我发现项目的配置没有设置为
Debug
。将配置设置为Debug
后,所有断点都会被命中。
请确保您有以下配置:
Run/EditConfigurations
Target
Debug
作为 Configuration
现在应该命中断点了。
万一这对其他人有帮助,事实证明我的(有点尴尬)问题是我打的是
Run
而不是Debug
。因此,在“运行”菜单中不要使用播放图标,而是选择可爱的错误图标。选择“运行”会导致它自动构建非调试版本,因此断点不起作用。一旦我开始选择错误图标,断点就发挥了作用。
事实证明,可执行文件是使用以下 CMake 选项编译的(在脚本的下方):
SET(CMAKE_C_FLAGS_DEBUG "-D_DEBUG")
这破坏了 CLion 的调试功能(它也破坏了
gdb
的大部分调试功能)
就我而言,我的 CMake 选项 CMAKE_BUILD_TYPE 已在 CMake 设置上设置为 DEBUG。然而,它是CMakeLists.txt中的命令集(CMAKE_BUILD_TYPE Release),它被git pull合并并在执行时覆盖了CMake设置。我之前无法弄清楚,因为 CMake 调试控制台显示 -DCMAKE_BUILD_TYPE=Debug
当我将其更改为设置(CMAKE_BUILD_TYPE Debug)时,断点再次被命中。
-ffile-prefix-map
标志。一旦我删除它,一切都正常。请参阅
https://youtrack.jetbrains.com/issue/CPP-23159 和 https://youtrack.jetbrains.com/issue/CPP-15850
文件/设置/构建、执行、部署/Tllochains/调试器从捆绑的 GEB 或 gdb 到捆绑的 LLDB。
我试过了,它的措辞!
/media/username/ssd/repo/git/projectname
在 CLion 中开放的。断点始终被禁用,并显示消息
No executable code is associated with this line
。然后我从符号链接目录打开同一个项目
~/git
->
/media/username/ssd/repo/git
并且断点开始正常工作。
add_definitions(-O3)
。这让编译器释放。
下载正确的版本即可解决问题
-Ofast
标志是GCC(GNU编译器集合)和其他一些编译器中使用的编译器优化选项。当您使用
-Ofast
编译程序时,它会启用一组积极的优化选项,可以显着提高生成代码的性能。但是,这些优化禁用了 CLion 中的断点。