Отладчик PhpStorm никогда не вводит код, но страница не завершает загрузку sh во время работы отладчика - PullRequest
0 голосов
/ 13 апреля 2020

Я использую PhpStorm в Ubuntu, который я использую на машине Hyper-V. Я пытаюсь настроить отладчик PhpStorm с помощью XDebug. Я установил точку останова в своем коде, но когда я нажимаю «Начать прослушивание PHP Debug Connections» в PhpStorm и обновляет sh моей страницы, отладчик никогда не вводит мой код. Отладчик должен делать что-то , потому что страница в браузере продолжает загружаться, пока я не нажму Стоп в PhpStorm. Если я не нажимаю на отладчик для прослушивания соединений, страница загружается правильно.

В окне отладки отображается ошибка Remote file path '/var/www/magento2/pub/index.php' is not mapped to any file path in project, но я не знаю, как заставить это отобразиться правильно. В отображениях путей windows в разделе «Включить путь» он показывает несколько путей, но путь /var/www/magento2/pub не существует. Я не могу найти нигде, чтобы добавить дополнительный путь. Может ли это быть проблема с разрешениями для этой папки? Какие разрешения мне нужны, чтобы разрешить PhpStorm отображать этот путь?

Если я сниму флажок «Использовать сопоставление пути» в Preferences > Language & Framework > PHP > Servers и оставлю флажок «Разрывать первую строку в PHP сценариях», то отладчик прерывается в первой строке кода, но я не хочу прерывать, пока моя точка останова не будет достигнута.

Если я сниму флажок «использовать сопоставление пути» и не установлю флажок «Разрывать первую строку в PHP сценариях», я получаю сообщение об ошибке Debug session was finished without being paused. It may be caused by path mappings misconfiguration or not synchronized local and remote projects. To figure out the problem check path mappings configuration for 'mydomain.local' server at PHP|Servers or enable Break at first line in PHP scripts option (from Run menu).

Вот моя конфигурация XDebug

zend_extension=xdebug.so

xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_mode=req
xdebug.remote_port=9000
xdebug.var_display_max_depth=-1
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.idekey="PHPSTORM"

Обновление:

Вот ответы на вопросы @ LazyOne

1) Путь к проекту root is / var / www/magento2

2) enter image description here

Одна вещь, которая, на мой взгляд, может быть связана с этой проблемой, заключается в том, что в Include Path, каталоге /var/www/magento/pub не отображается Это то, что PhpStorm ссылается на ту первую ошибку, которую я описал выше. Как будто PhpStorm нашел некоторые из моих каталогов с PHP файлами, но не все из них.

3) Вот журнал XDebug

Обновление 2 :

Вот как выглядит мой проект

enter image description here

Вот окно моих каталогов

enter image description here

Я предполагаю, что причина того, что все каталоги vendor/... находятся в Исключенных папках, заключается в том, что они находятся в .gitignore. Часть кода, в котором я устанавливаю точку останова, находится в подкаталоге одного из vendor каталогов, а часть кода находится в подкаталоге app/code/ (который находится в исходных папках)

Я добавил /var/www/magento2/pub к Include Path в Settings > Languages & Frameworks > PHP. Это устранило ошибку о /var/www/magento2/pub/index.php. Теперь это частично работает. Если в первой строке скриптов PHP произошел разрыв PhpStorm, отладчик запустится, как только я обновлю sh моей страницы. Однако после того, как я перешагнул через первую строку кода, я получил ошибку PHP CS Fixer: Can not correctly run the tool with parameters..., а затем отладчик, похоже, перестал работать.

Если я не выбрал Break at first line in PHP Scripts, и я установил точку останова дальше в моем коде я по-прежнему получаю ту же ошибку «сеанс отладки завершен без паузы».

Я не уверен, что такое PHP CS Fixer, и не хочу, чтобы он запускался. Есть ли способ отключить это?

...