¿Puedo decir manualmente en xdebug profiler para comenzar a crear perfiles en un lugar específico?


Ya he habilitado el perfil de xDebug en mi instalación de XAMPP y funciona bien.

Ahora me gusta preguntar si hay una manera de decir desde mi código fuente cuándo comenzar a crear perfiles con xDebug.

Más específico, me gustaría crear un plugin de WordPress, y me gustaría decir, empezar a generar perfiles desde el punto de inicio del plugin y dejar de perfiles en el punto final de la conexión.

¿Es eso posible?

Nota: Lo anterior es solo un ejemplo. Puede ser un CakePHP plugin o una nueva clase PHP que puede necesitar para el perfil

Author: Cœur, 2011-11-10

2 answers

Edit: Per ¿Cómo Activar/Desactivar la Generación de Perfiles Xdebug en Tiempo de ejecución? en realidad no se puede habilitar/deshabilitar en tiempo de ejecución (por ejemplo, por llamada de función).

Puede activar selectivamente el generador de perfiles por solicitud, que generalmente es mejor. Para lograr este comportamiento establezca esos ajustes:

xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0

Tenga en cuenta que deshabilitamos el generador de perfiles y solo habilitamos el disparador. Desde su navegador pase XDEBUG_PROFILE = 1

http://example.com/file.php?XDEBUG_PROFILE=1

También puede pasar este parámetro en POST o COOKIE. Para más información consulte

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger
 49
Author: Laith Shadeed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:46:48

Como indica Laith, no puedes elegir cuándo quieres que xDebug comience a perfilar y cuándo quieres que se detenga. Pero, otra característica de xDebug ofrece este tipo de flexibilidad: trace.

Perfilar y rastrear no son exactamente las mismas cosas, pero, si termina aquí, es posible que trace se adapte a su necesidad.

Para iniciar el rastreo, debe usar esta función: xdebug_start_trace()

Para detener el rastreo, debe usar esta función: xdebug_stop_trace()

Hay bastantes configuraciones puede usar para cambiar el comportamiento de trace:

Http://xdebug.org/docs/execution_trace

 3
Author: Tristan CHARBONNIER,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-17 18:19:43