Xdebug перестал работать и не мог остановиться на контрольных точках - PullRequest
1 голос
/ 11 октября 2019

Вчера отладчик перестал работать без всякой причины. Я использую PhpStorm IDE для отладки. Я установил точку останова в начале страницы, и она не останавливается на этом.

Я попытался отладить консольный скрипт с той же версией PHP, и он работает нормально - отладка остановлена ​​на точке останова. Я изменил версию php на сервере Apache и попытался выполнить деггунинг в другом проекте - он работает нормально, отладка останавливается на точке останова.

Версия PHP 5.6.40-12 + ubuntu18.04.1 + deb.sury.org + 1

/ etc / php / 5.6 / apache2 / conf.d / 20-xdebug.ini

zend_extension=xdebug.so
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.scream=0
xdebug.show_local_vars=1
xdebug.idekey=PHPSTORM
xdebug.remote_enable=1
xdebug.remote_log='/val/log/xdebug.log'

**xdebug version**: 2.5.5 xdebug_config_1

xdebug_config_2

PhpStorm 2019.2.3 Build # PS-192.6817.20, построен 25 сентября 2019 г. Версия среды выполнения: 11.0.4 + 10-b304.69Виртуальная машина amd64: 64-разрядная серверная виртуальная машина OpenJDK от JetBrains sro Linux 5.0.0-27-generic

При запуске отладки в журнале PhpStorm есть предупреждение. Может быть, это поможет:

2019-10-07 15:51:33,188 [25325256]   WARN - il.connection.ServerConnection - input stream is finished 
java.io.IOException: input stream is finished
    at com.jetbrains.php.debug.xdebug.dbgp.DbgpUtil.readDocument(DbgpUtil.java:115)
    at com.jetbrains.php.debug.xdebug.dbgp.DbgpUtil.readMessage(DbgpUtil.java:283)
    at com.jetbrains.php.debug.xdebug.connection.XdebugConnection$MyInputReader.read(XdebugConnection.java:135)
    at com.jetbrains.php.debug.xdebug.connection.XdebugConnection$MyInputReader.read(XdebugConnection.java:124)
    at com.jetbrains.php.debug.xdebug.connection.XdebugConnection.init(XdebugConnection.java:47)
    at com.jetbrains.php.debug.connection.PhpDebugServer.handle(PhpDebugServer.java:51)
    at com.jetbrains.php.debug.connection.PhpDebugServer.handle(PhpDebugServer.java:34)
    at com.jetbrains.php.util.connection.ServerConnection.lambda$null$0(ServerConnection.java:64)
    at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

Как исправить проблему, как заставить остановки xdebug на точках останова?

1 Ответ

3 голосов
/ 11 октября 2019

Из сообщения об ошибке я вижу, что сеанс отладки работает. PhpStorm, кажется, прерывает соединение.

Вероятно, Xdebug отправляет XML, который PhpStorm не понимает (т. Е. Он недопустим). Я подозреваю, что это либо из-за нулевого символа в имени свойства или имени ключа массива. (Не стесняйтесь публиковать полный журнал в pastebin, я с удовольствием посмотрю и исправлю ответ).

Вы уже создаете удаленный файл журнала, поэтому взгляните на последние несколько строк, которыетам просто после прекращения сеанса отладки.

Эту проблему можно исправить, обновив Xdebug до поддерживаемой версии (в настоящий момент 2.7.2).

...