Visual Studio Code - C ++ отладчик не запускается - PullRequest
0 голосов
/ 01 ноября 2018

Я уже некоторое время использую код Visual Studio для отладки C ++ в Linux.

В примере проекта у меня есть следующее launch.json:

{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "${workspaceFolder}/main",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": true,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}

Я успешно скомпилировал и запустил main.c, поэтому отладка должна работать нормально.

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

Глядя на ps aux Я вижу два новых процесса:

  1. mono.linux-x86_640 с помощью команды /home/guyyst/.vscode/extensions/ms-vscode.cpptools-0.20.1/debugAdapters/mono.linux-x86_64 --config /home/guyyst/.vscode/extensions/ms-vscode.cpptools-0.20.1/debugAdapters/framework/config.linux /home/guyyst/.vscode/extensions/ms-vscode.cpptools-0.20.1/debugAdapters/bin/OpenDebugAD7.exe

  2. bash с помощью команды bash /home/guyyst/.vscode/extensions/ms-vscode.cpptools-0.20.1/debugAdapters/OpenDebugAD7

Отладка на моем ноутбуке порождает те же процессы, но они исчезают, когда фактически начинается отладка. Два процесса на моем ПК остаются неизменными даже после закрытия VSCode. Когда я впервые заметил это, у меня было более 15 копий, запущенных с предыдущих попыток.

Вчера все работало нормально, и я не помню, чтобы с тех пор я вносил изменения в свою конфигурацию.

Я несколько раз пытался переустановить VSCode через AUR-версию visual-studio-code-bin или пакет с открытым исходным кодом code.

Отладка некоторого кода Python работала просто отлично.

1 Ответ

0 голосов
/ 02 ноября 2018

Оказывается, это было так же просто, как установить externalConsole в launch.json на false. Наверное, следовало бы подумать об этом раньше.

Я ограничен консолью VSCode, что не так уж и важно.

Я до сих пор не могу объяснить, почему он не будет работать с внешней консолью, поскольку именно так я до сих пор делаю это на своем ноутбуке, и я тоже делал это на своем ПК.

...