domingo, 14 de fevereiro de 2010

[Java] Interpretação de um programa Java com depuração dos valores das variáveis (parte 1/4)


Como foi dito em [Java] Grupo de produtos de tecnologia Java, o SDK possui um depurador que permite monitorar a execução dos seus aplicativos para que você possa localizar e remover erros de lógica.

Pontos de interrupção e os comandos run, stop, cont e print

Iniciamos o estudo sobre o depurador investigando os pontos de interrupção, marcadores que podem ser configurados em qualquer linha executável do código. Quando a execução do aplicativo alcança um ponto de interrupção, a execução efetua uma pausa, permitindo que você examine os valores das variáveis para ajudar a determinar se há erros de lógica.

Nas etapas a seguir, você aprenderá a utilizar pontos de interrupção e vários comandos de depurador para examinar os valores das variáveis:
  1. Compilando o aplicativo para depuração: O depurador Java só funciona com os arquivos .class compilados com a opção de compilador -g, que gera informações utilizadas pelo depurador para ajudar a depurar seus aplicativos. Compile o aplicativo com a opção de linha de comando -g digitando javac -g nomedoarquivo.java. Lembrando que o comando java -g *.java compila todos os arquivos .java no diretório atual para depuração.
  2. Iniciando o depurador: No Prompt de comando, digite jdb. Esse comando iniciará o depurador Java e permitirá que você utilize os recursos dele.
  3. Executando um aplicativo no depurador: Execute o aplicativo previamente compilado com a opção de compilador -g por meio do depurador digitando run nomedoarquivo. Se você não configurar pontos de interrupção antes de executar seu aplicativo no depurador, o aplicativo executará como se estivesse utilizando o comando java nomedoarquivo.
  4. Reiniciando o depurador: Para utilização adequada do depurador, você deve configurar pelo menos um ponto de interrupção antes de executar o aplicativo. Reinicie o depurador digitando jdb.
  5. Inserindo pontos de interrupção em Java: Você configura um ponto de interrupção em uma linha específica do código no seu aplicativo. Os números das linhas usados nestes passos são provenientes do código-fonte. Para configurar um ponto de interrupção na linha 12 do código-fonte, por exemplo, digite stop at NomedoArquivo:numerodalinha (por exemplo stop at ContaTeste:22). O comando stop insere um ponto de interrupção no número da linha especificada depois do comando. Você pode configurar quantos pontos de interrupção forem necessários. Quando o aplicativo for executado, ele interrompe a execução em qualquer linha que contenha um ponto de interrupção. Diz-se que o aplicativo está no modo de interrupção (break mode) quando o depurador efetua uma pausa na execução do aplicativo. Pontos de interrupção podem ser até mesmo configurados depois de o processo de depuração ter iniciado. O comando de depurador stop in, seguido por um nome de classe, um ponto e um nome de método (por exemplo, stop in Conta.creditar) instrui o depurador a configurar um ponto de interrupção na primeira instrução executável no método especificado. O depurador efetua uma pausa na execução quando o controle do programa entra no método. Configurar um ponto de interrupção em uma linha de código que não seja executável, como um comentário, faz com que o depurador exiba uma mensagem de erro. Os pontos de interrupção só persistem até o final da sessão de depuração em que eles são configurados (depois de o depurador encerrar, todos os pontos de interrupção são removidos).
  6. Executando o aplicativo e começando o processo de depuração: Digite run nomedoarquivo para executar seu aplicativo e começar o processo de depuração. Observe que o depurador imprime um texto indicando os pontos de interrupção foram configurados. O depurador identifica cada ponto de interrupção como um ‘deferred breakpoint’ (ponto de interrupção adiado), pois cada um foi configurado antes de o aplicativo iniciar a execução no depurador. O aplicativo efetua uma pausa quando a execução alcança o ponto de interrupção. Nesse ponto, o depurador o notifica de que um ponto de interrupção foi alcançado e exibe o código-fonte desta linha e essa linha do código será a próxima instrução que será executada.
  7. Utilizando o comando cont para retomar a execução: Digite cont. O comando cont faz com que o aplicativo continue a execução até o próximo ponto de interrupção ser alcançado. Observe que as saídas normais do programa continuam aparecendo.
  8. Examinando o valor de uma variável: Digite print nomeDaVariavel para exibir o valor atual armazenado na variável nomeDaVariavel. O comando print permite examinar dentro do computador o valor de uma das suas variáveis. Esse comando o ajudará a encontrar e eliminar erros de lógica no seu código.
OBSERVAÇÃO: Para que os comandos "javac", "jdb", entre outros, funcionem em qualquer diretório do prompt de comando você deve setar a variável PATH corretamente.

Um comentário: