Debugando com Java F6, F6, F6, F5, F6, F7,F6, AHA!, F8
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!
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
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
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.
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
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
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!
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
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)
Vamos Debugar! Demos: ● Básico ● Algoritmos de ordenação (sempre interessante) ● Aplicação no servidor ● Debug Remoto
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!
Obrigado github.com/jesuino << O único lugar que você não vai me odiar por falar de política ;-)

Básico sobre Debugging com Java

  • 1.
    Debugando com Java F6,F6, F6, F5, F6, F7,F6, AHA!, F8
  • 2.
    Sobre Eu debugo quasetodo 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 umprograma 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 usandoo 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 alterandovariá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çãodo 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 como 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 deterceiros 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 meucó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)
  • 11.
    Vamos Debugar! Demos: ● Básico ●Algoritmos de ordenação (sempre interessante) ● Aplicação no servidor ● Debug Remoto
  • 12.
    E se tiverum 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!
  • 13.
    Obrigado github.com/jesuino << Oúnico lugar que você não vai me odiar por falar de política ;-)