2015-09-14 16 views
14

Tôi gặp sự cố với Xdebug trong môi trường phát triển của mình.Xdebug ngắt truy cập vào thuộc tính tĩnh lớp

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"] 

thiết lập Xdebug:

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

Mọi thứ hoạt động tốt, nhưng có một điều. Khi gỡ lỗi mã:

<?php 
class A { 
    static private $a; 

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

A::init(); 

Nếu tôi đặt một breakpoint trên self::$a = 123; hoặc bước vào dòng, tôi nhận được:

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

Nếu tôi không bước vào dòng đó, phiên gỡ rối tiếp tục mà không có vấn đề gì không.

Có vấn đề gì?

+0

Cùng một vấn đề với PHP 5.4.43 với Xdebug v2.3.2. Xây dựng riêng qua docker. – shark555

+0

Tôi đã sử dụng các phiên bản xdebug khác nhau, các trình gỡ rối khác nhau. Tôi đã cài đặt xdebug qua pecl và biên dịch bởi bản thân mình. Vấn đề phải ở đâu đó bên trong hình ảnh chính thức của docker php –

+0

Bạn đang sử dụng IDE nào? – bishop

Trả lời

1

Tôi nghĩ rằng đó là một lỗi ở đâu đó trong XDebug - xem các báo cáo lỗi

Trong khi đó bạn có thể sắp xếp công việc xung quanh vấn đề này bằng cách sử dụng các xdebug_break() chỉ sau SAU dòng đang ném ngoại lệ và tiếp tục gỡ lỗi từ đó. Tôi đã thử đặt một điểm ngắt trên dòng sau khi ngoại lệ được ném và tôi thấy rằng điểm ngắt không đủ để dừng nó ném một ngoại lệ.

Không phải là một giải pháp hoàn hảo nhưng hy vọng những lỗi sẽ được cố định sớm

0

Các lỗi được mô tả chỉ có thể được sao chép trong những hình ảnh chính thức PHP5. PHP 7 hình ảnh làm việc tốt, và khi xây dựng một hình ảnh FPM tùy chỉnh PHP5 từ jessie hoặc ubuntu, lỗi cũng không xảy ra.

Các vấn đề liên quan