VSCode CMake调试CPP程序

发布于:2025-04-13 ⋅ 阅读:(13) ⋅ 点赞:(0)

1 安装C++与CMake插件

C++插件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CMake插件

在这里插入图片描述

2 配置CMakeLists.txt

编写测试程序

#include<iostream>

int main(int argc, char const *argv[]) {
    int a = 1, b = 2;
    int c = a + b;
    int d = a - b;
    std::cout << "Done!" << std::endl;
    return 0;
}

编写构建脚本CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(DebugProject)

add_executable(main.out main.cpp)

3 使用CMake编译调试

3.1 编译

Command + Shift + P 输入CMake 输入CMake: Configure 指定要构建的文件

在这里插入图片描述

进入CMake Tools插件,可以看到CMake中的各种命令

PROJECT OUTLINE中点击进行debug构建

在这里插入图片描述

3.2 调试

在编辑器中添加断点

在这里插入图片描述

进入CMake Tools插件,点击Debug按钮,开始调试

在这里插入图片描述

可以看到已经运行到断点处,因此可以继续进行调试

在这里插入图片描述

4 自定义构建调试

进入CMakeList.txt 所在的目录,编译并构建

cd CMakeLists.txt所在目录
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build

进入Debug并配置launch.json

在这里插入图片描述

选择调试器

在这里插入图片描述

生成调试配置

在这里插入图片描述

选择lldb(launch)

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "CMakeDebug", //自定义调试名称
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main.out", // 指定生成main.out的路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",  // 表示使用当前文件所在的目录作为工作目录。
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb" // 调试器 使用gdb或者lldb
        }

    ]
}

可以自定义多个调试器,分别进行调试即可
【注意】C++程序修改后需要重新进行编译cmake --build build

在这里插入图片描述

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "CMakeTestDebug2",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/CPPNote/CH00_CPP/01_Debug/02/build/main.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        },
        {
            "name": "CMakeTestDebug1",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/CPPNote/CH00_CPP/01_Debug/01/build/main.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

参考

VSCode中配置CMake,通过CMake断点调试程序 https://blog.csdn.net/ly2467513805/article/details/106864342


网站公告

今日签到

点亮在社区的每一天
去签到