Debugando aplicações PHP com Xdebug e Eclipse PDT

Salve, salve galera. De novo, depois de um longo período de hibernação venho escrever um novo artigo. Desta vez o artigo é sobre PHP, mais especificamente sobre depuração (vulgo debug) de código sem a utilização de die(), print_r() e var_dump(). Pra isso vamos usar o Eclipse PDT, Xdebug e um browser.

[ Hits: 81.747 ]

Por: José Roberto em 11/04/2008 | Blog: http://www.jragomes.com


Instalando e configurando o Xdebug



Nosso primeiro passo é instalar as ferramentas adequadas.

Instalando o php-pear e php5-dev

O PHP-PEAR é um conjunto de ferramentas que auxilia a instalação de várias extensões no php, como por exemplo: xdebug, oci8, pdo etc.

Para instalar o php-pear basta entrar em um console e executar:

# apt-get install php-pear

O PHP5-DEV é um pacote onde estão todas as bibliotecas usadas pelo php para compilar extensões e recompilar o próprio php. Para instalá-lo basta executar:

# apt-get install php5-dev

Instalando o xdebug

Tendo o php-pear instalado, fica fácil instalar o xdebug. Há dois métodos: um automático, onde é usado apenas um comando e outro manual, onde é necessário baixar arquivo e executar uma série de comandos.

Instalando o Xdebug automaticamente:

Utilizando um terminal e tendo poderes de administrador executando o comando

# pecl install xdebug

O restante será efetuado automaticamente, sem problemas.

Instalando o Xdebug manualmente:

Caso a instalação automática falhe, é possível fazer manualmente. Para isso, basta seguir os seguintes passos:
  • baixar os fontes em tgz (source) do xdebug: http://xdebug.org/
  • explodir o arquivo baixado: tar zxvf xdebug-versao.tgz
  • entrar no diretório criado e executar o comando phpize
  • executar ./configure
  • executar make
  • executar make install (como root)

Configurando o xdebug

Instalamos o xdebug, porém ele ainda não está configurado no php. O Apache no Ubuntu tem uma estrutura toda descentralizada, isto é, existem vários arquivos de configuração, o PHP segue a mesma lógica, tendo as configurações das extensões em arquivos diferentes do php.ini.

O diretório que o php utiliza para guardar as configurações das extensões é "/etc/php5/conf.d". Lá podemos criar um arquivo chamado xdebug.ini que conterá as seguintes linhas:

A primeira linha diz que estamos utilizando uma extensão zend e temos que passar o caminho completo da extensão.

zend_extension="/usr/lib/php5/20060613+lfs/xdebug.so"
xdebug.remote_port = 9100 # porta que o xdebug responderá
xdebug.remote_handler="dbgp" # valor padrão
xdebug.remote_host="localhost" # endereço do host que o xdebug estará rodando
xdebug.remote_enable = On # On habilita o debugger remoto, Off desabilita

Podemos ainda adicionar o profiler, que mapeará todas as funções, objetos que estão sendo utilizadas no script. Para habilitar o profiler adicionamos mais duas linhas:

xdebug.profiler_enable = On #habilitar o profiler com On e desabilita com Off
xdebug.profiler_output_name = cachegrind.out #arquivo onde ficará guardado o mapeamento

Para poder ler um arquivo de mapeamento podemos utilizar as ferramentas WinCacheGind para Windows ou KcacheGrind para Linux.

No próximo passo vamos configurar o PDT.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando e configurando o Xdebug
   3. Configurando o Eclipse PDT
   4. Usando o Debugger
   5. Conclusões e referências
Outros artigos deste autor

Baixando as fotos da sua câmera digital

Fazendo um site completo rapidinho com Joomla

Utilização e instalação do Litrix Live CD

Fazendo uma conexão bridge no VirtualBox

Organizando as idéias

Leitura recomendada

Utilizando o Smarty template no PHP

Como programar com OOP em PHP, uma classe simples

Google Chart: Criando gráficos dinâmicos em minutos

Symfony Framework - Introdução

Instalando Lamp Stack no Servidor Debian

  
Comentários
[1] Comentário enviado por baxman em 11/04/2008 - 16:15h

José Roberto,

que coincidência, pois ia escrever este mesmo artigo, mas ao invés de utilizar o PDT seria o notepad++.

mas valeu .. obrigado por postar o artigo

[2] Comentário enviado por erickbt86 em 12/04/2008 - 08:53h

Muito bom o artigo... prático e eficaz. Vejo que muita gente tem dificuldade em começar a utilizar o Eclipse PDT e estão artigos desse tipo em português.

t+

[3] Comentário enviado por wilbil em 03/05/2008 - 12:04h

cara vc esta de parabéns sempre estive atraz de uma solução desta para php vou instalar aqui para testar e ja comento

abraco muito obrigado

[4] Comentário enviado por felipebastosweb em 19/02/2009 - 15:38h

acabei de instalar o Eclipse PDT e estou tentando configurar os Executáveis PHP que realmente está em /usr/bin/php mas na hora de executar, sempre diz que não foi localizado.

o que fazer ?

[5] Comentário enviado por felipebastosweb em 19/02/2009 - 15:58h

opa, achei este artigo, 1/2 antigo, mas que mostrou o que tava faltando configurar
http://blog.diovani.com/2008/08/10/configurando-eclipse-pdt-xdebug/

[6] Comentário enviado por sampaioprimo em 13/03/2009 - 13:45h

opa, parabéns pelo artigo. gostaria apenas de observar que no meu ambiente (ubuntu 8.10, apache2, php5) colocar comentários dentro do arquivo de configuração do xdebug não funciona. ele passa a ignorar a linha que tem um comentário. abraços, rodrigo.

[7] Comentário enviado por xploitx em 05/11/2009 - 04:32h

Muito obrigado, nota 10 e favoritado.

[8] Comentário enviado por jonathan bispo em 01/01/2011 - 19:14h

Por favor, eu preciso de ajuda. Já fiz tudo o que foi dito, configurei tudo mas não consigo debugar minhas aplicações.

Tentei um simples:

<?php
$a = 1;
echo $a;
?>

Consigo ver o valor na tela do navegador mas meus breakpoints não funcionam. As variáveis não aparecem.

Já li pelo menos três tutoriais sobre como configurar o PDT com XDEBUG mas não consigo fazer os breakpoints funcionarem.

Agradeço a quem puder me sugerir uma solução.

Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts