我一直在尝试在 CLion 中调试我的程序,但无法弄清楚为什么我设置的断点都没有被命中。我使用 MinGW 作为工具链。在我切换到 Visual Studio 工具链后,调试器神秘地工作了。这是为什么,我该如何解决这个问题?我需要调试器与 MinGW 一起工作。以下是我设置的工具链的更多详细信息: 我写了这个小程序:
#include <stdio.h>
int main() {
int a = 10;
a += 1;
printf("Hello, %d!\n", a);
return 0;
}
我在 main() 声明之后的每一行都设置了一个断点。这是生成的默认 CMake 文件:
cmake_minimum_required(VERSION 3.17)
project(practice_1 C)
set(CMAKE_C_STANDARD 99)
add_executable(practice_1 main.c)
这是 MinGW 工具链集:
当我在调试模式下在 CLion 中运行它时,调试器不起作用。它直接进入最后,在控制台中打印该消息。
如果我使用 Visual Studio 设置来设置工具链,则一切正常。所以我这样做:
现在我可以使用 Visual Studio 调试器了。它到达断点,我可以调试我的程序。但我需要使用其他设置。如何解决此问题并使用 GDB 调试器?我尝试在 CMake 文件中添加 this,但没有奏效。
这是我在重建所有后在控制台中得到的构建文本:
====================[ Clean | Debug ]===========================================
"C:\Program Files\JetBrains\CLion 2020.3.3\bin\cmake\win\bin\cmake.exe" --build "D:\Practice\practice_1\cmake-build-debug" --target clean -- -j 9
Clean finished
====================[ Build | all | Debug ]=====================================
"C:\Program Files\JetBrains\CLion 2020.3.3\bin\cmake\win\bin\cmake.exe" --build "D:\Practice\practice_1\cmake-build-debug" --target all -- -j 9
[ 50%] Building C object CMakeFiles/practice_1.dir/main.c.obj
[100%] Linking C executable practice_1.exe
[100%] Built target practice_1
构建完成