Debug de aplicações Go com o Goland e VSCode
Essa é uma dica rápida mas que pode ser útil para mais pessoas. Recentemente precisei fazer debug de uma aplicação CLI que estou desenvolvendo e foi necessário algumas configurações nas IDEs que uso para fazer esse processo. Como dediquei mais de 30 minutos para aprender isso espero que este post econimize algum tempo de alguém ;)
Goland
O primeiro exemplo é como configurar o debug na IDE da Jetbrains.
Primeiro precisamos fazer o build
da aplicação usando alguns parâmetros extras. Para os exemplos vou usar
go build -o bin/sorteador -gcflags='-N -l' main.go
É preciso executar o programa via dlv
. Dado o comando que seria executado da seguinte forma:
./bin/sorteador -num 10 -file participantes.csv
Deve ser executado assim:
dlv --listen=:2345 --headless=true --api-version=2 exec ./bin/sorteador -- -num 10 -file participantes.csv
No Goland, basta ir em Run
→ Debug
. Clicar em Edit configurations
. Clicar no +
e escolher Go Remote
:
Ao clicar em Debug
o código vai parar no breakpoint
que foi definido ao clicar na linha esperada. Exemplo:
As próximas vezes basta clicar em Run
-> Debug 'Debug using dlv'
VSCode
No VSCode é preciso clicar em Executar
→ Abrir as Configurações
ou Adicionar Configuração
caso você não tenha nenhuma já criada. Criar/alterar o launch.json
com o seguinte código:
{
"version": "0.2.0",
"configurations": [
{
"name": "Connect to server",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "main.go",
"args": [
"-num",
"10",
"-file",
"participantes.csv"
]
}
]
}
Basta salvar o arquivo e clicar em Executar
-> Iniciar a depuração
. A execução vai parar no breakpoint definido no código:
Espero que essa dica simples ajude a usar este recurso tão útil.
P.S.: Obrigado Leo Cavalcante pela ajuda na configuração do VSCode.