#c #visual-studio-code
Вопрос:
Я пытаюсь отладить C в коде Visual Studio, но здесь что-то не так. Состояние отладки продолжает прокручиваться, но консоль не отображается. Если я остановлю отладку (shift F5), я не смогу выполнить отладку снова. Щелкните ли по зеленому треугольнику или по F5, ничего не произойдет. Отладочный снимок экрана
Здание в порядке. Это просто проблема с отладкой.
MinGW был добавлен в PATH. Я могу использовать g или gdb в CMD.
Мое окружение:
- Операционная система: Windows10 1803
- Код Visual Studio: 1.24.0
- Расширение C/C : 0.17.4
- MinGW_w64: x86_64-8.1.0-релиз-posix-seh-rt_v6-rev0
Вот мои настройки:
c_cpp_properties.json:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"C:/MinGW/include",
"C:/MinGW/x86_64-w64-mingw32/include",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c ",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c /backward",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c /tr1",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c /x86_64-w64-mingw32",
"${workspaceFolder}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"compilerPath": "C:/MinGW/bin/gcc.exe",
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"C:/MinGW/include",
"C:/MinGW/x86_64-w64-mingw32/include",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c ",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c /backward",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c /tr1",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c /x86_64-w64-mingw32",
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c 17"
}
],
"version": 4
}
запуск.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"preLaunchTask": "build",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/MinGW/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}]
}
задачи.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"windows": {
"command": "g ",
"args": [
"-g",
""${file}"",
"--std=c 11",
"-o",
""${fileDirname}\${fileBasenameNoExtension}.exe""
]
}
}
]
}
настройки.json
{
"files.associations": {
"iostream": "cpp",
"ostream": "cpp",
"cmath": "cpp",
"array": "cpp",
"chrono": "cpp",
"functional": "cpp",
"ratio": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"future": "cpp",
"streambuf": "cpp",
"sstream": "cpp",
"initializer_list": "cpp",
"valarray": "cpp"
}
}
Комментарии:
1. Ваш путь к компилятору должен быть
"compilerPath": "C:/MinGW/bin/g .exe"
в файле c_cpp_properties.json2. @HeheBoi Спасибо. Но все равно не получается.
3. Я застрял на этой проблеме примерно на 2 дня, и этот вопрос сработал для меня. Спасибо, что поделились этим
Ответ №1:
Я обнаружил, что это проблема с кодированием, и я решил ее сам.
Во-первых, попробуйте войти в gdb, чтобы выяснить, не возникает ли у вас та же проблема.
Включите "logging": { "engineLogging": true }
, и если вы увидите что-то вроде
1: (1992) ->amp;"3572732771001-gdb-set target-async onn"
1: (1993) ->amp;"Undefined command: "357". Try "help".n"
1: (1993) ->^error,msg="Undefined command: "357". Try "help"."
Тогда у вас та же проблема.
Чтобы исправить это, вам необходимо отключить Unicode UTF-8 для поддержки языков по всему миру, которая является бета-версией с Windows10 1803 и отключена по умолчанию.
Он находится на панели управления — Часы и регион — Регион — Административная система изменения местоположения (требуется авторизация администратора) — Бета — версия: Используйте Unicode UTF-8 для поддержки языков по всему миру (требуется перезагрузка системы).
Перейдите к вопросу, почему vscode просто зависает там, когда начинается отладка с gdb.exe? на GitHub для получения более подробной информации.
Комментарии:
1. Привет, где ты работаешь
"logging": { "engineLogging": true }
? Я получаю неизвестный параметр конфигурации