Ввод / вывод при отладке с помощью GDB в WSL - PullRequest
0 голосов
/ 24 января 2019

Я начал работать с кодом Visual Studio в Windows и хочу отладить следующий файл

main.c (находится в каталоге C: / Users / aibrakov / Projects / c ):

#include <stdio.h>

int main(void) {
    int x = 42;  // add breakpoint here
    printf("Hello World!\n");
    getchar();
    return 0;
}

По этой теме

у меня

settings.json

{
    "window.zoomLevel": 0,
    "terminal.integrated.shell.windows": "c:\\windows\\sysnative\\bash.exe"
}

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build project",
            "type": "shell",
            "command": "gcc",
            "args": [
                "-g", "main.c"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/mnt/c/Users/aibrakov/Projects/c/a.out",
            "stopAtEntry": false,
            "cwd": "/mnt/c/Users/aibrakov/Projects/c",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "pipeTransport": {
                "pipeCwd": "",
                "pipeProgram": "c:\\windows\\sysnative\\bash.exe",
                "pipeArgs": [
                    "-c"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "sourceFileMap": {
                "/mnt/c": "c:\\"
            }
        }
    ]
}

Строительный проект с Ctrl + Shift + B успешно.

Отладка вроде работает: она останавливается на точках останова и вкладка DEBUG CONSOLE доступна, но я не получаю вывод (Hello World! в моем примере), а также не могу отправить символ, которого ждет getchar.

Есть ли способ работы с терминалом, в котором запущена моя программа? Или я что-то упустил?

...