Xdebug останавливается на xdebug_break(), но не на точках останова в NetBeans

#php #debugging #netbeans #xdebug

#php #отладка #netbeans #xdebug

Вопрос:

Я пытаюсь использовать Xdebug в сочетании с NetBeans для отладки моего PHP-кода. И он уже работает так, как ожидалось, при установке xdebug_break() инструкции в моем коде, т. Е. Выполнение останавливается на строке после него.

Хотя это не работает, когда я устанавливаю точку останова для строки в пользовательском интерфейсе NetBeans.

Моя конфигурация выглядит следующим образом:

Программы:

  • NetBeans 8.1
  • Xdebug 2.4.1 (потокобезопасный, 64-разрядный)
  • PHP 5.6.26 (потокобезопасный, 64-разрядный)

Конфигурация:

php.ini

 zend_extension="C:Program FilesPHPextphp_xdebug-2.4.1-5.6-vc11-x86_64.dll"

[xdebug]
xdebug.remote_enable = On
xdebug.idekey = NetBeans
xdebug.remote_port = 9001
xdebug.var_display_max_children = 1024
  

NetBeans:

Конфигурация отладки PHP NetBeans

Конфигурация запуска проекта NetBeans

Расширенная веб-конфигурация NetBeans

Итак, почему xdebug_break() работает, но не точки останова?

Комментарии:

1. если вы запустите свою страницу с параметрами «XDEBUG_SESSION_START = netbeans-xdebug», поможет ли это? нравится этот localhost/?XDEBUG_SESSION_START=netbeans-xdebug

2. NetBeans делает это автоматически, когда я нажимаю кнопку Debug Project . Обратите внимание, что мой ключ IDE называется «NetBeans»; поэтому страница вызывается с XDEBUG_SESSION_START=NetBeans параметром as.

Ответ №1:

Оказалось, что причиной такого неожиданного поведения был неправильный URL-адрес проекта в конфигурации запуска. Поле URL проекта фактически требует установки корневого URL проекта, а поле индексного файла принимает путь к индексному файлу.

Итак, вместо того, чтобы писать это:

URL проекта: http://localhost/project_name/some/path/
Индексный файл: index.php

Я должен был написать это:

URL проекта: http://localhost/project_name/
Индексный файл: some/path/index.php