visual-studio-debugger
Fazendo debug pelo Visual Studio Code
Você vai aprender
Como fazer depuração pelo VSCode
Pré-Requisitos
Noções básicas de Java
Ter o Visual Studio Code instalado na sua máquina
Noções básicas do Visual Studio Code
Depuração de código
Muitas vezes o programador não terá uma IDE (Integrated Development Environment) para fazer depuração de código. Entretanto, quando temos acesso a tais ferramentas, como a disponibilizada pelo Visual Studio Code, não devemos menosprezar sua capacidade de ajudar a entender mais rápido e mais fácil os problemas que estão acontecendo com o código. Por conta disso, nesta aula irei explicar o básico para você entender como usar a ferramenta de depuração do VSCode.
Para iniciarmos a depuração, antes de termos um código, precisamos da extensão Extension Pack for Java da Microsoft, para permitir que o processo de debug possa acontecer.
Segundo precisaremos de um código para que seja possível fazer testes, e para isso iremos começar com uma versão um pouco modificada do código visto na aula de JDB.
Ele é simples, mas será o bastante para começarmos a usar a ferramenta. Com agora a sua IDE aberta, você terá uma area de trabalho parecida com isso.
Perceba que a cima da função Main tem um marcador dizendo Debug que é onde podemos iniciar o processo de depuração (Obs.: você também pode iniciar a depuração clicando no botão ao lado do "play" e clicar em Debug Java).
Entretanto, se você clicar nele, o programa irá rodar e finalizar normalmente. Isso acontece pois para o processo de debug ser realmente efetivo, precisamos colocar um breakpoint ou um ponto de parada no código.
Para colocar um breakpoint, apenas clique na bolinha vermelha ao lado de cada número.
Se clicarmos para rodar o Debug novamente, perceba que agora o nosso código está parado na linha em que colocamos o breakpoint (a linha marcada em amarelo) e podemos inspecionar o nosso código durante execução.
Perceba que além de termos o nosso código, temos também outras áreas de trabalho que foram abertas pelo depurador, que permitem inspecionar elementos mais específicos do nosso código, vamos dar uma breve pincelada em cada um desses componentes.
Call Stack
Primeiramente temos a Pilha de Chamadas ou Call Stack, onde temos todas as Threads sendo executas, além da pilha de funções que foram chamadas nessas Threads. Como temos apenas a função "Main" no nosso código, então só temos ela na pilha, porém se tivessemos colocado o breakpoint em uma função que é chamada por outras, isso seria visível pela Call Stack.
Breakpoints
Nessa aba conseguimos verificar todos os breakpoints presente no nosso código, além de que podemos ativar/desativar breakpoints pertence no nosso código, se julgarmos eles necessários ou desnecessários
Variables
Como o nome da aba sugere, podemos enxergar todas as variáveis presentes no escopo de uma função, ou seja, todas as variáveis que estejam visíveis dentro de uma função. Toda vez que mudamos de escopo (exemplo.: entramos dentro de uma função, ou de uma função de uma classe), as variáveis que aparecem nessa aba mudam.
Uma coisa que podemos fazer é clicar com o botão direito nessas variáveis e teremos um menu aberto com novas opções, uma delas é adicionar a variável para aba "Watch".
Watch
Quando adicionamos uma variável para a aba "Watch" quer dizer que estamos pedindo para o depurador "ficar de olho" em uma variável, e para que toda vez que uma variável for modificada, o código irá parar no ponto em que ela foi modificada e nos mostrar o resultado. Esse comportamento é bem parecido com o breakpoint, só que é como se tivessemos colocado uma condicional para ativar o breakpoint.
Ferramentas para passar pelo código
Agora que estamos familiriazados com todas as abas do depurador, podemos agora realmente começar o processo de depuração. Para prosseguirmos com a depuração, iremos utilizar os botões de ferramentas que podem ser encontrados na parte superior da IDE. Confira as possíveis ferramentas que podem ser utilizadas.
Continuar (Continue)
Esse botão irar permitir que o código pule para o próximo breakpoint possível. Como não temos mais nenhum breakpoint nesse código, clicar nesse botão apenas resultará no processo de depuração finalizar.
Passar por cima (Step Over)
Esse botão irá para a próxima linha, pulando qualquer chamada de função que existir, na nossa situação atual, pular a linha atual significa passar por toda a execução da função somar e pular para a linha de print.
Antes
Depois
Entrar em (Step Into)
Esse botão, terá um comportamento bem parecido com o anterior, ele irá para a próxima linha, porém, se a linha atual for a chamada de uma função, o código irá entrar dentro da chamada dessa função. Neste caso então, a depuração irá entrar na função somar, mostrando o passo-a-passo de sua execução.
Antes
Depois
Sair (Step Out)
Vamos supor o seguinte cenário, você entra dentro de uma função, você verifica o que você queria verificar nela e agora quer sair dela e continuar a execução fora da função. Para isso que serve o botão Step Out ele termina a execução da função e retorna para a linha onde essa função foi chamada.
Recarregar (Reload)
Como o nome sugere, ele irá recarregar o processo de depuração, retornando para o primeiro breakpoint.
Parar (Stop)
Como o nome sugere, o processo de depuração será encerrado de forma prematura.
Obs.: Você também pode interromper o processo de depuração, se você apertar Ctrl + C no terminal onde a depuração foi iniciada.
Hot replace
Essa função especial do VSCode permite o programador trocar o valor de variáveis em tempo de execução. Basta o programador escolher a variável e então clicar no botão "Hot replace" o depurador irá voltar para o momento da instância da variável e, então, continuar a depuração com o novo valor.
Conclusão
Isso conclui todos os conceitos básicos para a depuração de código dentro do Visual Studio Code, dessa forma vai ficar muito fácil visualizar os seus códigos assim como também encontrar qualquer erro que possa estar acontecendo que gere exceções ou problemas na lógica do código. Sugiro que para mais informações consulte a página oficial da extensão no site do Visual Studio Code.
Links úteis
Last updated