Отладка зависла на PhpStorm - PullRequest
0 голосов
/ 12 марта 2019

Отладка больше не работает ни на одном из моих проектов PhpStorm, когда я начинаю прослушивать входящее соединение, сценарий блокируется до тех пор, пока я не перестану прослушивать соединения, даже если в моем коде нет точек останова. И когда я ставлю точку останова в первой строке (она не работает в других строках), скрипт действительно останавливается, но когда я говорю ему, чтобы он переходил к следующей строке, он снова блокируется (даже с самым простым из возможных кодов).

Я попытался проверить конфигурацию отладки, все в порядке (я использовал валидатор из PhpStorm), отображение пути также в порядке, хорошо, на прошлой неделе все работало нормально, и я ничего не изменил ...

Вот моя конфигурация на моем php.ini:

xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_log=[path]/xdebug.log
xdebug.idekey=PHPSTORM

А вот некоторая часть моего xdebug.log, когда я ставлю точку останова на первой строке, а затем делаю шаг:

[4605] Log opened at 2019-03-12 14:13:50
[4605] I: Connecting to configured address/port: 127.0.0.1:9000.
[4605] I: Connected to client. :-)
[...]
[4605] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="context_get" transaction_id="19" context="1"><property name="$_COOKIE" fullname="$_COOKIE" type="array" [...] </property></response>
[...]
[4605] <- step_over -i 21
[4605] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="step_over" transaction_id="21" status="break" reason="ok"><xdebug:message filename="file:///[path]" lineno="4"></xdebug:message></response>
[4605]

Первый ответ: когда он остановился на точке останова в первой строке, у меня все отлично работает с переменными, когда записано «$ _COOKIE», затем я делаю шаг, и скрипт как будто застрял. И проблема не может быть в коде, я пытался с помощью скрипта только с 2 "эхо". Я попытался перезагрузить Apache, я попытался перезагрузить PhpStorm, и я попытался перезагрузить компьютер, ничего не изменилось.

Моя версия PhpStorm:

PhpStorm 2018.1
Build #PS-181.4203.565, built on March 28, 2018
JRE: 1.8.0_152-release-1136-b20 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.4.0-102-generic

Моя версия php:

PHP 7.1.27-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Mar  7 2019 20:02:03) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.27-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.0, Copyright (c) 2002-2019, by Derick Rethans

Ты хоть представляешь, что происходит? (кажется, моя версия php была создана на прошлой неделе, может быть, это связано ...)

Ответы [ 2 ]

3 голосов
/ 13 марта 2019

Я нашел ответ, это несовместимость между phpstorm 2018.1 и Xdebug 2.7.0, как об этом сообщалось в отчете об ошибке xdebug: https://bugs.xdebug.org/view.php?id=1637

Я обновил phpstorm до версии 2018.3, и теперьвсе хорошо.

1 голос
/ 12 марта 2019

Сегодня утром я столкнулся с той же проблемой. Я полагаю, что одно из последних обновлений Xdebug (которое было официально обновлено ~ 6 дней назад?) Могло нарушить сборку для PHP 7.1.x. Я удалил текущую версию xdebug и использовал кэшированную версию, которая была у меня локально внутри кеша apt. Я думаю, что LazyOne может быть на правильном пути с Xdebug 2.6.1, являющейся версией, которая нам нужна.

Кэшированные пакеты, доступные здесь (в Ubuntu): /var/cache/apt/archives/

Перечислено и добавлено в xdebug, в котором указан более старый кэшированный пакет, включающий 2.6.1.

cd /var/cache/apt/archives/

ll | grep xdebug

И установил старый пакет, используя sudo dpkg -i packagename, где packagename было предыдущей версией, которую я кэшировал.

...