Как скомпилировать файл и подключиться к процессу VSCode Go build and Attach?
Как одновременно скомпилировать файл(консольное приложение) go build и подключиться к процессу для отладки в VSCode?
Речь об отладке debugging, встроенной в расширение VSCode.
На справочной странице приводится пример отладки предварительно скомпилированного файла.
// tasks.json
"tasks": [
{
"label": "go: build (debug)",
"type": "shell",
"command": "go",
"args": [
"build",
"-gcflags=all=-N -l",
"-o",
"${workspaceFolder}/bin/__debug_hello-go.exe",
"./cmd"
],
"options": {
"cwd": "${workspaceFolder}"
}
},
...
// launch.json
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "exec",
"asRoot": true,
"console": "integratedTerminal",
"program": "${workspaceFolder}/bin/__debug_hello-go.exe",
"preLaunchTask": "go: build (debug)",
},
...
... но такая конфигурация запустит приложение во встроенном терминале.
Для отладки отдельно запущенного приложения требуется запустить *.exe и подсоединиться к процессу:
// tasks.json
...
// Обновление
"args": [
...
// Здесь ничего не пришло в голову как в конце добавить запуск
"&&",
"start",
"${workspaceFolder}/bin/__debug_hello-go.exe"
// launch.json
"configurations": [
// Конфигурация для присоединения к запущенному процессу
{
"name": "Attach to Process",
"type": "go",
"request": "attach",
"mode": "local",
"processId": "__debug_hello-go.exe",
// Вот это не работает, при этом VSCode не ругается на невалидный ключ
"preLaunchTask": "go: build (debug)",
}
Проблема:
В первом случае достаточно нажать одну кнопку
F5и "Launch Package" успешно билдит файл и запускает отладку, НО как выше упоминалось во встроенном терминале.Вариант "attach" не хочет выполнять "preLaunchTask". Т.е. если отдельно выполнить "go: build (debug)" и потом нажать
F5оно билдится, запускается и работает, но крайне неудобно выполнять несколько действий.
Как все-таки заставить "launch.json > Attach to Process" сперва выполнить "preLaunchTask > tasks.json > go: build (debug)"?