Pregunta El perfilado de xdebug desde la línea de comando no funciona


Cuando intento ejecutar perfiles xdebug (desde la línea de comandos), el script muere inmediatamente. No recibo ningún comentario. (Si ejecuto el script con el perfil xdebug desactivado, entonces el script funciona exactamente como lo esperaría). Estoy ejecutando php 5.4.13 en Centos 6.

He intentado dos formas diferentes de habilitar el perfilado: editar php.ini y usar el indicador -d cuando ejecuto el script.

La parte relevante de mi php.ini se ve así:

[xdebug]
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable = 1
xdebug.default_enable = 0
xdebug.profiler_output_dir = "/tmp/profiling"
# xdebug.profiler_enable = 1  # I uncomment this line to try to profile my script

Llamo al script usando uno de estos dos comandos (y me aseguro de que la línea del archivo ini esté comentada (o no) según corresponda).

$> /usr/bin/php scripts/daemon/PostProcess.php -c 4

o

$> /usr/bin/php -d xdebug.profiler_enable=1 scripts/daemon/PostProcess.php -c 4

Estoy seguro de que la configuración se interpreta correctamente.

$> php -d xdebug.profiler_enable=1 --info | grep profile | less

xdebug.profiler_aggregate => Off => Off
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => On => On
xdebug.profiler_enable_trigger => Off => Off
xdebug.profiler_output_dir => /tmp/profiling => /tmp/profiling
xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p

xdebug funciona correctamente para la depuración. El siguiente comando funciona bien:

$> /usr/bin/php -d xdebug.remote_autostart=On -d xdebug.remote_host=A.B.C.D scripts/daemon/PostProcess.php -c 4

¿Algunas ideas?


8
2017-07-31 21:04


origen


Respuestas:


Intente ejecutar el script con -ddisplay_errors = 1 para forzar la visualización de los errores de PHP. Ejemplo:

/usr/bin/php -ddisplay_errors=1 -d xdebug.profiler_enable=1 scripts/daemon/PostProcess.php -c 4

En general, cuando tengo el problema que describió, tengo un error en mi código y display_errors está desactivado de manera predeterminada para evitar que se filtren detalles confidenciales en un mensaje de error. Por lo tanto, el mensaje con el error está oculto. Vea si esto le da información para corregir el problema.


0
2017-09-12 23:26