Pode ajudar a identificar e resolver defeitos de aplicativos. Neste artigo, o autor usará o Eclipse, uma ferramenta de desenvolvimento comumente usada, para depurar aplicativos Java. No entanto, os métodos de depuração apresentados aqui são basicamente universais e também aplicáveis ao NetBeans IDE. Vamos nos concentrar no tempo de execução.
Antes de começar, recomendo que você leia o artigo Atalhos do Eclipse, que lhe trará muita comodidade. Neste artigo é utilizada a versão Eclipse Juno (Eclipse 4.2). Gostaria de dar 3 sugestões antes de começar!
Não use System.out.println como ferramenta de depuração Ative níveis de log para todos os componentes envolvidos e use um analisador de log para ler os logs.
1. Ponto de interrupção condicional
Se você não sabe como adicionar um ponto de interrupção, basta clicar no painel esquerdo (antes do número da linha) e o ponto de interrupção será criado. Na interface de depuração, a visualização "Pontos de interrupção" listará todos os pontos de interrupção criados. Podemos adicionar uma condição booleana a ele, ou seja, o breakpoint será ativado e se a condição booleana for verdadeira, o breakpoint será executado, caso contrário irá pular a execução.
2. Ponto de interrupção de exceção
Na visualização do ponto de interrupção, há um botão de marca J! Podemos usar este botão para adicionar um ponto de interrupção de exceção Java. Por exemplo, se quisermos que o programa ainda seja capaz de continuar a depuração quando encontrar um NullPointerException, podemos usar este botão para adicionar um ponto de interrupção de exceção!
3. Pontos de monitoramento
Este é um recurso muito interessante que interrompe a execução do programa e permite a depuração quando uma propriedade selecionada é acessada ou modificada. Selecione uma variável de classe na visualização Outline e selecione Switch Watchpoint no menu de contexto. O watchpoint do atributo será criado e todos os watchpoints serão exibidos na forma de uma lista na visualização Breakpoints.
4.Avaliação/Inspeção
Pressione Ctrl+Shift+D ou Ctrl+Shift+I para exibir o valor da variável ou expressão selecionada. Também podemos adicionar pontos de controle permanentes a uma variável ou expressão. Quando o programa for depurado, esses pontos de controle serão exibidos na visualização Expressão.
5. Modifique o valor da variável
Durante a depuração, podemos modificar os valores das variáveis. Primeiro selecione uma variável e depois entre na visualização Variáveis e insira o valor na coluna Valor correspondente de acordo com o tipo de variável.
6. Pare a execução na função principal
Nas configurações de execução/depuração, há uma guia "Principal" na caixa de diálogo de edição de configuração e podemos marcar a caixa de seleção "Parar no principal". Se selecionado, ao depurar um programa Java baseado no método principal, o programa interromperá a execução na primeira linha do método principal.
7. Variáveis ambientais
Em vez de adicionar variáveis de ambiente nas propriedades do sistema, podemos adicioná-las facilmente na caixa de diálogo Editar configuração.
8. Soltar no quadro
Este também é um dos meus recursos favoritos. Durante a depuração, você pode voltar ao início do quadro da pilha de chamadas e os valores das variáveis retornarão ao início. Ajustar a profundidade da pilha de acordo com o rollback. O objetivo principal desta função é retornar rapidamente o status de todas as variáveis ao estado em que o método começou a ser executado. que você pode depurar várias vezes no que lhe diz respeito. No entanto, também haverá alguns efeitos colaterais durante o processo de execução. Por exemplo, os dados inseridos no banco de dados não podem ser excluídos!
9. Filtragem de distribuição
Quando entramos no método (F5), também podemos acessar sua biblioteca externa (como java.*). Podemos não precisar desta biblioteca, então podemos adicionar um filtro à página da guia Perference para excluir este pacote.
10. Entrar, sair e retornar
Deixo isso para o último ponto, estas são as coisas que devem ser compreendidas (e de preferência dominadas) durante a depuração:
F5 - Enter: Passa para o próximo passo Se houver uma chamada de método na linha atual, o controle irá para a primeira linha do método chamado para execução.
F6 - Saltar: passa para a próxima linha. Se houver uma chamada de método na linha atual, ela passará diretamente para a próxima linha para execução. Não entrará no corpo do método chamado.
F7 - Return: Sai do método atual e continua a execução.
F8 —— Move para o próximo ponto de interrupção para execução.