Простая отладка GDB C ++ в VS Code завершается с NullReferenceException - PullRequest
0 голосов
/ 25 декабря 2018

Мой источник file.cpp:

#include <iostream>
using namespace std;
int main()
{
    int x = 1;
    int y = 2;
    cout << x + y << endl;
    return 0;
}

Я компилирую его, используя g++ -g file.cpp, и тогда мой launch.json файл выглядит так:

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

Моя структура каталогов:

- workspaceFolder
  - .vscode
    - launch.json
  - a.out
  - file.cpp

Когда я нажимаю зеленую стрелку «Начать отладку» на вкладке «Отладка», я получаю эту ошибку в консоли отладки:

Stopping due to fatal error: NullReferenceException: Object reference not set to an instance of an object

Что я делаю неправильно?Я посмотрел на каждый учебник, и отладка C ++, кажется, работает для всех из них, за исключением моего случая.У меня также установлено расширение C / C ++ (Microsoft), и я использую Ubuntu 64-bit.

1 Ответ

0 голосов
/ 25 декабря 2018

У меня была та же проблема, не знаю почему, но установка "externalConsole" в launch.json на false сделала свое дело.

Эта проблема была сообщена в Microsoft / vscode-cpptools 15 дней назад, начиная с v1.30.0, и должен быть исправлен в последней сборке инсайдеров.

...