Не удается отладить в VSCode с GDB - PullRequest
0 голосов
/ 11 июня 2019

Я использовал vscode и gdb (mingw) для отладки cpp в Windows.Но однажды это не работает, до сих пор.

Мой предыдущий рабочий процесс: кодирование -> установка точки останова -> сборка -> запуск отладки -> отладка шаг за шагом, но теперь, когда я запускаю отладку, он зависает.

После того, как я нажму Отладка-> Начать отладку, preLaunchTask запускается нормально.Файл .exe генерируется, и он работает надлежащим образом, если он запускается вне vscode.Затем начинается процедура запуска, и терминал открыт, в верхней части отображается поплавок, и в терминале выполняется команда.

Но проект не запускается и не блокируется на моей точке останова и, конечно, не выдает мой вывод.Я получил термалин с командой, которая никогда ничего не выводит и никогда не получает никакого ввода, кроме ctrl-c,

ying@DESKTOP-5GV0Q9R MINGW64 /d/project/leetcode (master)$ 
env c:\\Users\\ying\\.vscode\\extensions\\ms-vscode.cpptools-0.23.1\\debugAdapters\\bin\\WindowsDebugLauncher.exe 
--stdin=Microsoft-MIEngine-In-hm3amha1.us3 
--stdout=Microsoft-MIEngine-Out-vlas2vht.meb 
--stderr=Mi crosoft-MIEngine-Error-c1e3oyr5.kel 
--pid=Microsoft-MIEngine-Pid-ij4mrymv.zxl 
--dbgExe=C:\\mingw-w64\\x86_64\\mingw64\\bin\\gdb.exe 
--interpreter=mi


плавающая панель с тремя серыми кнопками, и что-то летит слева направо вечно,

Когда я пытаюсь использовать ctrl-c для остановки программы, VSCode выдает следующее предупреждение:

Undefined command "". Try "help".

Я думаю, что .exe не передается в gdb, но не знаю какчтобы знать, что на самом деле произошло.

Я использую:

  • windows10 1903 18362.145
  • vscode 1.35.0 (обновление сегодня, но это происходит за несколько недель до этого)
  • gdb8.1 (mingw-w64 x86_64-posix-seh-rev0)

Вот мой файл launch.json.Большинство копий из https://code.visualstudio.com/docs/cpp/config-mingw#_configure-debug-settings

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

Попытка конвертировать externalConsole из false в true не решает эту проблему, и консоль не отображается так, как я хочу.Я использую helloworld.cpp по умолчанию и точку останова в строке cout.Это не может быть ошибкой кода.Но для всего моего кода отладка ведет себя одинаково.

Пожалуйста, укажите причину и / или решение моего случая, или где я могу найти его самостоятельно.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 05 июля 2019

У меня была точно такая же проблема, как и у вас, тот же вывод и та же производительность.Я случайно набрал «help» в этой консоли, и вывод был искажен.Таким образом, я понял, что с моей системной кодировкой что-то не так, поскольку я просто изменил некоторые настройки на ней раньше.Теперь отладка vscode работает для меня после того, как я перенастроил эти настройки.

Кажется, вы китайцы по своему идентификатору, так что я думаю, вы можете прочитать изображение ниже.Я могу перевести это для вас, если вы спросите, в любом случае. установка

...