NetBeans не останавливается на точке останова - PullRequest
10 голосов
/ 28 декабря 2011

У меня запущен xdebug, но не имеет значения, где я ставлю точку останова, она никогда не останавливается.

php.ini

[xdebug]
zend_extension_ts = c:\wamp\bin\php\php5.2.8\ext\php_xdebug-2.1.2-5.2-vc6.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=Chris-Pc
xdebug.remote_port=9000

Ответы [ 8 ]

7 голосов
/ 18 мая 2016

Еще один совет, который здесь не упомянут: убедитесь, что ваш корневой веб-каталог установлен правильно.

Перейдите на Файл -> Свойства проекта -> Источники -> Корень Интернета -> Обзор и выберите фактический корневой веб-каталог.

Моя конфигурация - Kubuntu 15.04, PhP 5.5, и я занимаюсь разработкой приложения CakePhP, и мне пришлось установить каталог webroot на / app / webroot [или / app / View/ Theme / webroot, если вы используете темы].Без этого параметра xdebug игнорировал точки останова, хотя в противном случае работал (и фактически останавливался на первой строке файла index.php).

5 голосов
/ 25 июля 2013

Я спросил то же самое и получил довольно неплохой ответ: Как отследить время выполнения каждой строки / блока строк / методов в PHP? .

Некоторые дополнительные замечания по этому поводу (материал, который я собрал в других сообщениях SO в моем собственном исследовании этой проблемы):

  1. Порт также может быть 9001 (кажется, что работает для некоторых людей, в то время как 9000 не работает).
  2. Переключение на PHPStorm IDE - реальная альтернатива, которая решает эту проблему (так как PHPStorm уже включил отлично работающий xdebug).
  3. Загрузите новую версию xdebug через мастера (https://xdebug.org/wizard.php) и, если вы будете следовать инструкциям, возможно, вам повезет.
  4. Может помочь отключение брандмауэра.
  5. Добавить в php.ini xdebug.idekey = netbeans-xdebug.
  6. Узнайте, есть ли у вас файл xdebug.ini, и добавьте в этот файл строки php.ini, связанные с xdebug.
  7. Вы должны откомментировать строку zend_extension (т.е. удалить ';' в начале), чтобы Xdebug действительно был загружен.
  8. убедитесь, что Xdebug загружен, вызывая phpinfo () из файла PHP (просто чтобы быть уверенным).
4 голосов
/ 09 марта 2014

У меня была похожая проблема, и я наткнулся на сообщение, чтобы решить проблему. Моя html-форма (testform.html) вызывала скрипт php (runQuery.php), и Netbeans не мог сломаться в установленных точках разрыва в моем runQuery.php

После проверки всех параметров конфигурации в php.ini и Netbeans путем поиска на форумах, подобных этому, я обнаружил, что netbeans будет ломаться только на точках останова, если файл индекса для проекта является файлом PHP. Это очень важно, иначе вы потратите часы, пытаясь выяснить, почему не работают точки останова.

В Netbeans зайдите в Файл / Свойства проекта / Запустить конфигурацию и убедитесь, что файл индекса является файлом PHP. В моем случае я изменил свой индексный файл с testform.html на testform.php, и это сработало, я смог разбить точки останова.

Яшар

4 голосов
/ 25 июля 2013

Есть несколько вещей, которые вы можете попробовать:

  1. Проверьте, доступен ли порт (или попробуйте другой порт)
  2. Убедитесь, что порт выбран в NetBeans
  3. Используйте IP вместо имени ПК
  4. Используйте расширение для браузера, например https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc
  5. Используйте "xdebug_break ()" в своем коде, чтобы посмотреть, не сломался ли он там
  6. Проверьте ваш phpinfo (), чтобы увидеть, загружен ли xdebug
2 голосов
/ 25 июля 2013

Убедитесь, что ваши настройки NetBeans приведены ниже:

Tool-> вариант Откроется диалоговое окно, теперь нажмите на PHP Есть несколько вкладок, нажмите на отладку и проверьте порт отладчика 9000

1 голос
/ 11 марта 2014

Пожалуйста, проверьте это.В вашем php.ini убедитесь, что все эти опции включены.В противном случае добавьте его в конец файла php.ini (например, / etc / php / 5.6 / apache2 / php.ini ).

[xdebug]
zend_extension="/usr/lib/php5/20121212/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.default_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey="netbeans-xdebug"

Проверьте путь (/ usr/ lib / php5 / 20121212 /) для xdebug.so в вашей файловой системе соответственно измените значение zend_extension.

1-я строка Значение zend_extension здесь для пользователей Ubuntu.Я думаю, что переменную не нужно менять.Снимите отметку с остановки в первой строке ( tools-> options-> php-> Debugging ).

1 голос
/ 25 июля 2013

Лучше всего туннелировать через SSH, установив для удаленного хоста localhost. Это предотвратит путаницу ip с брандмауэрами, nat или переадресацией портов.

0 голосов
/ 17 сентября 2015

Порт 9000 доступен для использования, попробуйте изменить его на 9001 (как Netbeans, так и php.ini).Сначала я попытался бы установить точку останова с помощью xdebug_break () и посмотреть, что отображается в окне «Переменные».По крайней мере, суперглобальные должны быть показаны.

Кстати: точки останова с IDE (слева: номера строк) не могут быть созданы на пустой строке или строке с комментариями, они должны содержать некоторый код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...