Golang: отладка приложений CLI в VSCode

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, вы ставите точку останова, дважды щелкнув слева от номера строки.

Теперь вернемся к представлению «Запуск и отладка»; просто нажмите на зеленый значок воспроизведения:

Затем отобразится небольшая панель инструментов отладки, которая позволит нам продолжить, перешагнуть, перешагнуть войти, выйти, перезапустить и остановить сеанс отладки. Мы увидим вывод в «консоли отладки». п


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE