php - mac - Xdebug ignora los puntos de ruptura
xdebug php info (9)
Actualmente estoy intentando que Xdebug trabaje en nuestro servidor de desarrollo. Como cliente estoy usando netbeans y la conexión funciona hasta ahora sin problemas. Pero cuando trato de establecer un punto de interrupción dentro de netbeans, simplemente se ignora.
Y sí, ya he buscado en Google durante horas y también he encontrado algunas preguntas aquí que se adaptan perfectamente a mi descripción: SO 1 SO 2
Pero esto no parece resolverlo por mí. El módulo Xdebug
se carga a través de zend_extension = ruta / a / xdebug. así que en el
/etc/php5/conf.d/xdebug.ini
También miré php5 / apache y php5 / cli php.ini para asegurarme de que no esté cargado con extensión = en algún lugar allí. También revisé los "archivos .ini adicionales analizados" encontrados por phpinfo () y parece que no están cargados en ningún otro lugar.
Al ejecutar php -m puedo ver el módulo Xdebug cargado en
[PHP Modules]
y en
[Zend Modules]
¿No está seguro si esto indica que todavía está cargado dos veces o si está bien así? Aún así, si zend_extension=/path/to/xdebug.so
de conf.d/xdebug.ini
tampoco estará cargado. Así que realmente asumo que solo se carga allí.
Si configuro la opción remote_log es ver que Netbeans
está intentando configurar algo:
<- breakpoint_set -i 452 -t line -s enabled
-f file:///http:/development.xxx.de/users/itsame/index.php -n 15
-> <response xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set"
transaction_id="452" state="enabled" id="258870001">
</response>
Pero parece que no tiene ningún efecto (se parece mucho a lo mismo que en las otras SO preguntas que he publicado anteriormente. Pero si hago un manual xdebug_break () dentro del código php, lo maneja correctamente.
La versión de PHP es 5.2.6 y Xdebug es 2.1. ¿Alguna sugerencia donde pueda echar un vistazo a continuación?
En su archivo php.ini, establezca esta directiva:
report_zend_debug = 1
Espero que esto ayude a alguien?
La pregunta mencionó que el archivo xdebug.ini existe, pero no informa su contenido. El archivo de mi instalación por defecto solo incluía:
zend_extension=/usr/lib/php5/20100525/xdebug.so
Pero para que la depuración ocurra realmente, debe estar habilitada. Añade esta línea:
xdebug.remote_enable=1
Entonces phpinfo()
reportará un xdebug en funcionamiento:
Me encontré con esta publicación tratando de resolver mi problema xdebug en eclipse, sin romper los puntos de ruptura de una aplicación web. He encontrado los comentarios aquí muy útiles. Además, esta publicación http://www.devside.net/wamp-server/netbeans-waiting-for-connection-netbeans-xdebug-issue fue muy útil para resolver mi problema. Solo tuve que establecer la siguiente bandera en mi php.ini relevante.
xdebug.remote_enable = 1
xdebug esperaría continuamente en la sesión, pero después de configurar el control remoto de depuración marca el problema de espera de la sesión, el punto de ruptura y el archivo de registro de xdebug que había definido también comenzaron a registrar transacciones.
Otra solución posible, la única que funcionó para mí, después de haber probado todo en este post y en muchos otros ...
Estoy depurando un proyecto PHP a través de XDEBUG en Eclipse Neon en Windows. La fuente es Linux remoto, montado localmente como un disco a través de SFTP. Probablemente es mi culpa que esto no esté configurado correctamente ...
En Eclipse, haga clic derecho en su proyecto, luego seleccione Configure
y luego Add PHP Support
. Inmediatamente, la indexación DLTK comenzó; antes de eso no comenzaría sin importar qué.
Luego tuve que abrir mi fuente y establecer los puntos de interrupción a través de Remote File Explorer. Espero que esto ayude a alguien.
Para mí, el problema fue que "Propiedades del proyecto> Fuente> Raíz web:" no se estableció (tenía un valor predeterminado "como su valor).
Después de configurarlo como mi raíz web en el disco, los puntos de interrupción comenzaron a funcionar.
Parece que hay algo mal con la ruta del archivo que contiene el punto de interrupción.
<- breakpoint_set -i 452 -t line -s enabled
-f file:///http:/development.xxx.de/users/itsame/index.php -n 15 ->
He tenido un problema similar con Eclipse. Solo se aceptaron mis puntos de interrupción en el archivo de índice y se ignoraron los puntos de interrupción en otros archivos que se incluyeron en el índice.
Busqué en el archivo remote_log y vi lo siguiente:
<- breakpoint_set -i 260 -t line
-f file:///~jeroen/workspace/fieg/wp-content/plugins/fieg/fieg.php -n 22->
<response xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set"
transaction_id="260" id="48060002"></response>
Me di cuenta de que el camino para el punto de ruptura estaba mal. Resultó que tenía que configurar Port Mapping en Eclipse. Después de establecer la asignación correcta, los puntos de interrupción comenzaron a funcionar. También mi remote_log ahora muestra la ruta correcta:
<- breakpoint_set -i 333 -t line
-f file:///Users/jeroen/Workspace/fieg/wp-content/plugins/fieg/fieg.php -n 12->
<response xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set"
transaction_id="333" id="48080005"></response>
No estoy seguro de si hay un equivalente de la configuración de Asignación de puertos Eclipse en Netbeans, pero espero que te haya indicado la dirección correcta.
Resuelto Al crear un nuevo proyecto en NetBeans, primero configuré la carpeta raíz del proyecto en la carpeta de temas de WordPress de mi sitio de WordPress. Entonces, en lugar de eso, creé un nuevo proyecto cuya raíz era la raíz de todo el sitio de WordPress en lugar de solo su tema, y los puntos de interrupción comenzaron a funcionar. ¡Woohoo!
Tuve el mismo problema: los puntos de interrupción de Eclipse no funcionaron, xdebug_break () funcionó. Mi problema eran los espacios en el camino:
<- breakpoint_set -i 1323 -t line -f file:///Users/admin/Documents/projects/something/path%2520with%2520space/web/index.php -n 223
->
<response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1323" id="385680235"></response>
Después de cambiar la ruta a algo sin espacios, los puntos de interrupción en Eclipse funcionaron bien.
Vaya a: Project > Properties > Run Configuration > Advanced (button)
Elimine todas las asignaciones de la "Asignación de ruta" si no está utilizando Xdebug para la depuración remota. Esto ayudaría a solucionar este problema.