45 Stimmen

xdebug-Ferndebugging stoppt nicht an Haltepunkten

Ich habe ein Problem damit, dass xdebug bei der Verwendung von Remote-Debugging nicht an Haltepunkten anhält (beim Ausführen von Skripten über die Befehlszeile ist alles in Ordnung). Es bricht bei der ersten Zeile des Programms ab und beendet sich dann, ohne irgendwelche Haltepunkte zu erfassen.

Früher hat das gut funktioniert, bis ich auf MacPorts für Apache und PHP umgestiegen bin. Ich habe mehrmals versucht, es neu zu kompilieren (mit verschiedenen Versionen), aber ohne Erfolg.

Ich verwende PHP 5.3.1 und Xdebug 2.1.0-beta3

Ich habe auch mindestens 3 verschiedene Debugging-Programme ausprobiert (MacGDBp, Netbeans und JetBrains Web IDE).

Meine php.ini-Einstellungen sehen wie folgt aus:

[xdebug]
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.remote_host=localhost
xdebug.idekey=webide

Und wenn ich die Debugger-Ausgabe protokolliere, sieht das Setzen eines Haltepunkts wie folgt aus/;

<- breakpoint_set -i 895 -t line -f file:///Users/WM_imac/Sites/wm/debug_test.php -n 13 -s enabled -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="895" state="enabled" id="890660002"></response>

Wenn er ausgeführt wird, erhält der Debugger den Kontext der ersten Zeile der Anwendung und sendet dann die Meldungen detach und stop.

Diese Zeile wird jedoch beim Starten des Debuggers ausgegeben.

<- feature_get -i 885 -n breakpoint_types -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_get" transaction_id="885" feature_name="breakpoint_types" supported="1"><![CDATA[line conditional call return exception]]></response>

Bedeutet 'line conditional call return exception' etwas?

0 Stimmen

Weitere Nachforschungen ergaben, dass es sich bei der "line conditional call return exception" um eine Liste der unterstützten Haltepunkte und nicht um eine Fehlermeldung handelt.

3 Stimmen

Der Aufruf von xdebug_break(); in meinem Code führt ordnungsgemäß zum Anhalten des Debuggers.

0 Stimmen

Können Sie den Pfad zu Ihrer php.ini-Datei angeben? Verwenden Sie HTTPS für diesen Host?

2voto

user1900956 Punkte 487

Ich bin auch mit dem gleichen Problem. Ich habe die Lösung, die zum Laden der DLL-Datei sollten wir zend_extension verwenden.

zend_extension=php_xdebug-2.5.5-5.6-vc11.dll 

Die restliche Konfiguration wird

xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

0voto

CarComp Punkte 1840

Um Probleme beim Debuggen von PHP CLI zu beheben,

Fügen Sie Umgebungsvariablen zu ~/.bashrc hinzu (und laden Sie sie anschließend neu):

export PHP_IDE_CONFIG="serverName=www.yourservernameurl.com"
export XDEBUG_CONFIG="idekey=PHPSTORM"

(Ich verwende phpstorm, aber Sie können die zweite Option bei Bedarf weglassen)

0voto

ksafonov Punkte 1

Können Sie ein vollständiges Sitzungsprotokoll zur Verfügung stellen, während Sie versuchen, mit Web IDE zu debuggen?

BTW, wenn Sie die Web IDE verwenden, brauchen Sie normalerweise nicht xdebug.idekey=webide zu setzen, da der ide key automatisch über den url-Parameter zugewiesen wird.

0voto

tianganghuti Punkte 1

In meinem Fall, wenn ich das Element zend_extension von oberhalb von [xdebug] nach unterhalb von [xdebug] verschiebe, funktioniert es gut.

;zend_extension = "D:\wamp\bin\php\php5.6.25\ext\php_xdebug-2.5.4-5.6-vc11-
x86_64.dll"
[xdebug]
zend_extension ="D:/wamp/bin/php/php5.6.25/zend_ext/php_xdebug-2.4.1-5.6-vc11.dll"

xdebug.auto_trace = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = On

0voto

Belze88 Punkte 41

Nur für ein kurzes Update zu diesem Thema hatte ich ein ähnliches Problem mit meinem neuen Dev-Setup und es war anscheinend ein Versionsproblem: zumindest mit PHP Version 7.1.20-1+ubuntu16.04.1+deb.sury.org+1 funktionierte xdebug 2.7.1 nicht:

es führte erfolgreich die erste Anforderung (ich bin auf einem Symfony-Projekt, so dass es router.php), aber dann, wenn meine IDE (PHPSTORM) fragte es für einen weiteren Haltepunkt es einfach abgestürzt, so dass keine Haltepunkt-Protokoll und natürlich meine Seite nicht zu ^^ geladen.

Ich habe es herausgefunden, indem ich mir das Log angeschaut habe (in der php.ini kann man es mit dem Parameter xdebug.remote_log anpassen). Hoffentlich habe ich xdebug auf 2.6.1 zurückgesetzt und jetzt ist alles in Ordnung.

Hoffentlich hilft es jemandem ;)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X