Golang: отладка приложений CLI в VSCode
15 июня 2023 г.VSCode, также известный как Visual Studio Code, — универсальный и многофункциональный редактор кода, завоевавший сердца разработчиков. Мировой. Благодаря чистому и интуитивно понятному интерфейсу он обеспечивает восхитительный опыт кодирования, что делает его лучшим выбором как для профессионалов, так и для энтузиастов.
В моей предыдущей статье мы видели как настроить полезные пользовательские сниппеты. Теперь я хочу изучить его возможности отладки.
В этой короткой статье мы увидим, как отлаживать приложение CLI, написанное на Голанг.
Пример интерфейса командной строки
Вот наше очень простое приложение, которое принимает аргументы командной строки:
cmd/main.go
package main
import (
"fmt"
"os"
"github.com/jessevdk/go-flags"
)
var opts struct {
Name string `short:"n" long:"name" description:"name" required:"true"`
Age int `short:"a" long:"age" description:"age" required:"true"`
Email string `short:"e" long:"email" description:"email" required:"true"`
}
func run(args []string) {
flags.ParseArgs(&opts, args)
fmt.Printf("opts.Name: %vn", opts.Name)
fmt.Printf("opts.Age: %vn", opts.Age)
fmt.Printf("opts.Email: %vn", opts.Email)
}
func main() {
run(os.Args)
}
Еще раз, как я сделал в этой статье о Golang, Kafka и MongoDB для обработки данных в реальном времени, я использую github.com/jessevdk/go-flags вместо основного пакета flag, поскольку он имеет ряд преимуществ.
Чтобы запустить его, мы делаем:
$ go run cmd/main.go --name Tiago --age 39 --email tiago@email.com
Name: Tiago
Age: 39
Email: tiago@email.com
Хороший. Конечно, в этом простом приложении мы не делаем ничего полезного. Но что, если у нас есть сложное приложение CLI и его нужно отладить?
Отладка
В VSCode нажмите "Выполнить и отладить", а затем "создайте файл launch.json":
Далее выберите вариант "Перейти: Запустить пакет" и нажмите Enter:
n Затем заменим образец 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": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "cmd/main.go",
"args": [
"--name",
"Tiago",
"--age",
"39",
"--email",
"tiago@email.com"
]
}
]
}
н
- program — это путь к файлу, содержащему функцию `main` .
- args – это массив строк, в который вы передаете нужные аргументы командной строки.
Когда вы сохраните его, представление «Выполнение и отладка» будет выглядеть следующим образом:
n Теперь давайте вернемся к нашему файлу `cmd/main.go` и поместим точка останова:
n Аналогично другим IDE, вы ставите точку останова, дважды щелкнув слева от номера строки.
Теперь вернемся к представлению «Запуск и отладка»; просто нажмите на зеленый значок воспроизведения:
Затем отобразится небольшая панель инструментов отладки, которая позволит нам продолжить, перешагнуть, перешагнуть войти, выйти, перезапустить и остановить сеанс отладки. Мы увидим вывод в «консоли отладки». п
Оригинал