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