7
votes

Xdebug se connecte avec succès aux clients DBGP, mais ne s'arrête pas aux points d'arrêt

J'ai xdebug 2.1 installé et fonctionnant avec PHP 5.2.13. Il peut se connecter avec succès à plusieurs clients DBGP (c'est-à-dire le xdebug.remote_log code> indique la communication d'avant en arrière et les clients eux-mêmes montrent également la connexion entrante), mais cela ne s'arrête pas aux points d'arrêt. J'ai essayé Netbeans , macgdbp ainsi que la ligne de commande débogclient code> groupé avec xdebug.

Un échange typique ressemble à: p> xxx pré>

NetBeans tente de définir des points d'arrêt, et ceux-ci sont reconnus par XDebug: P>

<- breakpoint_set -i 7 -t line -s enabled -f file:///mnt/hgfs/htdocs/mycompany/index.php -n 9
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" state="enabled" id="139360004"></response>


0 commentaires

6 Réponses :


11
votes

Ceci semble se produire si vous avez xdebug chargé comme une extension (c.-à-d. extension = xdebug.so ) dans la configuration PHP au lieu d'un zend_extension < / code> (c.-à-d. zend_extension = / usr / lib / php5 / 20060613 + lfs / xdebug.so ).

Assurez-vous de ne pas avoir de Extension = xdebug.so Ligne n'importe où dans votre configuration php , même si vous êtes Assez sûr que vous utilisez zend_extension . Par exemple, si vous avez zend_extension dans /etc/php5/conf.d/xdebug.ini , cela pourrait bien être remplacé par un "code> extension dans /etc/php5/apache2/php.ini . Si tel est le cas, rien ne se plaindre, et phpinfo () signaler volontiers que xdebug est chargé! (Xdebug 2.1 émet un petit avertissement dans phpinfo () lorsqu'il est chargé comme une extension, mais les versions précédentes ne font rien.)


2 commentaires

Wow, cela m'a vraiment sauvé après avoir obtenu un comportement étrange configurant le débogage à distance avec MacGDBP. Je pouvais voir que les connexions ont été réussies dans le xdebug.remote_log et que le client recevait des connexions, mais les connexions ont été rapidement supprimées. Il n'y avait pas de sortie dans le client non plus. Changé "extension = xdebug.so" comme vous l'avez suggéré et que tout fonctionne tout fonctionne magnifiquement.


Vous monsieur fait ma journée. Si je pouvais, je voudrais éteindre mille fois.



0
votes

Vous devez ajouter le chemin complet au fichier xdebug.so , même lorsqu'il est placé dans le dossier php / modules / dossier, comme zend_extension ne regarde pas dans ce dossier par défaut.

Si vous avez un Exension = xdebug.so ligne, xdebug va charger mais il ne s'arrêtera pas aux points d'arrêt (me bat pourquoi).

Suppression de tous Exension = xdeaubug.so (même du fichier INI CLI, qui charge également) et d'ajouter le zend_extension résoudra le problème.


2 commentaires

Cela recommence à répéter tout ce qui est dit par @MJS ... une réponse à une question de 2 ans devrait être meilleure que cela.


Je clarifiais simplement que vous devez utiliser tout le chemin complet, dit-il "Zend_extension = / USR / Lib / PHP5 / 200613 + LFS / XDEBUG.SO" mais j'ai supposé qu'il a utilisé ce chemin parce qu'il avait une version compilée là-bas ou autre, comme Je mets le xdebug.so dans le dossier PHP / Modules, je n'ai pas mis le chemin complet (comme vous le faites avec la directive "extension") et que cela n'a pas fonctionné.



0
votes

Si les fichiers PHP sont placés dans un dossier symbolique, XDebug fonctionnera avec le chemin du dossier source au lieu de la cheminée du dossier symbolique!

Pour activer les points d'arrêt, vous devez configurer les mappages de chemin dans votre IDE pour les dossiers et les fichiers symboliques


0 commentaires

0
votes

Je sais que cela a été répondu mais je suis tombé sur le même problème que je veux simplement offrir ma réponse si quelqu'un d'autre fonctionne à travers cela. J'ai accidentellement manqué une valeur de cas dans mes chemins qui m'a toujours permis de se connecter et de gérer le débogueur, mais cela ne s'arrêterait pas à mes points d'arrêt. Je ne l'ai pas réalisé jusqu'à grande frustration, je veux juste que les gens sachent que cela pourrait également être une possibilité.


0 commentaires

0
votes

Dans mon cas, Eclipse ne peut pas récupérer les informations de débogage, alors activez le journal XDebug et vérifier la réponse, renvoyée. sans Plus d'infos.

Correction consiste à modifier la configuration de débogage xxx

in /usr/local/etc/php/5.6/php.ini

espère que cela aide


1 commentaires

Hey, je reçois aussi la même chose dans les journaux de xdebug. Mais votre solution ne fonctionne pas pour moi. J'utilise NetBeans et le code est dans Remotehost Cent OS 7. Toute aide serait appréciée.



2
votes

J'ai eu ce problème sur le conteneur Docker sur Windows. Tout semblait correctement configuré, PHPSTorm écoutant correctement sur le port local 9000 sur 127.0.0.1. phpinfo () affiché le xdebug.so en cours d'exécution. Lorsque j'exécute le script à partir du navigateur Web, Le débogueur n'a pas pu arrêter sur le breakopint fort>. Le xdebug.log contenait ceci:

Log opened at 2019-07-02 08:17:10
I: Connecting to configured address/port: docker.for.mac.localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///app/www/index.php" language="PHP" xdebug:language_version="7.2.15" protocol_version="1.0" appid="38768" idekey="PHPSTORM"><engine version="2.6.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2018 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2019-07-02 08:17:10 


1 commentaires

Enfin!!! Après des jours d'essayer de comprendre la question! Mon problème était que j'avais xdebug.discover_client_host activé et je n'ai pas spécifié xdebug.client_host. J'ai désactivé découverte_client_host et définir client_host = hôte.docker.internal.