Отладка с помощью функции Delve: execute - PullRequest
0 голосов
/ 07 ноября 2018

Я устанавливаю точку останова в своем коде Go с помощью runtime.Breakpoint(), сохраняю файл (мой редактор, Atom с go-plus установлен , запускает go install . при сохранении). Затем я запускаю Delve в терминале с dlv debug и набираю continue после его запуска.

Когда срабатывает точка останова, я хочу протестировать несколько вещей (в основном, для печати данных читателя через bytes.Buffer). Но я получаю следующую ошибку

buf := new(bytes.Buffer): "1:5: expected 'EOF', found ':='"

и вообще не может сделать намного больше, чем печатные значения.

Неужели нельзя делать такие вещи? Я привык к Python pdb, где установка переменных или вызов функций не является проблемой, и я ожидаю, что Delve способен на то же самое.

Итак, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 09 августа 2019

Delve работает нормально для отладки в Go сейчас -

Найдите шаги для интеграции в код Visual Studio -

1. Выполните эту команду, чтобы получить библиотеку -> go get -u github.com/go-delve/delve/cmd/dlv

  1. найдите файл launch.json и вставьте нижеприведенный json -

    {
    
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "remotePath": "",
            "port": 3010,
            "host":"127.0.0.1",
            "mode": "auto",
            "program": "${workspaceFolder}",
            "env": {},
            "args": [],
            "showLog": true
        }
    ]
    }
    
  2. Установите точку останова в своем коде и запустите отладчик.
0 голосов
/ 29 ноября 2018

Пока невозможно. В данный момент (2018-NOV) работа в процессе в Delve, но незавершенная.

Время выполнения Go было недавно изменено , чтобы разрешить этот тип вызова. У Delve Github проблема , отслеживающая развитие этой функции, но все еще экспериментальная и неполная.

...