Как читать консольный ввод из VScode при живой отладке - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь отладить в реальном времени программу на C, которая, используя расширение C / C ++ из VScode, также позволяет мне записывать прямой ввод в консоль с помощью scanf (). Однако, когда я отлаживаю код, он открывает консоль отладки, которая не позволяет мне вводить какие-либо данные.

Я нашел две темы, в которых люди ответили на эту проблему:

https://github.com/OmniSharp/omnisharp-vscode/issues/1053

Окно консоли отладки не может принять ввод Console.ReadLine () во время отладки

Оба советуют установить для свойства "console" в файле launch.json значение "externalTerminal" или "integratedTerminal". Однако я не смог найти свойство или создать его в этом отношении, потому что он не существует в моем файле.

У меня есть свойство "externalConsole", которое может быть установлено в true или false. Но оба варианта открывают консоль отладки, как и раньше.

Файл launch.json:

 {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/mnt/c/Users/David/Documents/code/puc-rio/inf1010/lab8/teste.out",
            "args": [],
            "stopAtEntry": true,
            "cwd": "/mnt/c/Users/David/Documents/code/puc-rio/inf1010/lab8/",
            "environment": [],
            "externalConsole": true,
            "windows": {
                "MIMode": "gdb",
                "miDebuggerPath": "/usr/bin/gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            },
            "pipeTransport": {
                "pipeCwd": "",
                "pipeProgram": "c:\\windows\\sysnative\\bash.exe",
                "pipeArgs": [
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "sourceFileMap": {
                "/mnt/c": "${env:systemdrive}/",
                "/usr": "C:\\Users\\David\\AppData\\Local\\Packages\\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\\LocalState\\rootfs\\usr"
            }
        }
    ]

Что происходит, когда я пытаюсь что-то записать на консоль отладки:

Unable to perform this action because the process is running.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...