SlideShare uma empresa Scribd logo
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 ;-)

Mais conteúdo relacionado

PDF
Talk testes em flutter
PDF
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
PPTX
Tc aula 07
PPTX
Aula 07 - Visualg e Pseudocódigo
ODP
Aula04-JavaScript
PDF
Livro Código Limpo: Tratamento de Erros - Cap 7
PDF
Apostila sobre o Visualg
PDF
TDC Florianópolis 2013 - Refatorar! porque ninguém gosta de código que cheir...
Talk testes em flutter
[Cocoaheads Conference:2018] Além de prints e breakpoints: truques para um De...
Tc aula 07
Aula 07 - Visualg e Pseudocódigo
Aula04-JavaScript
Livro Código Limpo: Tratamento de Erros - Cap 7
Apostila sobre o Visualg
TDC Florianópolis 2013 - Refatorar! porque ninguém gosta de código que cheir...

Mais procurados (19)

PDF
Como Reter Objetos Utilizando Android-State API
PDF
Comentários No Java
PPTX
Tratamento de excees slide trabalho
PPTX
2° Workshop de Testes em Uberlândia - Treinamento em Automação de Testes com ...
PDF
Leitor de Códigos no Android com Barcode Scanner API - ZXing
PDF
Ajuste de Texto com Autosizing TextView - Android Jetpack
PPTX
Por que automatizar testes de software?
PPTX
PPT
Testes Automatizados de Software
PPTX
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
PDF
Programação defensiva
PPT
Montagem
ODP
Programação Defensiva
PPTX
Unit Testing
ODP
Depurando Aplicacoes PHP com XDebug e FirePHP II
PPT
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
PDF
Teste de aplicações web com selenium
Como Reter Objetos Utilizando Android-State API
Comentários No Java
Tratamento de excees slide trabalho
2° Workshop de Testes em Uberlândia - Treinamento em Automação de Testes com ...
Leitor de Códigos no Android com Barcode Scanner API - ZXing
Ajuste de Texto com Autosizing TextView - Android Jetpack
Por que automatizar testes de software?
Testes Automatizados de Software
Poo1 aula 3 - java - comentários instruções e blocos-palavras chave
Programação defensiva
Montagem
Programação Defensiva
Unit Testing
Depurando Aplicacoes PHP com XDebug e FirePHP II
Depurando Aplicações PHP com XDebug e FirePHP - SETI 2008
Teste de aplicações web com selenium
Anúncio

Semelhante a Básico sobre Debugging com Java (20)

PPTX
Debugging node
PDF
Aula1- Java PRof.ª Cristiane Fidelix
PDF
Aula 1 - Java - Prof.ª Cristiane Fidelix
PDF
Depurando aplicações PHP like a BOSS
PDF
Manual robotec
PDF
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
PPT
BDD-NamoroOn
ODP
Produtividade com Eclipse IDE
PDF
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
PPTX
Programação de Microprocessadores
PDF
Algoritmos e Visualg parte 1
PDF
Manual lab ino
PPTX
(Py CS1)_ Lesson 1 - Syntax & Sequences.pptx
DOCX
Linguagem de programação
PPTX
Teste de Software
PDF
#1 - O que é Teste Unitário
PDF
Apostila s7
PDF
Macro br
PPTX
Iniciação à Linguagem C: Conceitos básicos, algoritmia, variáveis, ---
PDF
Dez dicas para_acompanhamento_de_bugs
Debugging node
Aula1- Java PRof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane Fidelix
Depurando aplicações PHP like a BOSS
Manual robotec
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
BDD-NamoroOn
Produtividade com Eclipse IDE
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Programação de Microprocessadores
Algoritmos e Visualg parte 1
Manual lab ino
(Py CS1)_ Lesson 1 - Syntax & Sequences.pptx
Linguagem de programação
Teste de Software
#1 - O que é Teste Unitário
Apostila s7
Macro br
Iniciação à Linguagem C: Conceitos básicos, algoritmia, variáveis, ---
Dez dicas para_acompanhamento_de_bugs
Anúncio

Mais de jesuinoPower (14)

PDF
Introdução ao LiveOak
PDF
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
PDF
Conectando jBPM com o mundo - TDC 2014 SP
PDF
JavaFX: Desktop para desenvolvedores WEB
PDF
JavaFX 8, Collections e Lambdas
PDF
Java não é tão difícil quanto parece
PDF
JavaFX: A nova biblioteca gráfica da plataforma Java
PDF
Desenvolvimento rápido de aplicações com JEE e JavaFX
PDF
Novidades do JAX-RS 2.0
PDF
JavaFX 2 - TDC 2012
PDF
JavaFX 2
PDF
Introdução ao JavaFX
PDF
Introdução ao java fx e visage
PDF
Rest web services com Java
Introdução ao LiveOak
Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP
Conectando jBPM com o mundo - TDC 2014 SP
JavaFX: Desktop para desenvolvedores WEB
JavaFX 8, Collections e Lambdas
Java não é tão difícil quanto parece
JavaFX: A nova biblioteca gráfica da plataforma Java
Desenvolvimento rápido de aplicações com JEE e JavaFX
Novidades do JAX-RS 2.0
JavaFX 2 - TDC 2012
JavaFX 2
Introdução ao JavaFX
Introdução ao java fx e visage
Rest web services com Java

Último (19)

PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula04-Academia Heri- Tecnologia Geral 2025
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Apple Pippin Uma breve introdução. - David Glotz
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Aula 18 - Manipulacao De Arquivos python
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18

Básico sobre Debugging com Java

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