VSCode 调试

调试环境

  • 系统:Windows10
  • 开发语言:C
  • 编译工具: Qt - mingw730_32

使用步骤

  1. 配置Qt的 mingw730_32/bin到环境变量path中, 如果不使用Qt要先安装Mingw
  2. 安装C/C++扩展插件
  3. 编写调试例子,并打测试断点
  4. F5启动调试器
  5. 首次选择环境 C++ (GDB/LLDB)

  1. 首次选择配置 gcc.exe - 生成和调试活动文件,这里注意要打开待调试的C文件,否则不会出现对应的配置选择,这就是活动文件的深意,其次环境变量也一定要配好。

  1. 所有操作完成后会跳到调试界面的断点上,调试窗口可实时查看变量值,调试操作可通过快捷键或右上角工具条完成。

  1. 至此完毕。

配置分析

上述几个步骤会在当前路径下生成了一个.vscode文件夹,其中包括调试配置文件launch.json、编译任务文件tasks.json。配置项通过preLaunchTask属性链接任务的label

launch.json

属性 描述
name 启动配置菜单名
program 调试对象,${fileBasenameNoExtension} 活动文件名
miDebuggerPath 调试器路径
preLaunchTask 调试前调用的任务label

tasks.json

属性 描述
type 任务类型,"cppbuild","shell"
label 任务标签,与preLaunchTask值相同则被调用
command 编译命令,"${file}"活动文件
args 编译参数

含多个源文件

配置调试活动文件适用于单源文件程序,顾名思义就是一个.cpp构成一个应用程序,相同目录下的各cpp相互独立,这样上述步骤生成的配置文件就适用该目录下的所有程序。

test
    \.vscode
    \main1.c
    \main2.c
    \main3.c
    ...

但如果需要调试一个工程即多源文件程序时要怎么进行呢?例如:

test
    \.vscode
    \function1.c
    \function2.c
    \main.c

这个时候在 tasks.json 文件的 args 属性值中,将"${file}"改为"${fileDirname}\\*.c"就可以了。若是复杂工程可以编写Makefile来设定编译规则,使用make进行编译,只要编译时指定-g 选项同样也可以实现调试。

使用 Makefile

编写Makefile,注意编译规则要加上-g选项。

out ?= a.out
all:
	gcc -g *.c -o $(out)

tasks.json文件的"tasks"属性数组值中添加一项任务。

{
    "type": "shell",
    "label": "C/C++: make.exe 生成活动文件",
    "command": "mingw32-make.exe",
    "args": [
        "out=${fileDirname}\\${fileBasenameNoExtension}.exe"
    ]
},

修改launch.json中的任务调用。

// "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
"preLaunchTask": "C/C++: make.exe 生成活动文件"
  1. 快捷键F5启动生成和调试。
posted @ 2021-03-06 16:34  派大海星  阅读(756)  评论(0编辑  收藏  举报