web-dev-qa-db-fra.com

Xdebug a cessé de fonctionner, où puis-je rechercher les erreurs?

J'ai installé Xdebug et tout allait bien, jusqu'à ce que ça cesse de fonctionner. phpinfo () donne une sortie Nice XDebug avec toutes les variables. 

php -m | grep deb

donne également deux fois XDebug (pour Zend et PHP), donc encore une fois, ça va. Mon php.ini a ces lignes: 

zend_extension=/usr/lib/php5/20090626/xdebug.so
;extension=xdebug.so
xdebug.remote_Host=localhost
xdebug.remote_enable=on
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1

Et pourtant, lors de l'exécution de ce code avec devrait vérifier XDebug (des documents Netbeans), il est juste bloqué. Donc, non IDE fonctionne avec XDebug. 

<?php
$address = '127.0.0.1';
$port = 9001;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);

De plus, selon l'installation de XDebug, j'ai parcouru deux fois les étapes. Quel est le problème avec ma config? Merci.

27
valk

À la fin, il ne reste plus que deux solutions: réinstaller le système d’exploitation Ubuntu ou installer un nouveau VM, en particulier pour xdebug, la deuxième option est la suivante ... le "RTM" (f = freaking). Une chose que je ne pouvais pas comprendre, c'est comment lire les journaux de XDebug afin de comprendre où se situe le véritable problème.

METTRE À JOUR

Après quelques difficultés, j'ai supprimé chaque ligne liée à xdebug de chaque fichier php.ini que j'avais. Et déplacé ces lignes vers /etc/php5/conf.d/xdebug.ini. Apache redémarré, puis PHPStorm, et cela fonctionne. P.S. au milieu, j'ai essayé d'installer xdebug avec pecl, depuis github et la version standard d'Ubuntu. Je pense que celui que j'ai compilé fonctionne actuellement. Et .. le journal est mis à jour également.

;xdebug configuration
zend_extension = /usr/lib/php5/20090626/xdebug.so
xdebug.remote_Host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"
12
valk

Sur votre serveur, essayez cette commande:

$ netstat -anp | grep CLOSE_WAIT

Toute: 9 000 entrées vous donneront des problèmes XDebug; considérez kill -9 <pid>.

8
Derek Illchuk

J'ai eu ce problème aussi sur Ubuntu après la mise à jour de php. Pour moi, activer les erreurs html dans php.ini a permis à xdebug with Netbeans de fonctionner à nouveau ...

Sudo vi /etc/php5/Apache2/php.ini
display_errors = On
html_errors = On

Et redémarrez Apache:

Sudo /etc/init.d/Apache2 restart

http://ubuntuforums.org/showpost.php?p=9592364&postcount=14

2
Michael Gorham

J'ai vérifié mon 

netstat -anp

sortie et a découvert qu'il y avait un nombre de sockets ouverts (dans la plage de ports XDebug) par processus maître sur ma machine distante [exécutant xDebug].

Tuer le processus "maître" a résolu le problème pour moi.

Semblait être pour moi une situation de débordement de ports ... Je pensais que cette information pourrait être utile à certains.

1
Siddharth Tyagi

vérifier que le port n'est pas occupé, que netbeans est configuré pour écouter ce port (je vois que vous avez 9001, la valeur par défaut est généralement) également lorsque je débogue avec Eclipse, je dois "terminer et relancer" la session de débogage de temps en temps car cesse de fonctionner, jamais compris pourquoi, je soupçonne une sorte de session de débogage expirée

0
max4ever

Vérifiez que vous mettez des points d'arrêt dans le bon fichier. Trouver le premier fichier où le script entre (contrôleur frontal). Sur symfony, il peut y en avoir plusieurs par exemple.

0
Darius.V