在 VS Code 中调试 C++ 项目
选择调试器环境
从预定义的调试配置中进行选择,生成预定义launch.json文件,可能是空模板
{
// 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": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
//设置为活动文件夹和活动文件名
// "program": "${workspaceFolder}/leetcode100/06矩阵/a.out",
"program": "${fileDirname}/${fileBasenameNoExtension}",
//启动程序时传递给程序的命令行参数数组
"args": [],
//默认不会添加任何断点,如果希望调试器在开始调试时停止在main方法,将stopAtEntry设置为true
"stopAtEntry": true,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
//指示调试器将连接到gdb或lldb
"MIMode": "gdb",
//调试器的路径,如果没有指定,将在计算机路径变量中搜索调试器,取决于MIMODE
"miDebuggerPath": "/usr/bin/gdb",
//指定要传递给调试器的附加参数
"miDebuggerArgs": "",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
举例
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<string> msg {"hello", "world", "from", "vs code"};
for (const string& word : msg) {
cout << word << " ";
}
cout << endl;
}
(base) daichang@daichang:~/Desktop/Algorithm-training/gdb$ g++ helloworld.cc -o helloworld
开始调试,使用键盘快捷键F5
在Debug Console 显示调试器已启动并正在运行的输出,在最后一个cout语句完成之前,调试控制台不会出现任何输出。因为需要换行符来刷新缓冲区
可以使用变量缓冲区中的set alue来修改变量值等