Instalando e Configurando o XDebug
* Instalação
** Módulo pré-compilado
Adicionar a seguinte linha no php.ini (Windows):
————————————————————————-
zend_extension_ts=”c:/php/modules/php_xdebug-4.4.1-2.0.5.dll”
————————————————————————-
**PECL
Só funciona com a versão 0.9.1-dev do PEAR:
———————
$ pecl install xdebug
———————
É necessário também adicionar a seguinte linha no php.ini:
————————————————-
zend_extension=”/usr/local/php/modules/xdebug.so”
————————————————-
É recomendado ignorar qualquer dialogo pedindo o local da instalação do xdebug.
** Compilando
Compilar o xdebug separadamente do PHP. Para isso é necessário ter o phpize e o php-config. Caso não haja phpize ou php-config, é preciso
compilar e instalar o PHP antes. É importante que as versões
* Configurações
xdebug.default_enable – boolean – default: on
Se essa propriedade tem o valor on, a pilha de erros será mostrada quando ocorrerem tais eventos. É possível desabilitar a pilha de erros do codigo fonte
com xdebug_disable();
xdebug.max_nesting_level – integer – default: 100
controla o mecanismo de recursão para controle de recursão infinita. O valor dessa propriedade é o nível máximo de funções aninhadas que são permitidas antes de
script ser interrompido.
Funções relacionadas:
string xdebug_call_class()
Retorna o nome da classe da função apartir da qual a atual função foi chamada.
Exemplo:
1 2 3 4 5 6 7 8 9 | <?php function fix_string($a) { echo 'Chamada em: '; xdebug_call_file(). ':'. xdebug_call_line(). ' apartir de '. xdebug_call_function(); } $ret = fix_string(array('Teste')); ?> |
Retorna: Chamada em: /home/httpd/html/test/xdebug_caller.php : 12 apartir de {main}
string xdebug_call_file()
Essa função retorna o nome do arquivo que contém a função/método que chamou a atual função/método.
string xdebug_call_function()
Essa função retorna o nome da função/método no qual chamou a atual função/método;
int xdebug_call_line()
Essa função retorna o número da linha que contém a função/método que chamou a atual função/método.
void xdebug_disable()
Desabilita a exibição da pilha de erros.
void xdebug_enable()
Habilita a exibição da pilha de erros.
array xdebug_get_headers()
Retorna todos os cabeçalhos que são setados com a função header() do PHP, ou qualquer cabeçalho ajustado internamente no PHP (tal como setcookie()), como um array
Exemplo:
1 2 3 4 5 |
Retorna:
1 2 3 4 |
bool xdebug_is_enabled()
Retorna true quando a pilha de erros é exibida em caso de erros ou não.
int xdebug_memory_usage()
* Profiling
O profiler do Xdebug é uma poderosa ferramenta que oferece a habilidade de analizar o codigo PHP e determinar gargalos ou ver quais partes do codigo são lentas e poderiam usar
um acelerador. O profiling do Xdebug 2 gera informações de profile na forma de um arquivo
O profiling é habilitado ajustando a propriedade xdebug.profiler_enable para 1 no php.ini. Isso instrue o Xdebug a iniciar a escrita de informações de profile num diretório de dump
configurado na diretiva xdebug.profiler_output_dir. O nome dos arquivos gerados geralmente começam com “cachegrind.out.” e termina tanto com o PID (process id) do processo PHP ou Apache,
ou também com hash cr32 do diretório contendo o script inicialmente depurado. Tenha certeza de ter espaço sufuciente no seu xdebug.profiler_output_dir pois o montante de informações
geradas pelo profiler pode ser enorme para scripts complexos,
por exemplo até 500MB para uma aplicação complexa com o eZ
Publish.
** Analisando o profile
Depois de todas a informações de profiling terem sido geradas, elas
podem ser visualizadas no KCacheGrind.
Uma vez que o arquivo está aberto, diversas informações estarão
disponíveis nos diferentes painéis do KCacheGrind.
Configurações relacionadas
xdebug.profiler_append
Tipo: inteiro, valor padrão: 0
Quando ajustado em 1, arquivos de profile não serão sobrescritos
quando uma nova requisição mapear o mesmo arquivo.
xdebug.profiler_enable
Tipo: inteiro, valor padrão: 0
Habilita o profiler do Xdebug o qual cria arquivos no
diretorio de saida do profiler. Esses arquivos podem ser lidos
pelo KCacheGrind para visualizar seus dados. Essa propriedade não
pode ser ajustada no script php com ini_set()
xdebug.profiler_enable_trigger
Tipo: inteiro; Valor padrão: 0
Quando ajustado em 1, pode disparar a geração de arquivos de
profile usando o parâmetro XDEBUG_PROFILE GET/POST ou enviar
um cookie com o nome XDEBUG_PROFILE. Isto então escreverá
dados do profiler no diretório definido.
xdebug.profiler_output_dir
Tipo string; Valor padrão: /tmp
Diretório onde a saída do profile será escrita, tenha certeza
que o usuário que executa o PHP te permissões de escrita nesse
diretório. Essa propriedade não pode ser definida do script
PHP com ini_set().
xdebug.profiler_output_name
Tipo: string; Valor padrão: cachegrind.out.%p
Essa propriedade determina o nome do arquivo que é usado para
despejar rastros. Essa propriedade especifica o formato com os
especificadores de formato, muito similar ao sprintf() e
strftime(). Existem diversos especificadores de formato que
podem ser usados para formatar o nome do arquivo
Traduzido do site http://xdebug.org/docs/



Radig Soluções em TI