内部调试控制台不接受我的输入

时间:2019-03-27 13:02:58

标签: visual-studio-code

当我在内部调试控制台中输入输入内容(例如数字)时,我收到消息“由于进程正在运行,因此无法执行此操作”。 (输出没有问题),但是当我在launch.json中切换外部控制台(Windows控制台)时,我没有遇到任何问题。

我已经阅读了一些有关VSC中调试的记录片(例如code.visualstudio.com/Docs/editor/debugging),但与此无关。我不应该在那里输入输入吗?另外,我的输出仅在调试控制台中显示,这也正常吗?我也无法通过终端输入我的输入。即使我没有调试就开始,情况也不会改变。如果我使用扩展名“ C / C ++ Compile Run”,则将创建普通的内部终端,并且可以与之交互。

我的launch.json配置

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

我的task.json:

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

c_cpp_properties.json:

        "name": "Win32",
        "includePath": [
            "${workspaceFolder}/**"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "windowsSdkVersion": "10.0.17763.0",
        "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "msvc-x64"

1 个答案:

答案 0 :(得分:0)

据我所知,调试控制台不支持从c ++程序的控制台读取输入。通过将 true 设置为 externalConsole 属性,可以使用外部终端。

Official document表示为Node.js编程将 控制台 属性配置为 integratedTerminal 。但是对于c ++程序却没有这样的规定。

有类似的open issue用于编程。可能是vscode团队在他们的积压订单中有这个问题。