Fábio Miranda, em 17 Out 2009
Quem desenvolve aplicações Web, em algum momento com certeza já precisou escrever código Javascript, seja para dar mais interatividade a uma tela, para inspecionar elementos DOM da página, ou para fazer chamadas assíncronas com o servidor. E provavelmente já se deparou com situações onde era necessário debugar o código para investigar erros.
Antigamente, eu utilizava uma forma bastante primitiva (e ineficiente) de depurar código javascript, uma versão tosca dos clássicos "printf" e "system.out": usava o Window.alert() para inspecionar o valor das variáveis.
Esta abordagem é muito ruim: intrusiva (tem que alterar o código), ineficiente (é necessário que colocar vários alerts para acompanhar a evolução do valor da variável / objeto investigado), e nem sempre revela com clareza em que ponto do código pode estar localizado um bug.
Felizmente, descobri ferramentas para isso.
- No Internet Explorer, há o Microsoft Script Debugger (não é instalado por padrão, deve ser baixado no MSDN).
- Na prática é uma versão tosca, porém mais elaborada, do Window.alert. É pouco amigável e possui poucos recursos (pelo menos era no tempo que experimentei).
- No Firefox, há o Firebug, e a brincadeira começa a ficar interessante.
- No Chrome, há o Javascript Console, meu favorito.
Chromium Javascript Remote Debugger
O primeiro passo é baixar o plugin do Eclipse:- Help > Software Updates > Add Site...
- Em Location, copie e cole a URL: http://chromedevtools.googlecode.com/svn/update/dev
- Baixe o plugin e reinicie o Eclipse.
Passo-a-Passo
Usar o debugger consiste de três passos:- Criar uma External Tool Configuration para o Eclipse iniciar o Chrome em modo de Debug
- Criar uma Debug Configuration que se conecta a este navegador.
- Criar breakpoints no Projeto criado automaticamente pela Debug COnfiguration.
Iniciar Chrome em modo de Debug
- Run > External Tools > External Tools Configurations
- Indicar a localização do chrome.exe
- Informar como Argumento a porta onde o navegador dever iniciar.
--remote-shell-port=9222
- É necessário informar a porta, pois o debugger do eclipse se conectará ao Chrome por esta porta!
Criar Debug Configuration
Agora começa de fato o uso do plugin do Chromium.- Vá no menu Run > Debug Configurations
- Clique em Chromium Javascript e crie uma nova configuração
- Coloque um nome de sua preferência:
- O primeiro nome se refere ao nome da Debug Configuration que será disponibilizado no botão "Debug As..."
- O segundo nome (Remote Scripts Project Name) é o nome do projeto que será criado no eclipse, onde poderemos selecionar os locais onde colocaremos os breakpoints
- Informe a portaatravés da qual o Debugger irá se conectar ao navegador do Chrome. (A mesma informada na External Tool Configuration acima)
- Caso deseje ver um log da comunicação entre o Eclipse e o Chrome em um Console do Eclipse, deixe marcada a opçãoShow debbuger network communication console)
Iniciar o Chrome, o Debugger, Setar breakpoints e Começar a Depurar!
Execute o Chrome e o Debugger a partir dos respectivos ícones (figura abaixo).- é mais fácil visualizar os valores das variáveis no Eclipse
- é possível caminhar pelo stack de execução de uma thread
- configurar expressões.
- usar o eclipse diminui a necessidade de ficar alternando entre várias janelas, tornando o trabalho menos cansativo.
- torna mais precisa a contagem de tempo do Mylyn, pois fica menos fora da IDE (diminui a imprecisão devido a paradas de contagem de tempo por o Eclipse estar ocioso).