46 votes

Donc, éclipse et xdebug entrent dans un bar, puis mon serveur Apache meurt

Je suis avec windows xp x86, wamp, apache 2, php 5.3 x86, eclipse, php, et xdebug, en cours d'exécution sur localhost à la fois comme un virtualhost et https virtualhost

eclipse version info
Eclipse pour les Développeurs PHP Version: Helios Libération Build id: 20100617-1415

J'avais réussi, en quelque sorte, le programme d'installation d'eclipse et de xdebug et tout allait bien.

Alors j'ai dû prendre une branche svn de mon projet, et de reconfigurer apache avec 2 nouveaux hôtes virtuels, et de mettre à jour mon hôte windows fichiers.

Maintenant lorsque je lance le mode debug dans eclipse, tout meurt.

Plus précisément, Si je mets pas de points d'arrêt l'app fonctionne très bien, sauf pour le problème, je vais essayer de déboguer en premier lieu.

Si j'ai mis un point d'arrêt, l'application s'arrête au point d'arrêt, et eclipse semble tenir le ballon. Mais maintenant, lorsque je clique sur continuer, ou une étape de plus, ou une étape dans, ou éternuez, eclipse me dit d'exécution a repris, mais l'application continue à se bloquer, et je dois redémarrer apache.

Je soupçonne qu'il ya une rupture dans la communication entre eclipse et xdebug, car il me semble que l'éclipse est de l'envoi de mon continuer ou pas sur commande, mais xdebug n'est pas le recevoir.

Mais même si c'est le cas, je ne sais pas quoi faire à ce sujet. Où dois-je regarder?

Mise à jour:
J'ai réussi à débogage à l'aide de notepad++, ses xdebug plugin, et, comme un homme des cavernes, taper &XDEBUG_SESSION_START=session_name dans l'url. Cependant, malgré mon amour pour les centrales nucléaires, ses debug plugin est assez buggé...

Alors j'ai remarqué une annonce sur stackoverflow pour quelque chose appelé "phpstorm", qui professaient être un léger mais complet ide php, natif de xdebug de soutien. La démo requis un redémarrage de l'obtenir pour fonctionner, et il donne l'impression de travailler sur un projet de table bancale, mais elle a réussi à déboguer à la fois ma petite application de test et l'application réelle de très bien, qui est plus que je peux dire pour eclipse pour le moment, même si c'est probablement de ma faute.

Je devrais probablement avoir posté plus tôt :/ Voici mon phpinfo() xdebug section

xdebug
xdebug support  enabled
Version     2.1.0

Supported protocols Revision
DBGp - Common DeBuGger Protocol     $Revision: 1.145 $

Directive   Local Value Master Value
xdebug.auto_trace   Off Off
xdebug.collect_assignments  Off Off
xdebug.collect_includes On  On
xdebug.collect_params   0   0
xdebug.collect_return   Off Off
xdebug.collect_vars Off Off
xdebug.default_enable   On  On
xdebug.dump.COOKIE  no value    no value
xdebug.dump.ENV no value    no value
xdebug.dump.FILES   no value    no value
xdebug.dump.GET no value    no value
xdebug.dump.POST    no value    no value
xdebug.dump.REQUEST no value    no value
xdebug.dump.SERVER  no value    no value
xdebug.dump.SESSION no value    no value
xdebug.dump_globals On  On
xdebug.dump_once    On  On
xdebug.dump_undefined   Off Off
xdebug.extended_info    On  On
xdebug.file_link_format no value    no value
xdebug.idekey   no value    no value
xdebug.manual_url   http://www.php.net  http://www.php.net
xdebug.max_nesting_level    100 100
xdebug.overload_var_dump    On  On
xdebug.profiler_aggregate   Off Off
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_output_dir  C:\xampp\tmp    C:\xampp\tmp
xdebug.profiler_output_name xdebug_profile.%p   xdebug_profile.%p
xdebug.remote_autostart Off Off
xdebug.remote_connect_back  Off Off
xdebug.remote_cookie_expire_time    3600    3600
xdebug.remote_enable    On  On
xdebug.remote_handler   dbgp    dbgp
xdebug.remote_host  localhost   localhost
xdebug.remote_log   c:\xampp\apache\logs\xdebug.log c:\xampp\apache\logs\xdebug.log
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.scream   Off Off
xdebug.show_exception_trace Off Off
xdebug.show_local_vars  Off Off
xdebug.show_mem_delta   Off Off
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir C:\xampp\tmp    C:\xampp\tmp
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.var_displ

 ay_max_children    128 128
 xdebug.var_display_max_data    512 512
 xdebug.var_display_max_depth   3   3

Voici un xdebug fichier journal de quand je reproduire le problème

Journal ouvert à 2011-01-03 08:56:22 ->

<- feature_set -i 33 -n show_hidden -v 1 ->

<- feature_set -i 34 -n max_depth -v 3 ->

<- feature_set -i 35 -n max_children -v 31 ->

<- feature_get -j'ai 36 -n encodage ->

<- feature_get -j'ai 37 -n supports_async ->

<- stdout -j'ai 38 -c 1 ->

<- stderr -i 39 -c 1 ->

<- breakpoint_set -i 40 -t line-f file:///C:%5Cxampp%5Chtdocs%5Clab%5Czf-tutorial%5Cpublic%5Cindex.php -n 21 ->

<- run-j'ai 41 ->

<- stack_get -i 42 ->

<- stack_get -je 43 ->

<- eval -j'ai 44 -- JHRoaXMtPmZpZWxkc1snYm9vbF9jb21wbgv0zsdd ->

< eval i 45 -- JHRoaXMtPnN0YWdlLT5nZXQoJ2Jvb2xfy29tcgxldgunkq== ->

<- eval -j'ai 46 -- JHRoaXMtPmZpZWxkc1snYm9vbF9jb21wbgv0zsdd ->

<- eval -i 47 -- JHRoaXMtPnN0YWdlLT5nZXQoJ2Jvb2xfy29tcgxldgunkq== ->

=== point d'arrêt atteint, l'exécution s'arrête. Dans eclipse, je clique sur "étape de plus"

<- step_over -i 48

=== fin de journal

2voto

Mark Storer Points 10182

Cet article semble prometteur.

Les deux XDebug et Eclipse (en php dev env) peuvent utiliser le DBGp protocole par l'apparence des choses. Basé sur cet article, vous pourriez être en mesure d'obtenir les choses de travail par jouer avec Apache .fichier htaccess[s], ou par l'exécution d'un DBGp proxy (quelle qu'elle soit). Plus de détails dans l'article.

Je soupçonne les deux XDebug et Eclipse se connectent à la même PHP session de débogage, de marcher sur l'un des autres orteils, provoquant l'Hilarité de s'Ensuivre.

Que les ou "un comportement non défini". De toute façon.

2voto

Matt Points 2134

wooooooooooooo

https://bugs.eclipse.org/bugs/show_bug.cgi?id=312951#c8

Créer un nouvel espace de travail me permet de déboguer avec succès.

À l'heure actuelle, je suppose que deux projets se trouvent dans le même espace de travail avec des hôtes virtuels différents sur la même adresse IP.

Donc, je ne vais plus faire ça.

1voto

Michael Henretty Points 116

Cela peut sembler une question stupide, et je m'en excuse si oui, mais avez-vous créer un nouveau Serveur PHP à l'intérieur de votre Eclipse Debug Configuration qui correspond à votre nouvel hôte virtuel?

Chaque fois que je créer un nouveau vhost, j'ai l'habitude de créer une toute nouvelle Configuration de Débogage et un nouveau Serveur PHP à l'intérieur de cette configuration qui correspond à la vhost, de sorte que je peux facilement sélectionner à partir de la Debug Configs déroulant lors du lancement d'une nouvelle session.

Pour quelqu'un de se demander, je le faire en allant à Exécuter->"Debug Configurations...", sélectionnez "Web PHP de la Page" dans le menu sur la gauche, cliquez sur nouveau+ (ou double, si j'en ai déjà un), puis sous l'onglet Serveur, là où il est écrit "PHP Serveur", je clique sur "Nouveau" puis tapez l'URL du serveur virtuel pour la racine du document.

1voto

Raffael Points 5837

À l'heure actuelle, je suppose que deux projets se trouvent dans le même espace de travail avec des hôtes virtuels différents sur la même adresse IP.

Eh bien, je débogue également deux projets, dans le même espace de travail Eclipse, avec différents hôtes virtuels utilisant la même adresse IP et utilisant apache.

Et je n'éprouve pas vos problèmes.

Bien que mon apache et son contenu se trouvent dans une émulation vmware de Debian et que mon Eclipse réside dans WinXP.

Meilleur

Raffael

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X