Pull to refresh

Comments 24

Эх, что-нить такое же, только чтобы можно было поставить на старонний хост, т.е. без копания в php.ini, есть?
сейчас очень много хостеров вместо услуги "Hosting" предлагают "Виртуальный colocation", где есть возможно ковырять всё, что угодно.

А без интеграции с бинарниками php невозможно получить такую подробную статистику и отладочную информацию.
Очень интересная вещь. Только пока не понятно, как понимать логи, которые попадают в WinCacheGrint
а их понимать не надо. там указано время выполнения каждой строки/время выполнения функции/кол-во вызовов и т.д.

все ясно вроде.
Простите за "дубль" этого же комментария в первой части этой стаьи, но может кому пригодится простенькое решение:

Задача: просто у удобно использовать такой функционал (согласно конфигу)

# подключаемый вспомогательный файл
# для виндовой утилиты 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".
Товарищи, у кого-нибудь получалось настроить многопользовательскую отладку на удаленном сервере с помощью xdebug?
Имеется в наличии:
1. Сервер для разработки PHP-проектов, с установленной последней версией xdebug
2. Несколько девелоперов, работающих над проектами, которые лежат на этом сервере.
Хочется:
- иметь возможность использовать пошаговую отладку в проектах на этом сервере
Пока что удалось:
- настроить пошаговую отладку на локальной машине девелопера с помощью Eclipse + PDT + PDT XDebug Extension

У xdebug есть директива xdebug.remote_host, в которой нужно указывать хост рабочей машины девелопера (на которой стоит Eclipse и прочие средства). Собственно, машин таких несколько, и не хотелось бы "отлаживать по очереди".

Может, кто имеет опыт подобной настройки?
а можно подробнее про PDT XDebug Extension? где его взять, как подключить к Eclipse?
Вот это - главный линк к оному расширению для Eclipse.

Вкратце:
1. Установить Eclipse.
2. Установить PDT для него.
3. Скачать последний PDT XDebug Extension. На странице, ссылка на которую приведена выше, есть линк на страницу загрузки, но я его также приведу здесь. Это линк на багзиллу Eclipse, и PDT XDebug Extension прикреплен там в виде аттача к багу. Пока, к сожалению, он распространяется только в таком виде. Скачивать нужно самый свежий файл, озаглавленный как "Prebuilt Binary of XDebug ...".
4. В полученном архиве находится 2 jar-файла, являющиеся расширениями к Eclipse, и очень толковая инструкция к использованию XDebug в формате PDF. К сожалению, в этой инструкции ничего не сказано по поводу того, что делать с указанными jar-файлами для того, чтобы подключить их к Eclipse и научить его общаться с XDebug, но на самом деле всё очень просто - их нужно переписать в папочку eclipse/plugins и перезапустить Eclipse, а дальше читать инструкцию, которая, я повторяю, очень толковая. Мне удалось настроить пошаговую отладку php-проектов, запущенных на локальном Denwer'е.
thanx! :) Eclipse PDT ковыряю с утра. ZDE - блокнот по сравнению с возможностями Eclipse ;)
Есть еще альтернатива PDT - PHPEclipse. Рекомендую установить и посмотреть.
В эклипсе вроде нет поддержки xdebug. Только в ночных версиях.
Если не ошибаюсь, то в php.ini или xdebug.ini нужно закомментировать директиву xdebug.remote_host и добавить
; для дебага с разных машин
xdebug.remote_connect_back=1
А, спасибо, я уже на Python пишу несколько лет :)
Блин, статья же 2007 года )))
Ну, лучше поздно, чем никогда.
Нормально, я эту строку всегда ищу, когда настраиваю окружение, вот мне и пригодилась :) Так что очень не зря пропустили дату поста
Начиная с 2.0.0RC4, Xdebug сохраняет время выполнения в микросекундах (10-6c), а до этого сохранял в десятках миллисекунд (10-5c).
В связи с этим при просмотре результатов профайлинга в WinCacheGrind все числа в 10 раз меньше настоящих (например, 40мс вместо 400мс).

Так как WinCacheGrind уже давно не обновлялась, пытался найти более старые версии xdebug под win, но так ничего и не нашёл.
не надо искать более старые версии. XDebug1 сохраняет данные в формате, который WinCacheGrind не понимает (обычный txt). кстати, а где вы нашли информацию про время выполнения?

PS: сайт проекта обновился немного. кто-то спрашивал про remote debbugin' http://www.xdebug.org/docs/remote
Для 2.0 тоже в WinCacheGrind время выводится неправильно, из-за смены единиц измерения. Об этом написано в changelog'е версии 2.0RC4 от [17-05-2007].
Use µ seconds instead of a tenths of µ seconds to avoid confusion in profile information.

Поэтому решил пользовать версию 2.0RC3, с которой WinCacheGrind правильно отображает время выполнения.
Под windows и mac с июня 2007 есть CachegrindVisualizer - http://code.google.com/p/cachegrindvisualizer/
текущая версия - xdebug 2.0.2

Fixed bug #325: DBGP: "detach" stops further sessions being established from Apache.
Fixed bug #321: Code coverage crashes on empty PHP files.
Fixed bug #318: Segmentation Fault in code coverage analysis.
Fixed bug #315: Xdebug crashes when including a file that doesn't exist.
Fixed bug #314: PHP CLI Error Logging thwarted when XDebug Loaded.
Fixed bug #300: Direction of var_dump().
Always set the transaction_id and command. (Related to bug #313).
Sign up to leave a comment.

Articles