1 新建文件夹Test,新建文件hello.c

2 用vscode打开Test文件夹

#include <stdio.h>
int main()
{
    printf("Hello World!\n");
    return 0;
}

3 用tasks.json决定编译器

   点击运行和调试,选择c++(GDB/LLDB),选择gcc编译器,会出现tasks.json

4 点击左侧的运行和调试,或右侧的运行c/c++文件,控制台有打印"Hello World!"

5 点击右边的调试c/c++文件,此时是没有配置的,调试时控制台看不到打印输出,调试完才有

6 我们可以增加配置,在刚才“没有配置”的调试过程中,增加一个配置,出现了launch.json

7 修改配置launch.json

(1)增加配置,gdb启动

(2)修改name为"chuan"

  (3) 修改program为期望调试的程序

(4)修改externalConsole为true

  (5)修改gdb路径为mingw里的gdb路径

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "chuan",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/hello.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}

7每次修改代码后,点右边三角形运行然后立刻退出运行(重新编译生成可执行文件),点左边的三角形"chuan"开始调试。

或者,在launch.json里,加入"preLaunchTask":"C/C++: gcc.exe 生成活动文件"

那点击"chuan"的三角形开始调试前,先运行编译的任务。

下面给出一个完整的例子

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "chuan",
            "type": "cppdbg",
            "request": "launch",
            //"program": "${workspaceFolder}/dp/CutRod.exe",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask":"C/C++: gcc.exe 生成活动文件"//和tasks.json中的label一致,以后修改代码,点击chuan三角形调试前会先编译
        }

    ]
}
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 生成活动文件",
            "command": "D:\\MinGW\\bin\\gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-fexec-charset=gbk", //源字符集是utf-8,执行字符集是gbk,调试时在弹出的窗口可以正确运行
                "-Wall", "-Wextra", "-Wconversion", "-Wsign-conversion", "-Wsign-compare", "-Woverflow"//告警
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

最终效果,改了代码,直接点击chuan旁边的三角形,可以看到打印变了

跟vs差不多了

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐