Как использовать отладчик в Visual Studio Code? - PullRequest
0 голосов
/ 06 апреля 2020

Я использую Visual Studio Code для кодирования C ++ в Ubuntu 18.04.

Я обнаружил, что для отладки я всегда должен создавать файл a.out, а затем использовать отладчик. Если я запускаю код напрямую с помощью ctrl + alt + n, то код выполняется полностью, но он не даст мне файл a.out.

Можно ли каким-либо образом автоматизировать этот процесс?

Я также заметил, что недоступна опция сборки.

Вот запуск. json file:

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "g++ - Build and debug active file",
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}/${fileBasenameNoExtension}",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ],
        "preLaunchTask": "g++ build active file",
        "miDebuggerPath": "/usr/bin/gdb"
    }
]

}

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Вы можете создать пользовательскую задачу сборки + запуска для запуска кода C ++ через отладчик.

Допустим, у нас есть пример кода:

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;

    vector<int> numbers{ 10, 20, 30 };
    for (int n : numbers)
    {
        cout << n << endl;
    }
}

Сначала убедитесь, что у вас есть Расширение Microsoft C ++ установлено.

Далее создайте пользовательскую задачу build .
Это сообщает VS Code, как компилировать ваш код.

  1. Открыть палитру команд
  2. Выбрать Задачи: настроить задачу
  3. Выбрать C / C ++: g ++: создать активный файл
    • Вы можете использовать другие компиляторы, доступные в вашей системе
  4. , которые могут создать или открыть существующий .vscode / tasks. json file
  5. Настройте его
    {
        "type": "shell",
        "label": "build-my-app",
        "command": "/usr/bin/g++",
        "args": [
            "-g",
            "-std=c++11",
            "${workspaceFolder}/path/to/test.cpp",
            "-o",
            "${workspaceFolder}/path/to/test.out"
        ],
        "options": {
            "cwd": "/usr/bin"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": "build"
    }
    
    • Установите label для уникального имени вашей пользовательской задачи
    • Установите флаги компиляции как -g, -std=xxx, -l<lib> , -I<header>
    • Установите имя выходного файла вместо a.out

Далее создайте пользовательскую задачу запуска .
Thi s сообщает VS Code, как запустить ваш код через отладчик.

  1. Открыть палитру команд
  2. Выбрать Отладка: Открыть запуск. json
  3. Это создаст или откроет существующий .vscode / launch. json file
  4. Настройте его
    {
        "name": "run-my-app",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceFolder}/path/to/test.out",
        "preLaunchTask": "build-my-app",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "lldb"
    }
    
    • Установите name для уникального имени вашего Задача запуска
    • Установить preLaunchTask для задачи сборки label, которую вы создали ранее
    • Установить program для выходного имени файла, которое вы задали в задаче сборки

Наконец, когда вы хотите запустить свое приложение, просто откройте панель «Отладка / Выполнить» и выберите задачу запуска из выпадающего меню (найдите name, установленный вами при запуске . json). Установите точки останова, затем нажмите кнопку воспроизведения.

enter image description here

enter image description here

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

0 голосов
/ 06 апреля 2020

Может быть, вам следует попробовать скомпилировать, используя флаг -g

Что-то вроде

g ++ -g file. cpp

Эта команда должна генерировать исполняемую и каталог, содержащий информацию, которую может прочитать отладчик.

Я не уверен, подходит ли это для отладчика VS, поскольку я использую gdb (отладчик gnu), но, возможно, будет работать

...