Essa apresentação aconteceu no 12º Encontro do JUG. Nela falamos sobre os primeiros passos para quem gostaria de debugar com Java utilizando a IDE Eclipse.
2. Sobre
Eu debugo quase todo dia… sou um Software Maintenance Engineer
ou é pago para resolver problemas que ninguém mais gostaria de resolver em
ambientes complexos e de alto risco (troubleshoot e resolução de bugs de
aplicações em produção)
AMO (sem sarcasmo) meu trabalho!
3. O que é debugar
Técnicas para tirar bugs (problemas) da sua aplicação
A técnica mais famosa é acompanhar cada linha de código da aplicação, mas
antes disso precisamos ISOLAR o problema
Quando sai da máquina do computador (um ambiente controlado), temos
muitas variáveis que precisamos ser descartadas antes de chegarmos no
código - para isso temos muitas outras técnicas (aumentar nível de logging,
simular ambientes - DOCKER é um grande aliado), mas isso fica para outro
dia!
Hoje vamos focar em acompanhar a execução linha a linha de um programa
Java
4. Como debugamos um programa Java
Executamos o programa em modo debug e configuramos pontos de
parada(breakpoints - for ENGRISH lovers)
Durante essa arte maravilhosa também podemos ver como está cada variável
do escopo e variáveis que aquele escopo tem visibilidade
Para isso precisamos aprender a debugar com uma IDE ou utilizar o jdb
… errr vamos usar IDE mesmo
5. Como debugar usando o Eclipse
Se você tem seu código rodando no Eclipse é tudo muito mais simples, você
adiciona breakpoints e executa o programa com F11 ou clicando no bugzinho:
Durante o debug você pode ver e alterar valores de variáveis do programa!
Para adicionar breakpoints você faz um clique duplo na coluna esquerda do
código:
Ao adicionar um breakpoint você pode clicar com o botão direito e desabilitar
ele ou remover completamente.
6. Vendo e alterando variáveis durante a execução
Veja a aba variáveis, lá podemos alterar valores. Isso é disponível na perspectiva de debug, que é aberta
automaticamente quando a sessão de debug começa
7. Controlando a execução do debugger
Você pode usar os botões do painel
Ou controlar com botões com os seguintes comandos:
● F5: Ao iniciar o modo debug você pode avançar linha a linha do código e
entrar em cada chamada de método
● F6: Avança linha a linha, mas não entra em chamadas de métodos
● F7: Volta para o método que chamou o método atual
● F8: Continua a execução do programa até o próximo breakpoint
8. Indo além com o debugger
Com a ferramenta de debug do Eclipse é também possível:
● Observar pequenos pedaços de código que você escreve (Watch
Expression)
● Colocar um breakpoint no lançamento de exceção (o código só é parado
quando uma exceção é lançada)
● Debugar múltiplos servidores remotamente!
9. Debugando código de terceiros
Certifique-se que no debugger você adicionou o código de terceiro nas
configurações de debug ou de aplicações remotas. Dica: configure o maven
para baixar código, pois você poderá usar no debug depois
10. Como debugar meu código dentro de um servidor?
É possível debugar aplicações remota desde que você tenha o código e tenha
acesso a uma porta de debug!
Anexar o código das APIs é muito importante para o DEBUG.
Se o servidor for local você simplesmente deve iniciar ele em modo debug
também (como fizemos para a aplicação local Java)
12. E se tiver um problema e não tiver acesso?
Se você não tem acesso a um ambiente para debug uma das melhores forma
é utilizar Byteman! Com ele você escreve scripts que podem ler e modificar
variáveis em tempo de execução inclusive em ambiente de produção
Mas…. Outro dia falamos sobre Byteman!