В настоящее время я пытаюсь заставить Xdebug работать на нашем сервере разработки. В качестве клиента я использую netbeans, и соединение пока работает без проблем. Но когда я пытаюсь установить точку останова в netbeans, это просто игнорируется.
И да, я уже много часов работал в Интернете, а также нашел здесь несколько вопросов, которые идеально подходят для моего описания: SO 1 SO 2
Но для меня это, похоже, не решает. Модуль Xdebug
загружается через zend_extension = путь / в / xdebug. поэтому в
/etc/php5/conf.d/xdebug.ini
Я также посмотрел php5 / apache и php5 / cli php.ini, чтобы убедиться, что он не загружен с расширением = где-то там. Я также проверил «дополнительные файлы .ini», найденные phpinfo (), и, похоже, он больше нигде не загружен.
Выполняя php -m, я вижу загруженный модуль Xdebug в
[PHP Modules]
И в
[Zend Modules]
Не уверен, что это означает, что он по-прежнему загружен дважды, или если это так? Тем не менее, если я удалю zend_extension=/path/to/xdebug.so
из conf.d/xdebug.ini
он также не будет загружен. Поэтому я действительно предполагаю, что он загружен только там.
Если я установил параметр remote_log, то увидите, что Netbeans
пытается что-то установить:
<- breakpoint_set -i 452 -t line -s enabled -f file:///http:/development.xxx.de/users/itsame/index.php -n 15 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="452" state="enabled" id="258870001"> </response>
Но, похоже, это не имеет никакого эффекта (выглядит примерно так же, как и в других вопросах SO, которые я опубликовал выше. Но если я буду использовать xdebug_break () внутри PHP-кода, он правильно его обработает.
Версия PHP – 5.2.6, а Xdebug – 2.1. Любые предложения, где я мог бы посмотреть следующий?
Похоже, что с файлом, содержащим точку останова, что-то не так.
<- breakpoint_set -i 452 -t line -s enabled -f file:///http:/development.xxx.de/users/itsame/index.php -n 15 ->
У меня была аналогичная проблема с Eclipse. Только мои контрольные точки в индексном файле были приняты, а контрольные точки в других файлах, включенных в индекс, были проигнорированы.
Я заглянул в файл remote_log и увидел следующее:
<- breakpoint_set -i 260 -t line -f file:///~jeroen/workspace/fieg/wp-content/plugins/fieg/fieg.php -n 22-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="260" id="48060002"></response>
Я заметил, что путь для точки останова был неправильным. Оказалось, что мне нужно настроить Port Mapping в Eclipse. После установки правильного сопоставления точки останова начали работать. Также мой remote_log теперь показывает правильный путь:
<- breakpoint_set -i 333 -t line -f file:///Users/jeroen/Workspace/fieg/wp-content/plugins/fieg/fieg.php -n 12-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="333" id="48080005"></response>
Я не уверен, есть ли эквивалент конфигурации отображения портов Eclipse в Netbeans, но, надеюсь, я указал вам в хорошем направлении.
В файле php.ini установите эту директиву:
report_zend_debug = 1
Надеюсь, это поможет кому-то?
Для меня проблема заключалась в том, что «Свойства проекта> Источник> Веб-корень:» не был установлен (он имел значение по умолчанию «как его значение).
После того, как он был моим корнем на диске, точки останова начали работать.
Перейдите в: Project > Properties > Run Configuration > Advanced (button)
Удалите все сопоставления из «Отображения пути», если вы не используете Xdebug для удаленной отладки. Это поможет решить эту проблему.
Вопрос о том, что файл xdebug.ini существует, но не сообщает о его содержимом. Мой файл установки по умолчанию включал:
zend_extension=/usr/lib/php5/20100525/xdebug.so
Но для того, чтобы отладка действительно произошла, она должна быть включена. Добавьте эту строку:
xdebug.remote_enable=1
Затем phpinfo()
сообщит о функционировании xdebug:
Я столкнулся с этим сообщением, пытаясь решить мою проблему xdebug в eclipse, не нарушая точки перерыва для веб-приложения. Я нашел здесь комментарии очень полезными. Кроме того, этот пост http://www.devside.net/wamp-server/netbeans-waiting-for-connection-netbeans-xdebug-issue оказался очень полезным для решения моей проблемы. Мне просто нужно было установить следующий флаг в моем соответствующем php.ini.
xdebug.remote_enable = 1
xdebug будет непрерывно ждать в сеансе, но после установки флажка удаленной отладки проблема ожидания сеанса, проблема с точкой прерывания, а также файл журнала xdebug, который я определил, также начали выполнять транзакции регистрации.
Еще одно возможное решение, единственное, что сработало для меня, пробовав все на этом посту и во многих других …
Я отлаживаю проект PHP через XDEBUG на Eclipse Neon в Windows. Источником является удаленный Linux, монтируемый локально как диск через SFTP. Вероятно, это моя собственная ошибка, что это неправильно настроено …
В Eclipse щелкните правой кнопкой мыши ваш проект, затем выберите « Configure
, затем « Add PHP Support
. Сразу же началась индексация DLTK; до этого он не запустится ни на что.
Затем мне пришлось открыть исходный код и установить точки останова через Remote File Explorer. Я надеюсь, что это помогает кому-то.
У меня была та же проблема: точки останова Eclipse не работали, xdebug_break () действительно сработал. Моя проблема заключалась в пробелах на пути:
<- breakpoint_set -i 1323 -t line -f file:///Users/admin/Documents/projects/something/path%2520with%2520space/web/index.php -n 223 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="1323" id="385680235"></response>
После изменения пути к чему-то без пробелов точки останова в Eclipse работали нормально.