我正在尝试调试使用CMake配置创建的可执行文件
SET(CMAKE_BUILD_TYPE Debug)
但是,CLion没有遇到任何断点。可能是什么问题?
答案 0 :(得分:5)
我今天遇到了同样的问题。我发现该项目的配置未设置为Debug
。将配置设置为Debug
后,所有断点都会被命中。
请确保您有以下配置:
Run/EditConfigurations
Target
Debug
为Configuration
现在应该点击断点。
答案 1 :(得分:3)
事实证明,可执行文件是使用以下CMake选项编译的(在脚本的下方):
SET(CMAKE_C_FLAGS_DEBUG "-D_DEBUG")
这破坏了CLion的调试功能(它也破坏了gdb
的大部分调试功能)
答案 2 :(得分:2)
万一这对其他人有帮助,我的问题(有点令人尴尬)是我打的是Run
而不是Debug
。因此,在“运行”菜单中不要使用播放图标,而是选择可爱的错误图标。选择“运行”会导致它自动生成非调试版本,因此断点将不起作用。一旦我开始选择错误图标,这些断点就会像一个符咒一样起作用。
答案 3 :(得分:1)
在2019.3中,结果为CLion / Preference / Build,Execution,Deployment / CMake / Build type / Debug。
答案 4 :(得分:1)
在我的情况下,我的CMake选项CMAKE_BUILD_TYPE已在CMake设置上设置为DEBUG。但是,这是CMakeLists.txt中的命令集(CMAKE_BUILD_TYPE版本),它由git pull合并并在执行时覆盖CMake设置。由于CMake调试控制台显示-DCMAKE_BUILD_TYPE = Debug
,我无法弄清楚当我将其更改为设置(CMAKE_BUILD_TYPE调试)时,再次遇到断点。
答案 5 :(得分:1)
答案 6 :(得分:0)
我也有同样的问题。自2016.3起,CLion更改了CMake工作流程,以便一次只允许一种配置clion new workflow
解决方案是文件->设置->构建,执行,部署->更改构建配置
答案 7 :(得分:0)
我有同样的问题。我注意到,每当我单击调试选项时,“反恶意软件服务可执行文件”过程就会启动。我在Windows Defender中为MinGW文件夹创建了一个排除项,它工作得很好...
答案 8 :(得分:0)
就像minecrawler在github中说的那样,如果您的操作系统是linux,则应设置:
从捆绑的GEB或gdb到捆绑的LLDB的文件/设置/构建,执行,部署/语言链/调试器。
我尝试过并说出了话!
答案 9 :(得分:0)
在我的情况下(Linux / Ubuntu),问题与挂载目录有关。
该项目最初是从/media/username/ssd/repo/git/projectname
在CLion中打开的。断点始终通过消息No executable code is associated with this line
禁用。
然后我从符号链接目录中打开了同一项目
~/git
-> /media/username/ssd/repo/git
,断点开始正常工作。
答案 10 :(得分:0)
我的项目路径中有一个逗号。删除逗号为我解决了这个问题。
答案 11 :(得分:0)
我的问题是与-ffile-prefix-map
标志有关。删除后,一切正常。
请参见https://youtrack.jetbrains.com/issue/CPP-23159和https://youtrack.jetbrains.com/issue/CPP-15850
答案 12 :(得分:0)
就我而言,我必须编辑文件,以便重新编译所有内容,而不是使用缓存。
答案 13 :(得分:0)
就我而言,问题是忘记在 cmakelists 中注释掉优化选项 add_definitions(-O3)
。让编译器去发布。