Thursday, September 6, 2007

php xdebug extension

Пока настраивается сервер, выдалась свободная минута.
Уже полгода наталкивался на php extension xdebug.
http://xdebug.org/
Сначала использовал только tracer, причем у меня отрабатывала только функция xdebug_start_trace() но более ничего не делалось. Обнаружил что она возвращает имя файла куда кладется trace, собственно и начал использовать
$tracer = xdebug_start_trace();
echo '<pre>';
echo file_get_contents($tracer);
Получается примерно следующее.
.0042 94560 -> require_once(file.php) /path/index.php:44
0.0043 95984 -> require_once(file2.php) /path/file.php:16
0.0044 95808 -> ClassName->__construct() /path/index.php:45

Где первая строчка время, вторая память, далее метод(функция) путь, строка.

Затем понадобился профайлер, ранее использовал zend_platform но trial закончился.
Смотрим тот же xdebug
http://www.xdebug.org/docs/profiler
Настраиваем php.ini
sudo apt-get install kcachegrind
И все работает!.

После этого я всерьез заинтересовался xdebug и захотелось собственно сам отладчик
http://www.xdebug.org/docs/remote
Поддерживаются ide:
Так как Zend Studio дорогой для меня продукт, я начал переходить на vim, соотвественно заинтеросовала возможность интеграции отладчика в него.
Глянул туториал http://tech.blog.box.net/2007/06/20/how-to-debug-php-with-vim-and-xdebug-on-linux/
И все заработало - чудеса да и только :)

No comments:

 
Каталог сайтов, Добавить сайт