ver valor how form depurar debuggear debug con como php ide network-programming xdebug

php - valor - Paso a paso: cómo hacer la conexión de solución de problemas de Xdebug al IDE del cliente



xdebug generator (4)

Esto es algo que definitivamente me gustaría incluir en la documentación de Xdebug. Creo que sería mejor que mucha gente colaborara en esto, así que he creado un archivo en el repositorio github de xdebug.org ( github.com/derickr/xdebug.org/blob/master/html/docs/tutorials/… ) para recopilar consejos. Siéntase libre de bifurcar y extender!

En el lado de Xdebug, en la próxima versión (2.2) ya se vuelca en su archivo xdebug.remote_log un par de diagnósticos adicionales, como si intentó conectarse y si la conexión fue aceptada o rechazada.

FONDO

Usando Xdebug con PHP y Komodo IDE, y Eclipse PDT.

Xdebug está instalado en el servidor y funciona correctamente. Esto se confirma porque los comandos de código de Xdebug funcionan como se espera cuando se insertan en archivos PHP en el servidor.

PROBLEMA

Conectarse a la estación de trabajo cliente no funciona y es difícil determinar por qué falla con varios IDE.

PREGUNTA

Sería bueno tener una lista de verificación paso a paso para solucionar el caso en el que sabe que Xdebug está instalado y trabajando en el servidor, pero el cliente no se conecta.

¿Alguien puede ayudar a agregar a esto para hacer una lista de verificación de solución de problemas completa?

Específicamente, ¿hay alguna manera de asegurarse de que el tráfico de la red llegue al cliente y esté correctamente formateado de la manera en que el IDE espera ver los datos?

  • SSH en el servidor web y tratar de llegar al cliente:

    • ¿Puede el host llegar al cliente? (ping -c 5 xxx.xxx.xxx.xxx)
    • ¿Puede el host llegar al puerto 9000? (nmap -p 9000 xxx.xxx.xxx.xxx)
    • Si los dos anteriores tienen éxito, ¿cuál debería ser la salida?
    • Si los dos anteriores fallan, ¿cuál es el siguiente paso para la solución de problemas?
  • Verifique la configuración del firewall basado en software en el cliente

  • Verifique la configuración de iptables en linux host
  • Verifique el servidor de seguridad del hardware b / t cliente y host

GOL

El objetivo es encontrar alguna solución donde la persona en la máquina cliente pueda al menos confirmar que algo está llegando al cliente sin tener que determinar si el IDE es el problema, ya que IDE es otro nivel de complejidad que puede estar introduciendo problemas.


Los usuarios de Windows deshabilitan su firewall y luego lo intentan de nuevo. Si funciona, permita el binario de Java (TM) Platform SE a través del firewall y luego habilítelo nuevamente. ¡Funcionará bien!

Gracias por los comandos, fueron muy útiles para la depuración.



Puede usar la utilidad debugclient para determinar si el cliente puede recibir conexiones Xdebug, como puede leer en la documentación de Xdebug :

Antes de comenzar su secuencia de comandos, deberá informar a su cliente que puede recibir conexiones de depuración, consulte la documentación del cliente específico sobre cómo hacerlo. Para utilizar el cliente empaquetado, simplemente inícielo después de compilarlo e instalarlo. Puedes iniciarlo ejecutando "debugclient". Si desea utilizar el conjunto de comandos GDB para depurar sus scripts, asegúrese de usar un debugclient como paquete con Xdebug 1.3 ya que el paquete con Xdebug 2 solo funciona con el conjunto de comandos DBGp. Cuando se inicie el debugclient, mostrará la siguiente información y luego esperará hasta que el servidor de depuración inicie una conexión:

Xdebug Simple DBGp client (0.10.0) Copyright 2002-2007 by Derick Rethans. - libedit support: enabled Waiting for debug server to connect.

Después de realizar una conexión, se muestra la salida del servidor de depuración:

Connect <?xml version="1.0" encoding="iso-8859-1"?> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///home/httpd/www.xdebug.org/html/docs/index.php" language="PHP" protocol_version="1.0" appid="13202" idekey="derick"> <engine version="2.0.0RC4-dev"><![CDATA[Xdebug]]></engine> <author><![CDATA[Derick Rethans]]></author> <url><![CDATA[http://xdebug.org]]></url> <copyright><![CDATA[Copyright (c) 2002-2007 by Derick Rethans]]></copyright> </init> (cmd)

Puede encontrar más información sobre el protocolo de inicialización de Xdebug 2 here .
Una referencia adicional: Cómo comprobar la instalación de xdebug .
Desafortunadamente, la utilidad debugclient se proporciona solo en forma de origen, por lo que debe crear el ejecutable por sí mismo; esto se puede hacer en Linux (ver INSTALL ) y Windows (con Visual Studio - ver debugclient.dsp ).
XAMPP incluye una versión compilada en xampp/php/debugclient.exe .