KCachegrind очень удобен. Пользуюсь им для C++. Настоятельно рекомендую тем, кто на php пишет offline скрипты для какой-нибудь обработки, ибо они как привило связаны с множеством вычислений.
Всё бы ничего вот только постоянно вылезает Fatal error: Call to undefined function xdebug_memory_usage() in s:\home\test1.ru\www\index.php on line 5...
Недавно начал пользоваться, очень удобно, кстати он и var_dump() делает более читабельным :)
Можно его заставить писать логи, например, когда есть определенный cookie, чтобы можно было смотреть узкие места на веб сервере, сильно его не нагружая?
Задача: просто у удобно использовать такой функционал (согласно конфигу)
# подключаемый вспомогательный файл
# для виндовой утилиты WinCacheGrind (выдает профайл-лог)
# При отладке в адресной строке браузера вводить
# GET-параметр ?XDEBUG_PROFILE (http://yourhost/?XDEBUG_PROFILE).
# Открыть результат WinCacheGrind’ом
# php_value auto_prepend_file \home\debug.class.php
Путь: метод набирания вручную "http://yourhost/?XDEBUG_PROFILE" не удобен.
Решение: на панели закладок ФФ создаем новую закладку (клик правой кнопкой мыши)
и в поле "адрес" вводим (без кавычек, конечно же)
"javascript:document.location = document.location + '?XDEBUG_PROFILE';"
Результат: любая открытая вкладка (с нужным рабочим сайтом) будет перезагружена с добавлением "?XDEBUG_PROFILE".
Вообще по-моему те,кто пишут php-проекты сидят не в блокноте, а в pdt или Zend Studio.
В этих средах разработки, а так же, возможно, в других есть средства для дебажинга и профайлинга, предоставляющие те же возможности и намного быстрее, чем запускать скрипт и открывать полученный лог xdebug'a cachegrind'ом каждый раз
никто и не говорит, что программисты пишут в блокноте.
встроенные дебаггеры не очень удобные. от версии к версии почти не развиваются, а XDebug - живой проект.
Илья, если говорить менее абстрактно, то по факту Xdebug мало чем отличается от, к примеру, стандартного Zend Debugger, единственно тем, что отлаживает скрипты на локальном компьюетере программиста. При установке Zend Platform это ограничение убирается. Возни с Xdebug очень много и цикл работы "запустил - запрофилировал результат - посмотрел - исправил" с ним значительно дольше чем со встроенными дебаггерами, т.к. приходится открывать дополнительные окна, обновлять их и тп, когда при работе с Zend Debugger можно все это сделать двумя кликами и хот-кеями.
Да, конечно, диаграммы, получаемые с пом. cachegrind очень наглядные и красивые, но это вообщем-то приятное излишество в отладке.
В чем поддержу использование xdebug - в том, что полезен вывод backtrace и для любителей - отслеживание вызовов функций (это действительно возможности, которые в стандартных дебаггерах отсутствуют), в остальном возня с ним едва окупает его возможности. По сравнению с готовыми IDE и встроенными debugger'ами.
XDebug — если при отладке вам надоели echo(), var_dump() и print_r(). Часть 1.