Простите за "дубль" этого же комментария в первой части этой стаьи, но может кому пригодится простенькое решение:
Задача: просто у удобно использовать такой функционал (согласно конфигу)
# подключаемый вспомогательный файл
# для виндовой утилиты 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 и прочие средства). Собственно, машин таких несколько, и не хотелось бы "отлаживать по очереди".
Вот это - главный линк к оному расширению для 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'е.
Если не ошибаюсь, то в php.ini или xdebug.ini нужно закомментировать директиву xdebug.remote_host и добавить
; для дебага с разных машин
xdebug.remote_connect_back=1
Начиная с 2.0.0RC4, Xdebug сохраняет время выполнения в микросекундах (10-6c), а до этого сохранял в десятках миллисекунд (10-5c).
В связи с этим при просмотре результатов профайлинга в WinCacheGrind все числа в 10 раз меньше настоящих (например, 40мс вместо 400мс).
Так как WinCacheGrind уже давно не обновлялась, пытался найти более старые версии xdebug под win, но так ничего и не нашёл.
не надо искать более старые версии. XDebug1 сохраняет данные в формате, который WinCacheGrind не понимает (обычный txt). кстати, а где вы нашли информацию про время выполнения?
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).
XDebug — если при отладке вам надоели echo(), var_dump() и print_r(). Часть 2.