为什么我的断点没有在CLion中被击中?

时间:2016-03-09 10:21:47

标签: debugging breakpoints clion

我正在尝试调试使用CMake配置创建的可执行文件

SET(CMAKE_BUILD_TYPE Debug)

但是,CLion没有遇到任何断点。可能是什么问题?

14 个答案:

答案 0 :(得分:5)

我今天遇到了同样的问题。我发现该项目的配置未设置为Debug。将配置设置为Debug后,所有断点都会被命中。

请确保您有以下配置:

  • 选择MenuItem Run/EditConfigurations
  • 选择正确的Target
  • 选择DebugConfiguration

现在应该点击断点。

答案 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)

如果这对其他人有帮助:

就我而言,我必须在设置 -> 构建、执行、部署 -> CMake 中将 -DCMAKE_BUILD_TYPE 选项显式设置为 Debug

My case

答案 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-23159https://youtrack.jetbrains.com/issue/CPP-15850

答案 12 :(得分:0)

就我而言,我必须编辑文件,以便重新编译所有内容,而不是使用缓存。

答案 13 :(得分:0)

就我而言,问题是忘记在 cmakelists 中注释掉优化选项 add_definitions(-O3)。让编译器去发布。