Използване на XDebug в UEStudio за PHP отстраняване на грешки

Току-що изтеглих най-новата версия на UEStudio 09 и изпробвам интегрираните функции на XDebug.

Имам инсталиран xdebug и го проверих чрез моя php_info(). Написах много основен скрипт, за да го тествам:

1:  <?php
2:  $x = 5;
3:  $y = $x + 1;
4:  $z = 10;
5:  while ($z--) {
6:      echo $x, $y, "<br />\n";
7:  }

След това стартирах сесията за отстраняване на грешки и получавам това съобщение в моя изходен прозорец:

Client: Listening for connection...

Добавих точка на прекъсване на ред 4, само за да го тествам. След това отварям файла в моя браузър със специалния url параметър:

http://localhost/uetest/index.php?XDEBUG_SESSION_START=test

Скриптът работи нормално и не спира за отстраняване на грешки или нещо подобно. Резултатът е следният:

Client: Listening for connection...
Client: Connection accepted
Client: Initializing session
==============================
Debug Engine Name: Xdebug
Debug Engine Version: 2.0.3
Protocol Version: 1.0
==============================
Client: Session active
Client Command: Step Into
Client: Exiting debug session
Script completed without errors

Ако посетя http://localhost:9000/uetest/index.php, тогава UEStudio казва „Връзката е приета“, но оттам нататък нищо не се случва! Скриптът никога не завършва в браузъра и най-накрая UEStudio се срива.

Някакви идеи?


person nickf    schedule 07.04.2009    source източник


Отговори (2)


Миналата седмица оцених UEStudio като заместител на Zend Studio 5.5. Настроих моята XDebug конфигурация по следния начин и я накарах да работи:

[XDebug]
zend_extension_ts=./ext/php_xdebug.dll
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir=d:/
xdebug.profiler_output_name=timestamp
xdebug.remote_enable=1
xdebug.remote_mode=req
xdebug.remote_autostart=0
xdebug.remote_port=9000
xdebug.remote_host=localhost 
xdebug.idekey=debug

Трябваше да добавя няколко настройки към моя php.ini, за да заработи. По-горе е получената конфигурация. Освен това инсталирах XDebug Helper Firefox addon, за да започна отстраняването на грешки направо от Firefox. Много удобно.

person mjax    schedule 26.09.2009

Преди много години използвах xdebug, но наскоро използвах Zend Debugger, така че не мога да си спомня директно какво направих, за да накарам xdebug.dll да работи. Спомням си обаче, че трябваше да добавя няколко записа в php.ini. Записите, които имам за Zend Debugger са:

За Linux:

[Zend]
zend_extension=/usr/lib/php5/20060613+lfs/ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always

За Windows:

[Zend]
zend_extension_ts="c:/php/ext/ZendDebugger.dll"
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.expose_remotely=always

Търсене в Google за „php xdebug php.ini“ ме отведе тук:

http://devzone.zend.com/article/2930-Debugging-PHP-applications-with-xdebug

Което предполага:

xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

за xdebug.

Надявам се това да помогне.

person Stacey Richards    schedule 07.04.2009