Étape par étape: comment faire pour résoudre les problèmes de connexion à Xdebug client IDE

BACKGROUND

utilisant Xdebug avec PHP et Komodo IDE, et Eclipse PDT.

Xdebug est installé sur le serveur et fonctionne correctement. Ceci est confirmé parce que les commandes de code Xdebug fonctionnent comme prévu lorsqu'elles sont insérées dans des fichiers PHP sur le serveur.

problème

Se connecter au poste client ne fonctionne pas, et il est difficile de déterminez pourquoi parce qu'il échoue avec plusieurs Eid.

QUESTION

ce serait bien d'avoir une liste de contrôle étape par étape pour résoudre le cas où vous savez que Xdebug est installé et fonctionne sur le serveur, mais que le client ne se connecte pas.

est-ce que quelqu'un peut aider à ajouter à cela pour faire une liste de vérification de dépannage complète?

en particulier, y a - t-il un moyen de s'assurer le trafic réseau est d'atteindre le client, et est correctement formatée pour l'IDE s'attend à voir les données?

  • SSH sur le web à l'hôte et essayez d'atteindre le client:

    • l'hôte peut-il atteindre le client? (ping-c 5 xxx.xxx.xxx.xxx )
    • peut-il atteindre le port 9000? (nmap-p 9000 xxx.xxx.xxx.xxx)
    • si les deux ci-dessus réussissent, quel devrait être le résultat?
    • si les deux précédents échouent, Quelle est la prochaine étape de dépannage?
  • Vérifier les paramètres de pare-feu logiciel sur le client

  • Vérifier les paramètres de iptables sous linux host
  • Vérifier le pare-feu matériel b/t client et l'hôte

OBJECTIF

le but est de trouver une solution la personne sur la machine client peut au moins confirmer que quelque chose atteint le client sans avoir à déterminer si L'IDE est le problème, puisque L'IDE est un autre niveau de complexité qui peut introduire des problèmes.

25
demandé sur dreftymac 2012-02-17 19:04:13

4 réponses

C'est quelque chose que je voudrais certainement inclure dans la documentation de Xdebug. Je pense que cela fonctionnerait mieux si beaucoup de gens collaboraient là-dessus, donc j'ai créé un fichier dans le xdebug.org dépôt GitHub ( ) https://github.com/derickr/xdebug.org/blob/master/html/docs/tutorials/troubleshooting.rest ) pour collecter des pourboires. Hésitez pas à fourche et de l'étendre!

du côté de Xdebug, dans la prochaine version (2.2) il dumps déjà dans son xdebug.remote_log fichier quelques diagnostics supplémentaires, par exemple s'il a essayé de se connecter et si la connexion a été acceptée ou refusée.

13
répondu Derick 2016-11-01 13:23:45

vous pouvez utiliser l'utilitaire debugclient pour déterminer si le client peut recevoir des connexions Xdebug, comme vous pouvez le lire dans la documentation Xdebug :

avant de commencer votre script, vous devrez dire à votre client qu'il peut recevoir de débogage connexions, reportez-vous à la documentation de le client spécifique sur la façon de le faire. Pour utiliser le client groupé simplement démarrez après la compilation et l'installation. Vous pouvez commencer par en cours d'exécution "debugclient". Si vous voulez utiliser le commandset GDB pour déboguer vos scripts, assurez-vous que vous utilisez un debugclient tel que fourni avec Xdebug 1.3 comme celui fourni avec Xdebug 2 ne fonctionne qu'avec le jeu de commandes DBGp. Lorsque le débugclient commence, il affiche les informations suivantes et puis attend qu'une connexion soit initialisée par le serveur de débogage:

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

Après une connexion, la sortie du serveur de débogage s'affiche:

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)

vous pouvez trouver plus d'informations sur le protocole d'initialisation de Xdebug 2 ici .

Une autre référence: Howto vérifier l'installation de xdebug .

Malheureusement, l'utilitaire debugclient n'est fourni que sous forme de source, donc vous devez construire vous-même l'exécutable; cela peut être fait soit sur Linux (voir installer ) et Windows (avec Visual Studio - voir debugclient.dsp ).

XAMPP inclut une version compilée dans xampp/php/debugclient.exe .

10
répondu 2013-02-03 22:00:32

Netbeans dispose d'une documentation très complète qui couvre également la façon de résoudre de tels problèmes:

http://wiki.netbeans.org/HowToConfigureXDebug

5
répondu Bastien Jansen 2013-01-24 14:07:21
Les utilisateurs de Windows

désactivent votre pare-feu et réessayent. Si cela fonctionne, autorisez Java (TM) plate-forme se binaire par pare-feu puis activez-le à nouveau. Il fonctionne très bien!

Merci pour les commandes, elles ont été très utiles sur le débogage.

5
répondu Daniel Iancu 2014-12-14 21:56:39