Я пытаюсь отладить в реальном времени программу на 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.