Как отлаживать в VS Code: Windows 10 и MinGW - PullRequest
2 голосов
/ 31 марта 2020

Я пытаюсь приблизиться к VS Code, у меня есть Windows и Ubuntu на ВМ, но я бы предпочел отлаживать на windows.

Мой учитель сказал нам использовать MinGW и я использую его для кодирования / компиляции без проблем, я уже установил переменные среды Win. Я новичок в мире отладки и, может быть, трудно начать с VS Code, я не знаю. Я пытаюсь следовать многим урокам и не знаю, правильно ли я это делаю. Я должен сказать, что я использую Makefile вместо компиляции в VS Code, я не знаю, есть ли разница. Вот мой стандартный Makefile:

all: Prog.exe

Prog.exe: main.o
    g++ main.o -o Prog.exe

main.o: main.cpp
    g++ -c -g -Iinclude main.cpp

.PHONY: clean
clean:
    rm -rf *.o *.exe

1) Я только знаю, что параметр "-g" включает в себя отладочную информацию, этого достаточно для процесса компиляции для отладки?

2 ) Я следую учебным пособиям по VS Code, чтобы настроить запуск. json file, и я думаю, что все делаю правильно:

launch. json:

{
    // 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": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "I:/Documenti/.../Prove debug/Prog.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Abilita la riformattazione per gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

Я обнаружил, что на сайте VS Code:

  • задачи. json (инструкции по сборке)
  • запуск. json (настройки отладчика)
  • c_cpp_properties. json (путь к компилятору и настройки IntelliSense)

3) Так что мне нужен только запуск. json? Если у меня нет файла. json, он просит меня выбрать между различными конфигурациями:

Конфигурация среды

Environment Config

4) только кажется, что работает второй, но он пропускает точки останова и он бесполезен ... Могу ли я использовать "GDB" на windows? Если я пытаюсь использовать GDB, после установки всех запусков. json я получаю эту ошибку:

Ошибка GDB

GDB error

5 ) Я бы предпочел отлаживать на windows с MinGW, это возможно?

РЕДАКТИРОВАТЬ: Я решил, проблемы были 2 больших (a, b) и 1 маленький (c);
a. каталог "program";
b. каталог gdb / compiler;
c. файл задачи. json, который не нужен, если вы компилируете с помощью make-файла (или вручную с помощью терминала).

a: я заменил "${fileDirname}\\${fileBasenameNoExtension}.exe" на полный каталог моей программы;

b: у меня есть 2 разных каталога MinGW (так что 2 каталога gdb):
- один, который я установил вручную (в C:);
- другой, который я установил внутри Qt (внутри F:);
, когда VS Code автоматически генерирует "launch. json", он устанавливает мне "miDebuggerPath" (путь gdb) для gdb, установленного с Qt (возможно, для порядка в путях среды Win10) и I ' мы всегда меняли его на другой каталог ... Вероятно, если я хочу изменить каталог, я должен установить его в большем количестве файлов, и произошла ошибка 2 разных каталогов GDB. Я оставил каталог automati c (внутри Qt, в F :);

c: у меня была ошибка задачи из-за отладки, которая уже работала, поэтому я понял, что было два разных действия. Я решил удалить всю строку "preLaunchTask": "g++.exe build active file" и удалить файл "task.json".

1 Ответ

1 голос
/ 04 апреля 2020

1) Да. переключатель -g - это все, что вам нужно. Просто чтобы прояснить, я компилирую свою программу как

gcc -g prog.c

2) Установите параметры "externalConsole" как "true". По некоторым причинам, это не работает, когда это ложно. В остальном все в порядке.

3) Я могу отладить очень хорошо только с файлом launch.json и ничего больше

4) Второй вариант C++ (Windows) предназначен для Windows C Компилятор / C ++, который можно установить с помощью инструментов MSBuild вместе с Visual Studio и использовать компилятор cl.exe вместо gcc / g ++. Если вы хотите попробовать компилятор Windows, вам нужно скомпилировать с помощью ключа -Zi (так же, как -g в gcc / g ++), и ваша команда компиляции будет

cl -Zi path\to\prog.cpp -o a.exe

Но, конечно, , если вы используете MinGW / gcc / g ++, вам это не нужно.

Не могу сказать точно, но ваша ошибка выглядит так, как будто вы неверно указали путь к программе. Внесите соответствующие изменения в "program" в вашем запуске. json файл только для справки, мой program путь имеет значение

        "program": "${workspaceFolder}/a.exe",

Здесь этот a.exe расположен в root репозиторий / рабочая область VS Code

5) Ну, я могу отлаживать в windows с MinGW просто отлично, так что это должно быть возможно.

...