Um momento
Aula 10
Cursos / Golang: Ambiente e Ferramentas de Desenvolvimento da Linguagem Go
Como Mudar o Valor de Variaveis no Debug de Golang no Visual Studio Code e Comando dlv

Summary

# Resumo do Transcript sobre Depuração em Go

Antônio discutiu a possibilidade de alterar o conteúdo de variáveis durante a depuração em Go, comparando com o Java. Ele demonstrou como realizar essa tarefa no Visual Studio Code e através da linha de comando usando o DLV (Go Debugger).

## Demonstração no Visual Studio Code

1. **Configuração Inicial:**
   - O arquivo `main.go` é utilizado, contendo uma variável global chamada `nome` que é atribuída a partir de uma função.
   
2. **Adicionando um Breakpoint:**
   - Um breakpoint é configurado na linha 13 para parar a execução do código.
   
3. **Mudando o Valor da Variável:**
   - No painel de variáveis, é possível clicar com o botão direito na variável `nome` e usar a opção "Set Value" (atalho F2).
   - O valor da variável `nome` é alterado para `bob`, e ao continuar a execução, o programa imprime `bob` em vez de `Anna`.

4. **Uso do Debug Console:**
   - O console de depuração permite modificar variáveis diretamente através de comandos feitos na linha de comando, como `nome = "abc"`.

5. **Chamada de Funções:**
   - Para chamar uma função a partir do console, o formato é `call nome_da_função()`.

## Demonstração na Linha de Comando com DLV

1. **Iniciando o DLV:**
   - O comando `dlv debug main.go` inicia a depuração do arquivo.
   
2. **Adicionando um Breakpoint:**
   - O usuário define um breakpoint manualmente com `break main.go:13`.

3. **Continuando a Execução:**
   - O comando `continue` faz o programa avançar até o breakpoint definido.
   
4. **Visualizando Variáveis:**
   - O comando `locals` lista as variáveis locais, enquanto `vars` mostra todas as variáveis, incluindo globais.

5. **Alterando Variáveis:**
   - Para alterar o valor, utiliza-se o comando `call nome = "bove"`.

6. **Executando Comandos:**
   - Próximos comandos podem ser executados usando `next`, que avança a execução passo a passo.
   - Funções podem ser chamadas da mesma forma que no console do Visual Studio Code.

7. **Finalizando a Sessão:**
   - A sessão do DLV pode ser encerrada com o comando `exit`.

Antônio finalizou a demonstração agradecendo e dizendo até a próxima.

Video Transcript

Antônio perguntou, aproveitando no Java, no debug conseguimos mudar o conteúdo da variável, no Go é possível trocar o conteúdo da variável? Sim. Então vamos mostrar como fazer isso no VG Studio Code com a instrução do Go. Também vamos mostrar como fazer isso no linhado de comando do DLV. Vamos lá então. Usando o VG Studio, primeiro maneira, como tem o seu arquivo launch, tem a configuração aqui, no meu arquivo tem um arquivo main.go, tem uma atribuição de variável chamada de uma função e tal, variável de tipo global aqui. Vou debugar, esqueci de colocar um breakpoint, então eu preciso ir na linha 13, cliquei aqui para criar esse breakpoint, aperto play, ele vai parar na linha 13. No lado esquerdo da tela tem a sessão de variables, variáveis e as variáveis locais, locals. Nesse caso temos a Anna, que está, essa string atribuída a variável nome. Para poder mudar o valor, você pode clicar no botão direito aqui e clicar set value, cujo hotkey é f2. E você pode mudar para outro valor, nesse caso, por exemplo, bog. E quando continuar a rodar o programa, se clicar continue, ele vai para o próximo breakpoint. Como não tem mais breakpoint, vai rodar o programa até o final. Vou abrir o debug console aqui, só apertar controle e cinto grave. Controle, cliquei debug console, eu vejo aqui que primeiro falou hello world, depois bob, não falou Anna, não acho que liga 14. Deveria falar Anna, mas como eu vou dar o valor da variável, apareceu bob. Vamos rodar de novo, vai bater na linha 13. Também dá para modificar pelo debug console, se você quiser digitar o nome para saber qual é o valor. Vamos falar qual é o nome igual a abc, ele muda. O que louco isso aqui apareceu a abc, você diz nome de novo, mudou. Para mudar, você fala qual o espaço, nome da variável, espaço igual, espaço. Não precisa de espaço, mas aqui vai ser certo. E o valor. Para chamar a função call, espaço, nome da função, parênteses e o argumento, não tem nenhum nesse. Esse caso retorna o rei. Acho que tem um detalhe, se a função, você nunca chamar a função do seu código, eu acho que isso não vai funcionar. Já tentei antes, quando eu não chamava o hello na linha 16, se eu remover essa linha, ele não vai funcionar. Então, as funções devem ser usadas pelo menos uma vez no seu código para poder funcionar aqui no debug console. Certo, vou fechar terminar, vou mostrar agora como fazer na linha de comando, mais na mão mesmo. Vou abrir um terminal, no meu caso aqui, eu vou falar dlv, que é o comando, debug. E se você tiver um pacote já definido, pode falar dlv debug, mas quando eu não tenho, eu só tenho um arquivo main.go, não tenho um gomode, essas coisas. Vou dizer main.go. Eu tenho que estabelecer pelo menos um breakpoint aqui, e vou falar break para adicionar o breakpoint, espaço. O nome do arquivo vai ser main.go, dois pontos e a linha, neste caso a linha 13, para simular o que eu fiz no video studio code. Note que, embora eu tenha esse breakpoint no video studio code aqui, ele não vai ser integrado ao comando que eu rodo aqui. Uma coisa separada, então eu tenho que definir novamente, adicionar o breakpoint na mão mesmo. O nome do arquivo, main.go, o caminho, dois pontos e a linha 13. Aí depois eu direto continue para ele continuar o programa até bater no breakpoint. E ele vai te mostrar aqui que está no breakpoint na linha 13. Se quiser ver as variáveis locais, direto locals. Se quiser ver todas as variáveis vars, varrs, note que no final tem a variável de escopo global de lb que eu criei aqui, que é fora das funções, e aparece no chamado vars. Mas tem muita variável, então é meio que muita coisa. Então para chamar, mudar o valor da variável, mesmo coisa que eu fiz lá no debug console, onde a gente rodou pelo video studio code mesmo. Call, nome, igual, por exemplo, bove. E se eu visitar next para ir para o próximo comando, em vez do próximo breakpoint, note que ele deu print do hello world aqui. Se eu falar next de novo para executar a linha 14, ele vai dizer bove em vez de anna, porque eu tinha modificado o valor da variável. Se eu quiser chamar a função call, hello, abre parênteses e usa argumentos, como não tem nenhum, é vazio. Você note que o valor retornado aparece aqui, values return, hey, que é o valor string que eu retornei na linha 8 aqui do meu arquivo may.go. Para continuar até o outro breakpoint, como não tem mais, vai continuar até o final e executar um, dois, três, que é o gllb, hey, que vem do hello, e terminou. Se eu quiser sair, é só exit. Então é por isso mesmo. Obrigado por assistir, até a próxima. Tchau.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: