文章目錄
- 1 安裝C++與CMake插件
- 2 配置CMakeLists.txt
- 3 使用CMake編譯調試
- 3.1 編譯
- 3.2 調試
- 4 自定義構建調試
- 參考
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