29 março 2010

Depuração no Eclipse (debugger)



[ATUALIZADO com novo post] se chegou até aqui, saiba que tem um vídeo atualizado no post recente aqui.

No contexto de programação como podemos entender o que é a depuração e como fazê-la acontecer na prática? Quase sempre quando trabalho com novas turmas vejo uma grande maioria dos alunos ainda não utilizou esse precioso recurso do programador. O objetivo deste post é dar uma noção básica e mostrar como fazer na prática usando a IDE Eclipse.

O que é depuração?
"Um depurador (em inglês: debugger) é um programa de computador usado para testar outros programas e fazer sua depuração, que consiste em encontrar os defeitos do programa." [fonte Wikipédia]

Do meu ponto de vista, vejo como uma forma de rodar o programa de computador passo a passo, instrução por instrução de código afim de entender a sua sequência de execução em tempo real (run-time). Através deste procedimento o programador terá condições favoráveis para acompanhar o ciclo como um todo, podendo intervir no comportamento do fluxo padrão (mudando o valor de variáveis por exemplo), ou simplesmente, acompanhando o fluxo padrão da execução (observando a sequencia da execução linha a linha dentro do código fonte) para entender a lógica do programa.

Como fazer a depuração em Java?
Existem duas maneiras que considero mais convenientes de fazer isso em Java:
  1. Usar uma IDE: muitos procedimentos são simplificados para o desenvolvedor. As IDEs mais conhecidas para Java são Eclipse e NetBeans. Ambas são boas opções. Embora eu sugira o Eclipse por ser mais flexível e mais leve;
  2. Entender como podemos depurar e como fazer na prática: o Eclipse possui um HELP que explica os passos para poder fazer isso.
Passo a passo no Eclipse:
Antes de dizer como fazer, quero sugerir você procurar no HELP da IDE Eclipse esse procedimento. Acesse "/Help/Help Content". Procure em "Java Development User Guide", o post que se refere ao assunto: "Debugging your programs" (depurando seus programas).

Após uma leitura básica neste material do HELP, vamos perceber que para fazer a depuração precisamos fazer o seguinte:
  • Ter um código fonte dentro de um projeto Java;
  • Marcar uma linha no qual desejamos que a execução inicie a depuração (clique duplo na borda do seu editor de código fonte - junto a linha);
  • Iniciar a execução clicando em "menu Run/Debug As/Java Application";
O Eclipse possui uma perspectiva chamada DEBUG que será sugerida toda vez que uma execução em modo de depuração for invocada. Utilizar essa perspectiva facilitará a visualização da execução em tempo real.

A partir deste ponto você precisa utilizar os botões (Step Into (F5) ou Step Over(F6)), que servem, respectivamente, acessar a próxima instrução tentando entrar no bloco - precisa ter o código fonte; e acessar a próxima instrução não precisando entrar no bloco. Na prática isso permite acessar os códigos dos blocos dos métodos desejados de uma maneira conveniente. Se desejar sair ou continuar de forma normal, basta apertar os comandos (Terminate, Resume) respectivamente.









Conclusão
Por que depurar o código? Podemos acompanhar o ciclo de vida do aplicativo (do início ao fim), procurando verificar o valor de variáveis, de expressões, acessando métodos entre outras possibilidades.

Na minha opinião a principal vantagem é permitir o acompanhamento em tempo real. Já resolvi muitos bugs em menor tempo por utilizar esse recurso. Na prática, percebemos nosso erro de lógica quando podemos entender o que o computador está fazendo em determinada situação. A maioria das vezes o erro é do próprio programador que não previu determinada situação. Ao perceber isso, com ajudada da depuração, temos mais probabilidade de corrigir o bug alterando a lógica do programa.


Um comentário:

Anônimo disse...

Muito bom o conteúdo!