Conteúdo do Curso
Java OOP
Java OOP
Depurador
O que é um depurador?
Um depurador é uma ferramenta que auxilia na execução passo a passo do seu código. É possível pausar a execução do código em um determinado ponto e iniciar o modo de depuração para analisar como o código está funcionando. Para isso, é necessário definir um marcador (ponto de interrupção) na linha onde se deseja pausar.
Temos um código que deveria calcular a soma dos números de um a dez, inclusive. O resultado esperado é 55
, mas estamos obtendo 45
como resposta. Vamos definir um ponto de interrupção no início do laço para entender por que a resposta não corresponde ao esperado. Para isso, clique com o botão esquerdo do mouse no número da linha, e um marcador vermelho aparecerá ali.
Segue o código do screenshot, reescrito para melhor legibilidade e clareza:
Main.java
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int result = 0; for(int i = 0; i < 10; i++) { result += 1; System.out.println(result); } } }
Ferramentas no modo de depuração
Breve apresentação sobre como utilizar o depurador e quais ferramentas estão disponíveis.
Step Over: Com este botão, é possível continuar a execução do código linha por linha. Ao pressioná-lo, o depurador executa a linha atual e avança para a próxima, parando novamente;
Step Into: Com este botão, é possível entrar na execução de um método. No exemplo apresentado, não há método, mas caso houvesse, seria possível acessar seu interior e acompanhar sua execução;
Step Out: Este botão realiza a ação oposta ao anterior. Permite sair da execução de um método ou laço;
Os valores das variáveis podem ser visualizados na janela inferior ou ao lado das próprias variáveis. É possível observar claramente o valor da variável
result
, que inicialmente é zero.
Iteração pelo código
Para iterar, clique no botão "Step Over". O laço for
é iniciado, e o valor da variável i
aparece, sendo criada dentro do laço for
. Inicialmente, esta variável é definida como zero.
Em seguida, clique em "Step Over" várias vezes para completar uma iteração e verifique no console se algo foi impresso na tela. É possível observar que a variável i
aumentou em 1
, e "0" foi exibido na tela, pois tanto a variável result
quanto a variável i
foram inicialmente definidas como zero. 0 + 0 = 0
-> este foi o valor exibido na tela.
Vamos pular as iterações de impressão dos outros números no console e ir até o final. Neste ponto, é possível identificar o principal erro no laço. O objetivo é exibir a soma dos números de 0 a 10 inclusive, mas o 10 não foi incluído. Portanto, ao observar que i = 9
e, ao ser incrementado para 10
, o laço é encerrado, pois 10 !< 10
(10 não é menor que 10).
Para corrigir esse problema, é necessário alterar a condição para i <= 10
. Assim, o resultado estará correto.
Em resumo, ao pressionar o botão "Step Over" repetidas vezes, foi possível identificar o erro no laço e realizar a correção necessária.
Nota
Mostrei apenas as ferramentas básicas do depurador. Para aprender a utilizá-las, é recomendável praticar por conta própria. Você pode escrever um programa semelhante e verificar de forma independente como tudo funciona. O depurador é uma ferramenta muito útil, pois auxilia na identificação e correção de erros e bugs no código.
1. Qual é o principal objetivo de um depurador?
2. O que um ponto de interrupção permite fazer em um depurador?
3. O que o botão "Step Over" do depurador faz?
Obrigado pelo seu feedback!