Отладка C с использованием кода Visual Studio в Windows - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь отладить программу на C, используя Visual Studio Code для Windows 10, в которой установлено расширение C / C ++ .

Моя проблема заключается в том, что при созданииSource.c в моей рабочей области (E:\Docs\c), напишите некоторый код, затем нажмите F5 , он показывает сообщение об ошибке launch: program 'E:\Docs\c\a.exe' does not exist, что означает, что VSCode не выполняет компиляцию.

Между тем, когда я иду к консоли и набираю gcc source.c, который создает a.exe в той же папке, и снова нажимаю F5 , он запускается без проблем, но при этом каждый раз, когда я хочу запуститькод раздражает.

Итак, есть ли способ скомпилировать код из VSCode?

Вот мой c_cpp_properties.json:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}",
                "C:\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\lib\\gcc\\i686-w64-mingw32\\8.1.0\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

И это launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

1 Ответ

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

Я думаю, что вы должны добавить предварительно запущенную задачу с меткой вашей задачи сборки в launch.json следующим образом:

"preLaunchTask": "build" // label of your build task

Это означает, что вы должны иметь в своем task.json следующую задачус меткой build например

    "tasks": [
    {
        "label": "build",
        "type": "shell",
        "command": "gcc -g source.c"
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]

Также для включения отладки важен флаг "-g"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...