vscode调试c++配置tasks.json和launch.json文件

本文介绍了如何在Visual Studio Code (VSCode)中配置使用MingGW的g++和gdb来编译和调试C++程序。通过创建.vscode文件夹,建立task.json和launch.json文件,详细解析了这两个配置文件的作用和内容,包括编译任务的设置、调试环境的配置,以及如何在每次修改文件后自动进行编译和调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:
minguw
vscode

在vscode中配置文件,用mingw中的gcc和gdb调试c++程序

  1. 首先在项目根目录下创建.vscode文件夹

在这里插入图片描述
2. 新建一个task.json文件
建立一个shell任务,拼接命令完成.cpp文件编译,生成.exe文件

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "debug gdb",  //任务标签,用于标识这个任务
      "type": "shell",  //任务类型 process表示作为进程进程,shell表示输入命令进行 
      "command": "g++",//要执行的命令,这里是使用g++编译程序
      "args": [//命令的一些参数
        "-g",//
        "${file}",//当前文件名
        "-o",//不进行编译优化
        "${fileBasenameNoExtension}.exe"//当前不包括扩展名的文件名
      ],
      //最后拼接起来的shell命令举例 g++ -g c:\Users\muzit\Desktop\lock\LR1.cpp -o LR1.exe
      "problemMatcher": [
        "$gcc"
      ]
    }
  ]
}

label: 任务标签,用于标识
${fileBasenameNoExtension}: 当前文件的除去拓展名之后的文件名
这个配置文件的作用就是,拼接出shell命令,然后帮你执行编译任务,模拟的命令如下
在这里插入图片描述
tasks.json在一些不需要编译的环境里是必要的,但是对于python不需要编译的语言不需要这个文件也可以调试
3. 新建一个launch.json文件

{
  "version": "2.0.0",
  "configurations": [
    {
      "name": "gdb调试", // 配置名称,将会在启动配置的下拉菜单中显示 
      "type": "cppdbg", // 配置类型,这里只能为cppdbg 
      "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
      "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
      "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可  
      "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
      "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
      "environment": [],
      "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
      "MIMode": "gdb", 
      "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
      // miDebugger的路径,注意这里要与自己的MinGw的路径对应 
      "preLaunchTask": "debug gdb", // 调试会话开始前执行的任务,与tasks.json定义的任务标签相同
    }
  ]
}

这里的重点是:
preLaunchTask与tasks.json里面label相对应,因为每一次修改文件后都要重新编译,这个标签说明是在执行完debug gdb任务(重新编译)后再进行调试工作
program标签指定即将调试的exe程序,${workspaceRoot}/${fileBasenameNoExtension}.exe拼接的文件路径
cwd标签指当前工作目录
MIMode:MIDebugEngine连接到的控制台程序,这里是gdb
miDebuggerPath: 调试程序路径,这里要使用\\转义

### VSCode 中的最佳实践配置示例 #### 配置 `tasks.json` `launch.json` 为了确保开发环境高效运行,合理配置 `tasks.json` `launch.json` 文件至关重要。这些文件位于 `.vscode` 文件夹下。 #### 任务配置 (`tasks.json`) 任务配置允许定义构建命令或其他可执行的任务。下面是一个典型的 C++ 编译任务配置[^1]: ```json { "version": "2.0.0", "tasks": [ { "label": "build hello world", "type": "shell", "command": "g++", "args": [ "-g", "${workspaceFolder}/hello.cpp", "-o", "${workspaceFolder}/bin/hello" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task for g++ compilation." } ] } ``` 此配置用于编译一个简单的 C++ 程序,并将输出放置在项目的 bin 目录中。 #### 调试配置 (`launch.json`) 调试配置使开发者能够设置断点并逐步执行代码。对于上述的 C++ 应用程序,对应的调试配置如下所示: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/bin/hello", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build hello world", "miDebuggerPath": "/usr/bin/gdb", "logging": { "trace": true, "traceResponse": true, "engineLogging": true } } ] } ``` 这段 JSON 定义了一个名为 `(gdb) Launch` 的调试会话,它会在启动前自动调用之前提到的构建任务来重新编译项目。 通过这种方式,可以创建适合特定编程语言技术栈的工作流自动化脚本以及强大的调试体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值