环境:
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: 调试程序路径,这里要使用\\转义

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 3 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐