配置launch.json,task.json和settings.json以在git bash作为默认终端的VS Code中进行调试?

时间:2020-07-07 12:11:14

标签: visual-studio-code vscode-settings git-bash vscode-debugger vscode-tasks

我正在尝试在VSCode中配置调试器<​​/ strong>

我浏览了official documentation,为C / C ++设置了VSCode调试器,但是它不起作用。

文档说明了设置vscode 调试器的步骤 在Windows中 powershell

但是我试图在Windows中使用 git bash 作为默认的集成终端设置调试器

我已经添加了 git bash 作为默认终端,但是我无法使用git bash作为集成的 terminal 来设置 debugger

默认配置文件

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

属性

"externalConsole": false

设置为 false ,因为我希望VSCode使用集成的默认bash终端而不是使用外部终端进行调试。

tasks.json

{
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: g++.exe build active file",
            "command": "C:\\MinGW\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ],
    "version": "2.0.0"
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\MinGW\\bin\\gcc.exe",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "clang-x86"
        }
    ],
    "version": 4
}

settings.json

{
    "files.associations": {
        "iostream": "cpp"
    },
    "C_Cpp.errorSquiggles": "Disabled"
}

使用上述配置,开始调试时会出现以下错误:

enter image description here

tasks.json 中的 command 属性似乎不正确, 当bash转换时

C:\ MinGW \ bin \ g ++。exe ”->“ C:MinGWbing ++。exe

并给出 错误:“未找到命令 ”,因为bash中的反斜杠('\')是转义字符。 / p>

现在将 tasks.json 中的路径更改为bash样式:

"command": "C:/MinGW/bin/g++.exe"

解决了上述错误,但是现在它为变量${file}给出了相同的错误,因为此路径变量被动态设置为当前打开的文件 .cpp

enter image description here

最近几天,我一直在解决此调试问题,但尚未找到任何解决方法。

如何通过配置文件 更改/更新,以在 的VSCode中使用 git bash作为默认集成终端调试

1 个答案:

答案 0 :(得分:0)

由于bash转换,tasks.json中的command属性似乎不正确

"C:\MinGW\bin\g++.exe" -> "C:MinGWbing++.exe"

然后尝试一条类似Cygwin的路径:

/c/MingW/bin/g++.exe
# or
/C/MingW/bin/g++.exe

然后检查git bash会话是否正确解释了它。