Ich versuche, eine PHP-Web-App aus der Ferne zu debuggen, aber jedes Mal, wenn ich versuche, eine Debug-Sitzung zu starten, überflutet mich Eclipse mit einer Reihe von Popups:
Debugger Error: "Keine geeignete Datei gefunden oder keine Datei ausgewählt. Debug beendet" .
Dies ist meine aktuelle Xdebug 2.2.1-Konfiguration:
%Vor%Dies ist meine Eclipse 4.2.1 Debug-Konfiguration:
Xdebug ist korrekt installiert, ich sehe es in phpinfo () Ausgabe aktiviert.
Ich habe versucht, Eclipse zu debuggen, um zu verstehen, was in meinem Mac OS X passiert.
Suchen Sie zuerst den aktuellen laufenden Prozess von Eclipse:
Führen Sie anschließend Eclipse-Systemaufrufe durch:
%Vor% Hier habe ich die erste von xdebug gesendete Zeile abgefangen.
Es ist die Zeile, in der Eclipse ein Stück XML liest. Ich nehme an, das ist der DBGp Teil.
Ich schaue auf fileuri
Ich habe entdeckt, dass Xdebug versucht, die Debugsitzung mit /opt/local/var/db/php5/pear/pear-ini.php
zu starten.
Die Datei pear-ini.php
existiert nicht in meinen Eclipse-Projekten.
Also erstelle ich ein neues Projekt in meinem Eclipse-Arbeitsbereich und hier habe ich die Datei /opt/local/var/db/php5/pear/pear-ini.php
Es funktioniert, Eclipse PDT hat nun die gesuchte Datei gefunden und der Debugger startet endlich korrekt. Es fragt mich sogar, ob ich in die Debug-Perspektive wechseln möchte.
Fazit
Wenn Sie auf diesen seltsamen Fehler stoßen: " Keine passende Datei gefunden oder keine Datei ausgewählt. " Nun, es bedeutet genau, was geschrieben wurde.
Okay, meine Eclipse konnte die Datei nicht finden, aber sie hat auch versucht, eine Datei zu finden, die sich nicht in ihrem Arbeitsbereich befindet.
Kann eine Datei sein, die aus irgendeinem Grund aus der PHP-Engine geladen wird.
In meinem Fall wird pear-ini.php
automatisch von pear.ini
Ich hatte das gleiche Problem, und während Freedevs Antwort mich in die richtige Richtung wies, löste es es nicht wirklich.
Die Verwendung von Dtruss hat nicht geholfen: Ich habe das XML <init>
-Element nirgendwo gesehen. Aber ich konnte es finden, nachdem ich xdebug.remote_log=/tmp/xdebug.log
in php.ini
eingestellt hatte, und dann die /tmp/xdebug.log
-Datei getailt habe, als ich versuchte, eine Remote-Debugging-Sitzung zu starten. Die /opt/local/var/db/php5/pear/pear-ini.php
wurde erneut erwähnt. Aber ich habe diese Datei in meinem Dateisystem, deshalb habe ich keine Ahnung, warum ich immer noch diese vage Fehlermeldung über eine fehlende Datei erhielt.
Nun, da ich jedoch wusste, dass Pear an dem Problem beteiligt war, habe ich versucht, Pear ( sudo port uninstall php53-pear
) einfach zu deinstallieren, da ich es eigentlich nicht mehr benutzte. Und siehe da, das hat es behoben! Ich bekomme nicht mehr die Fehlermeldung "Keine passende Datei", und ich kann wie üblich debuggen.
Bei der Deinstallation von php53-pear ist die fileuri
-Einstellung in diesen XML-Daten jetzt die index.php
-Datei für die Drupal-Site, die ich zu debuggen versuche. Ich denke also, dass Sie erwarten sollten, dass die Einstiegspunktdatei für Ihre Webanforderungen in diesem XML <init>
-Element erscheint. Ich wünschte, ich wüsste, warum, wenn Pear installiert hat, das Attribut fileuri
ändert. In der Lage zu sein, Pear zu konfigurieren, damit er nicht mit Xdebug herumhantiert, wäre viel besser als die Deinstallation von Pear.
Ich habe dasselbe Problem gefunden, und die Ursache war nicht pear.ini
oder pear-ini.php
wie oben erwähnt.
Der Grund war so einfach. Ich habe sowohl PDT als auch Aptana PHP Plugin auf meiner Eclipse-Umgebung installiert. Nur Wechsel sowohl des Projekttyps und der Debug-Konfigurationstyp auf PDT , alles hat gut funktioniert.
Danke, dass du einen schönen Thread gepostet hast. :)
Ich benutze Linux und befestige den Eclipse-Prozess unter Verwendung von strace (dem echten Java-Subprozess natürlich). Ich konnte solche Fehler nicht abfangen.
Für diejenigen, die das gleiche Problem haben, aber nicht erfolgreich bei der Lösung sind und wenn Sie vor kurzem ein Eclipse- oder PDT-Update durchgeführt haben, versuchen Sie, Ihr Projekt zu löschen und neu zu erstellen. Es löste mein Problem, wo xdebug-Debugging und Eclipse-Projektbereinigung nicht durchgeführt wurde.
Wenn Ihr Debugger früher funktioniert hat, dann hat er plötzlich damit begonnen, diese Nachricht zu versenden. Wahrscheinlich haben Sie gerade eine Quelldatei mit einem Lesezeichen versehen, dass Eclipse sie nicht als Teil des Projekts sieht oder überhaupt nicht findet.
Als ich zum Beispiel ein Plugin für Wordpress geschrieben habe, das ich für Wordpress geschrieben habe, habe ich eine externe Wordpress-Datei mit Lesezeichen versehen, auf die Eclipse / Xdebug anscheinend nicht zugreifen kann. Sobald ich dieses Lesezeichen entferne, kehrt alles zum normalen zurück.
Wenn das der Fall ist, dann einfach alle Lesezeichen entfernen.
Tags und Links php macos web-applications xdebug eclipse-pdt