2015-09-14 7 views
14

Ich habe ein Problem mit Xdebug in meiner Entwicklungsumgebung.Xdebug bricht Zugriff auf statische Eigenschaft der Klasse

FROM library/php:5.5-apache 

RUN apt-get -qqy update && apt-get -qqy install \ 
       libpq-dev \ 
       libmcrypt-dev \ 
       libxml2-dev \ 
       ssl-cert \ 
       vim \ 
       git \ 
       mc \ 
     && rm -r /var/lib/apt/lists/* 

# compile and add xdebug 
RUN pecl install xdebug \ 
    && echo "zend_extension=xdebug.so" >> "/usr/local/etc/php/conf.d/xdebug.ini" 

# configure apache and vhosts 
RUN a2enmod rewrite ssl \ 
     && a2ensite 000-default default-ssl 

ENV APACHE_RUN_USER www-data 
ENV APACHE_RUN_GROUP www-data 
ENV APACHE_LOG_DIR /var/log/apache2 
ENV APACHE_RUN_DIR /var/run/apache2 
ENV APACHE_PID_FILE /var/run/apache2/apache2.pid 
ENV APACHE_LOCK_DIR /var/lock/apache2 

CMD ["apache2-foreground"] 

Xdebug Einstellungen:

[xdebug] 
xdebug.remote_enable=1 
xdebug.remote_autostart=0 
xdebug.remote_host=172.17.42.1 
xdebug.remote_port=9000 

Alles funktioniert gut, aber eine Sache. Beim Debuggen den Code:

<?php 
class A { 
    static private $a; 

    static public function init() { 
     self::$a = 123; 
    } 
} 

A::init(); 

Wenn ich einen Haltepunkt auf self::$a = 123; oder Schritt in die Linie gesetzt, die ich erhalten:

Fatal error: Access to undeclared static property: A::$a 

Wenn ich in dieser Zeile nicht Schritt setzt die Debug-Sitzung ohne irgendwelche Probleme.

Was ist los?

+0

Das gleiche Problem mit PHP 5.4.43 mit Xdebug v2.3.2. Eigenbau über Docker. – shark555

+0

Ich habe verschiedene xdebug-Versionen, verschiedene Debug-Clients verwendet. Ich habe xdebug über pecl installiert und kompiliere es selbst. Das Problem muss irgendwo im offiziellen Docker sein php image –

+0

Welche IDE benutzen Sie? – bishop

Antwort

1

Ich denke, es ist ein Fehler irgendwo in XDebug - diesem Bug-Report

Inzwischen sehen können Sie in der Lage sein, von der Arbeit, um das Problem zu sortieren, indem Sie die xdebug_break() mit Funktion nur nach der Zeile, die die Ausnahme wirft und Debug von dort fortsetzen. Ich habe versucht, einen Haltepunkt in der Zeile zu setzen, nachdem die Ausnahme ausgelöst wurde, und ich fand, dass ein Haltepunkt nicht genug war, um es zu stoppen, eine Ausnahme zu werfen.

keine perfekte Lösung, aber hoffentlich werden diese Fehler bald behoben bekommen

0

Der beschriebene Fehler kann nur in den offiziellen PHP5 Bilder wiedergegeben werden. PHP 7-Bilder funktionieren einwandfrei, und beim Erstellen eines benutzerdefinierten PHP5-FPM-Bilds von jessie oder ubuntu tritt der Fehler ebenfalls nicht auf.

Verwandte Themen