Main Menu
Home
Links
Artigos
Dicas
Fotos
Carros
Mapa
Login Form





Lost Password?
Syndicate
Debugando PHP com Eclipse (PDT) e Xdebug PDF Print E-mail
Um dos grandes problemas que os programadores PHP têm é a falta de um debugger profissional como os desenvolvedor Java, VB e outras linguagens têm. Isso se deve a falta de uma IDE totalmente integrada.
 
Depois que a Zend se juntou a fundação Eclipse as coisas melhoraram. Hoje temos um ambiente de desenvolvimento bem integrado para PHP, este é o PDT (PHP Development Tool).  A ferramenta já chegou na sua versão 1.0 e está bem estável.
 
Voltando ao debug, se juntarmos a força do Eclipse + o Xdebug, podemos ter um debugger profissional que não deve nada para os debuggers de outras linguagens. Neste tutorial, vamos aprender a instalar e configurar o ambiente.
 
Neste tutorial estamos usando os seguintes softwares:
  • Ubuntu 7.10
  • Apache 2.0
  • PHP 5.3
  • Xdebug 2.0.2
  • Eclipse PDT 1.0.2
 
Lembrando que podemos usar outras versões de software apresentados aqui.
 
Agora mãos na massa. 
 
Nosso primeiro passo é instalar as ferramentas adequadas.
 

1.1 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


1.2 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.

1.2.1 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.


1.2.2 Instalando o Xdebug manualmente



Caso a instalação automática falhe, é possível fazer manualmente. Para isso, basta seguir os seguintes passos:

  1. baixar os fontes em tgz (source) do xdebug: http://xdebug.org/

  2. explodir o arquivo baixado: tar zxvf xdebug-versao.tgz

  3. entrar no diretório criado e executar o comando phpize

  4. executar ./configure

  5. executar make

  6. executar make install



1.3 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.


2 - Configurando Eclipse PDT


O Eclipse PDT já conta com uma Debug específico para PHP, mas para que ele funcione precisamos fazer algumas configurações.


2.1 – Adicionando Executáveis PHP


Sample Image


No menu Window->Preferences ache a entrada PHP Executables, lá devemos adicionar o caminho onde estão nossos executáveis. No nosso caso está em /usr/bin/php e escolhemos como debugger o Xdebug


2.2 – Configurando o Debug

É importante lembrar que devemos dizer para o debugger do Eclipse em qual porta “escutaremos” o xdebug. Esta porta deve ser a mesma daquela que indicamos no arquivo xdebug.ini. No nosso caso 9100


Sample Image



2.3 – Adicionando um ambiente de Debug


Agora que já temos configurado o executável do PHP, indicamos a porta do Xdebug, é hora de adicionar um servidor ao Debug do Projeto.


Clicando no menu Run, vamos até a opção “Open Debug Dialog”. Lá há uma opção chamada PHP Web Page, proceda com os seguintes passos:

  • Duplo clique sobre o PHP Web Page. Isso fará que uma nova configuração seja criada, o nome padrão é “New_Configuration”

  • Modifique o Debug Server para Xdebug

  • Indique qual arquivo será usado para o debug (ele será o ponto de partida, não necessáriamente precisa ser debug. Deve ser uma página que tem links para os outros scripts ou faz chamadas para eles).

  • Diga qual URL o browser deve abrir para inicializar a sessão. Muito Importante: Quem deve inicializar esta sessão é o Eclipse. Não adianta abrir o browser e digitar o endereço que você quer debugar, nada vai acontecer.


Sample Image



2.4 – Adicionando um browser ao Eclipse


O Eclipse conta com um browser interno, porém para um melhor controle, o ideal é usar um browser externo, podem ser qualquer um que esteja instalado na máquina.

Para isso basta ir em “Window->Preferences->General->Web Browser”:

Sample Image


3 - Inicializando o Debugger


Na barra de ferramentas do Eclipse, há um botão que inicializa o Debugger, por acaso este botão tem um inseto nele.



botoes de atalhos xdebug eclipse



Quando este botão for clicado uma nova janela ou abra do browser será aberta e lá você poderá navegar até o script que você quer debugar. No momento em que você chegar ao script que tem um breakpoint será aberta a visão do PHP Debug.


Ao iniciar o debug, você verá que uma nova janela ou aba (dependendo do browser) será aberta, com a URL mais ou menos assim:
http://meusite/pagina_que_indiquei_como_inicio.php?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=12064647002702


Usando esta janela ou aba aberta, você poderá navegar pelo seu sistema, até chegar nos breakpoints que você indicou.

3.1 - Visão geral do PHP Debug


Uma vez inicializado, podemos acompanhar a execução do script, no Eclipse há uma visão específica para isso, chama-se “PHP Debug” . Esta visão é composta por alguns elementos:

Visão Debug ECLIPSE PDT


Durante a execução do script, nós podemos adicionar ou remover break-points. Há uma aba chamada “Breakpoints” onde estão indicados todos os breaks do nosso projeto.


3.2 Atalhos



Uma coisa muito útil é saber usar os atalhos do Eclipse PDT na visão Debug. Aqui vão os que eu considero os mais imporantes:

F5 -> Step Into (entrar em alguma rotina, método, classe)

F6 -> Próximo passo

F7 -> Executa até o fim

F8 -> Continuar até acabar

F9 -> Reinicia o Debugger

F11 -> Inicia Debug

 

4 Referências

 

http://www.eltonminetto.net/xdebug.htm

http://www.starbowconsulting.com/blog/tao/setting-eclipse-pdt-and-xdebug

http://devzone.zend.com/article/2930-Debugging-PHP-applications-with-xdebug