Vscode调试笔记
Vscode配置调试文件及其参数含义的笔记,这里以Linux下的C/C++调试环境为例进行说明
一、调试文件的配置
在vscode中,通过配置launch.json文件进行调试。在侧边栏的调试(像虫子一样)中,如果没有配置就会显示如下类似的界面:

这时可以直接点击运行和调试,也可以点击**
创建 launch.json 文件**,然后会提示选择调试环境,Linux类系统选择C++(GDB/LLDB),Windows系统选择C++(Windows),选择C++(GDB/LLDB)后,会提示选择配置(若没有这一步则会直接生成一个空的launch.json),此时选择gcc - 生成和调试活动文件,就会在项目根目录的.vscode内创建launch.json和task.json共两个文件;个人理解是:
launch,json文件是用来配置目标程序调试相关的参数,task.json是用来指定某个task如何编译当前的项目。
1.launch.json内容
1 | { |
name:配置的名字,可以存在不同配置,一般是一个调试目标有一个配置(显示在调试侧边栏上下拉选择列表中);type:表明调试器的类型,使用Visual Studio Windows Debuger的时候必须是cppvsdbg;使用GDB或者LLDB时为cppdbg;request:表明是执行(launch)目标程序,还是连接(attach)已有的实例;program:表明调试的目标程序;args:执行目标参数需要的参数,格式为json列表;cwd:目标程序执行的工作目录;MIMode:表明使用的调试器,gdb或者是lldb;preLaunchTask:就是在开始调试前需要执行的任务,定义在task.json文件中,一般用来定义编译任务,生成目标程序。
2.task.json内容
1 | { |
这里其实就是执行指定
args参数的command,其作用是编译当前的活动文件。 其中label字段定义的就是一个task的名字,在launch.json中通过preLaunchTask字段指明task的名字就可以了。
type:表明task的类型;options:就是一些其他可选的设置;group:是该task的组别,可以通过命令面板执行同一个组别的多个task。
一般情况下,编译采用编译脚本进行自动编译,比如在项目根目录的build.sh采用cmake和make的方式自动编译生成目标程序,此时可以新增一个如下的task:
1 | { |
注意
type指定成了shell,如果你的脚本是可以直接执行的,那么command也可以直接写成./build.sh;此时,command也可以是任何在shell中能够使用的命令。
综上:Vscode的配置文件中,launch.json指明要调试的目标、需要的参数和工作目录;task.json中指明具体编译实现的方式。
参考文章:




