Отговорът не се връща за конкретни заявки, когато се изпълнява xdebug

Съвсем сигурен съм, че това е проблем с xdebug, а не проблем с PHPStorm, но за да бъде ясно отпред, използвам PHPStorm локално за отстраняване на грешки в PHP код, намиращ се на отдалечен сървър. Имам настройка на xdebug на сървъра и използвам следната конфигурация в php.ini на сървъра:

zend_extension=/home/httpd/php_extensions/xdebug-2.1.4/modules/xdebug.so
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.idekey=PHPSTORM-XDEBUG

Настроих PHPStorm като моя локална програма за отстраняване на грешки. Използвам XDebug Helper в Chrome или лесен Xdebug във Firefox за инициализиране на xdebug (проблемът ми възниква независимо от това кой използвам). Като цяло отстраняването на грешки работи добре. Мога да задавам точки на прекъсване, да преминавам през код, да виждам променливи и т.н.

Проблемът идва, когато определени заявки никога не получават отговор от сървъра. Сървърът просто никога не отговаря и потвърдих това с Charles Web Debugging Proxy. Това винаги се случва при едни и същи конкретни заявки и се случва независимо дали са зададени точки на прекъсване или не. Заявките, които не получават отговор, са подобни - те извикват php скрипт, който минимизира и обединява множество JavaScript файлове и повтаря резултата.

За отстраняване на неизправности активирах регистрирането на xdebug, като добавих това към php.ini:

xdebug.remote_log=/home/httpd/xdebug.log

Когато grep дневника за името на php файла, който е ударен като крайна точка за тези проблемни заявки, получавам 0 резултата (освен ако изрично не съм добавил точки на прекъсване към тази крайна точка). Когато добавя точки на прекъсване към тази крайна точка (minify.php), мога да премина през нея в PHPStorm съвсем добре и изглежда, че успява да премине през кода дори чрез повтаряне на минимизирания и конкатениран JS код – но отговорът все още никога не се изпраща от сървъра, доколкото е известно на моята локална машина.

Някаква идея какво става тук? Това наистина пречи на способността ми да използвам xdebug. Благодаря.


person Aaronius    schedule 18.05.2012    source източник


Отговори (2)


Вероятно бисквитките не се разпространяват към тези заявки. Бих предложил да видите дали можете да зададете xdebug.remote_autostart и дали след това се опитва да се свърже?

person Derick    schedule 18.05.2012

Благодаря за отговора Това не беше проблемът, но ме накара да копая по-нататък. Оказва се, че това е грешка, при която xdebug се срива, когато php извиква exit(). Използването на последния кандидат за версия коригира проблема, както е посочено тук:

http://bugs.xdebug.org/view.php?id=815

Благодаря!

person Aaronius    schedule 18.05.2012