Xdebug игнорирует точки останова

В настоящее время я пытаюсь заставить 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 работали нормально.