Ir para o conteúdo

Debugging com Chrome DevTools

De Wikiversidade

Introdução ao Debugging com o Chrome DevTools

[editar | editar código]

Debugging com o Chrome DevTools refere-se ao processo de identificar e corrigir erros (bugs) em páginas web utilizando a ferramenta de desenvolvimento integrada ao navegador Google Chrome. Esta ferramenta oferece funcionalidades avançadas para inspecionar, depurar e otimizar código HTML, CSS e JavaScript em tempo real.

Visão Geral

[editar | editar código]

O Chrome DevTools (ou Ferramentas do Desenvolvedor) é um conjunto de utilitários que permite aos desenvolvedores web inspecionar elementos de uma página, monitorar o desempenho da aplicação, simular dispositivos móveis, editar arquivos em tempo real e depurar o código.

A ferramenta é amplamente utilizada para:

  • Identificar erros de JavaScript.
  • Analisar o layout e o estilo da página (HTML/CSS).
  • Monitorar requisições de rede.
  • Depurar interações assíncronas com breakpoints.

Abertura do DevTools

[editar | editar código]

O Chrome DevTools pode ser aberto de várias formas:

  • Pressionando F12 no teclado.
  • Utilizando Ctrl+Shift+I (Windows/Linux) ou Cmd+Option+I (macOS).
  • Clicando com o botão direito na página e selecionando "Inspecionar".

Painéis Principais

[editar | editar código]
  1. Elements: Exibe a estrutura do DOM e permite a edição em tempo real do HTML e do CSS. Útil para verificar classes, estilos aplicados e a hierarquia dos elementos.
  2. Console: Permite a visualização de mensagens de log e erros. Também pode ser usado para executar comandos JavaScript diretamente.
  3. Source: Este é o painel central para debugging. Permite visualizar os arquivos de origem da aplicação, adicionar breakpoints e inspecionar variáveis.
  4. Network: Monitora todas as requisições feitas pela página. Importante para verificar o carregamento de scripts, imagens, APIs e tempo de resposta.
  5. Performance, Application, Security, Lighthouse: Painéis auxiliares que oferecem diagnósticos de desempenho, armazenamento local, segurança e sugestões de melhorias.

Edição ao Vivo de Código

[editar | editar código]

O Chrome DevTools permite a edição ao vivo de HTML, CSS e JavaScript diretamente no navegador, sem a necessidade de modificar os arquivos originais no servidor. Essa funcionalidade é amplamente utilizada para testar e depurar alterações de forma rápida e iterativa durante o desenvolvimento web.

Na aba Elements, é possível editar o conteúdo e atributos dos elementos HTML, bem como modificar estilos CSS diretamente no painel Styles, com atualizações refletidas imediatamente na interface da página.

Já na aba Sources, desenvolvedores podem editar trechos de JavaScript, adicionar ou remover funções, e até salvar Snippets para reutilização. Essas edições facilitam a experimentação, identificação de erros lógicos e prototipagem de soluções em tempo real.

Debugging com Breakpoints

[editar | editar código]

Definição

[editar | editar código]

Um breakpoint (ponto de interrupção) é uma marca inserida no código para interromper sua execução em um ponto específico, permitindo a análise do estado da aplicação naquele momento.

Como adicionar um breakpoint

[editar | editar código]
  1. Vá até o painel Sources.
  2. Localize o arquivo JavaScript que deseja depurar.
  3. Clique no número da linha onde deseja pausar a execução.

Ao recarregar a página ou executar o código, a execução será interrompida nesse ponto.

Inspeção de variáveis

[editar | editar código]

Com a execução pausada:

  • O painel à direita mostrará as variáveis no escopo atual.
  • O painel Call Stack exibe a cadeia de chamadas até o ponto de interrupção.
  • É possível inspecionar valores passando o mouse sobre variáveis ou usando a aba Scope.

Outros tipos de breakpoints

[editar | editar código]
  • Event Listener Breakpoints: pausa a execução quando certos eventos do DOM ocorrem (cliques, submissão de formulário etc.).
  • XHR/Fetch Breakpoints: pausa a execução quando requisições assíncronas são feitas.
  • DOM Breakpoints: dispara quando um nó do DOM é modificado.

Watch Expressions

[editar | editar código]

No painel Sources, você pode adicionar expressões à aba Watch. Essas expressões serão avaliadas constantemente durante a execução do código, facilitando o rastreamento de valores.

Execução Passo a Passo

[editar | editar código]

Com a execução pausada, os seguintes controles estão disponíveis:

  • Resume script execution (F8): continua a execução até o próximo breakpoint.
  • Step over (F10): executa a próxima linha, sem entrar em funções chamadas.
  • Step into (F11): entra em funções chamadas na linha atual.
  • Step out (Shift+F11): sai da função atual e volta ao contexto anterior.

Logging com console.log()

[editar | editar código]

Embora não seja tecnicamente parte do debugging com breakpoints, o uso de console.log() é uma técnica comum para exibir mensagens ou valores no console. Pode ser útil em etapas iniciais de depuração.

console.log('Valor da variável x:', x)

Exemplos de Uso

[editar | editar código]

Exemplo 1: Função que não retorna valor esperado

[editar | editar código]

Neste caso, colocar um breakpoint na linha let resultado = a + b; permitirá ver que b é undefined, explicando o resultado NaN. Isso significa que o problema, na verdade está na função que desconhecemos.

function soma(a, b) {
    let resultado = a + b;
    return resultado;
}

let total = soma(2, funcaoDesconhecida());
console.log(total); // ué, ta dando NaN? por que?

Exemplo 2: Evento de clique que não funciona

[editar | editar código]
document.getElementById('botao').addEventListener('click', function() {
  executarAcao();
});

Você pode usar um Event Listener Breakpoint em "Mouse > click" para pausar quando o evento de clique for disparado e verificar se executarAcao() está definida corretamente. O "addEventListener" é uma função que executa um determinado código quando uma ação é executada. No exemplo acima, executarAcao() é executado.

Suponha o caso em que, quando apertamos o botao, nada ocorre. Existem dois cenários possíveis. Vamos analisar por que é mais vantajoso utilizarmos o Event Listener Breakpoint em vez do Breakpoint normal:

1. executarAcao falhou:
[editar | editar código]
  • Breakpoint normal: pausará, mas só mostrará o erro depois do clique.
  • Event Listener Breakpoint: pausará no momento exato do clique, permitindo ver todo o contexto.
2. getElementById falhou:
[editar | editar código]
  • Breakpoint normal: nunca pausará.
  • Event Listener breakpoint: mostra que nenhum clique está sendo capturado (o problema está antes).

Considerações Finais

[editar | editar código]

O Chrome DevTools é uma ferramenta poderosa e essencial para desenvolvedores front-end. O domínio de suas funcionalidades básicas, como breakpoints, inspeção de variáveis e análise de rede, permite uma depuração eficaz e acelera o desenvolvimento web.

Referências

[editar | editar código]