vs code中如何强制捕获输出到调试控制台?

STooon
  • 22

vs code调试c++的输出结果会在一个新的终端中输出,而不是被vs code捕获。
工作区
调试终端
请问更改什么设置可以让vs code捕获输出结果到调试控制台?
查阅了官方文档,但是并没有提及。

vs code /c++插件文档

环境

  • ubuntu 14.04-64

  • gcc-4.8.4

  • gdb-7.7.1

以下为launch.json和tasks.json。

launch.json

{
"version": "0.2.0",
"configurations": [
    {
        "name": "C++ Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceRoot}/a.out",
        "args": [],
        "stopAtEntry": true,
        "cwd": "${workspaceRoot}",
        "environment": [],
        "preLaunchTask": "g++",
        "externalConsole": true,
        "linux": {
            "MIMode": "gdb"
        },
        "osx": {
            "MIMode": "lldb"
        },
        "windows": {
            "MIMode": "gdb"
        }
    },
    {
        "name": "C++ Attach",
        "type": "cppdbg",
        "request": "attach",
        "program": "${workspaceRoot}/a.out",
        "processId": "${command.pickProcess}",
        "preLaunchTask": "g++",
        "linux": {
            "MIMode": "gdb"
        },
        "osx": {
            "MIMode": "lldb"
        },
        "windows": {
            "MIMode": "gdb"
        }
    }
]
}

tasks.json

{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "g++",
"isShellCommand": true,
"showOutput": "always",
"args": ["-g", "main.cpp"],
"problemMatcher": {
    "owner": "cpp",
    "fileLocation": ["relative", "${workspaceRoot}"],
    "pattern": {
        "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
        "file": 1,
        "line": 2,
        "column": 3,
        "severity": 4,
        "message": 5
    }
}
}
回复
阅读 16k
1 个回答

如果没猜错是这个的问题

    "externalConsole": true
你知道吗?

宣传栏