vscode中有两个文件,分别是task.json
和launch.json
,点击调试的齿轮自动生成。
其中,task.json
主要是用来处理编译相关的问题。如果进行了该文件的编写,可以通过build按钮直接进行编译。但是在大工程中其实cmake+make对应文件比较方便,单文件可以考虑参考我之前的一片博客 关于在Ubuntu16.04系统下VsCode中配置cmake运行多文件C++的心得。
cmake是根据CmakeLists.txt
写的内容,自动生成makefile;
再通过make命令根据makefile生成可执行文件。
launch.json
则主要是配置GDB调试的,本文主要讲解launch.json
相关的一些内容
。
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++-9 - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/test/lru_replacer_test",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
//"console": "externalTerminal",
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
//"preLaunchTask": "C/C++: g++-9 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
首先需要明确,
program
对应编译完成后的生成的可执行文件,也就是我们准备待调试的可执行文件。${workspaceFolder}
指vscode的当前文件夹。//"preLaunchTask": "C/C++: g++-9 生成活动文件",
这行只有在用task.json
配置进行编译时才用,如果用命令行make则不需要。
然后就可以愉快的调试了~