Настройка удаленной отладки PHP кода по SSH в VSCode

Имеется сервер на CentOS 7 с установленным PHP7.2 и Xdebug 2.9.0. На ПК с Виндовс10 установлен VScode, c настроенным удаленным доступом к вышеупомянутому серверу через плагин RemoteSSH. Пытаюсь настроить отладку с помощью плагина VSCode - PHP Debug, но что-то не работает, хотя ранее я точно так же настраивал и все работало. Странно, что разные exception дебагер отлавливает, если стоит галка на everything, если ее убрать, то мои точки останова не ловит(которые под everything).

введите сюда описание изображения

Настройки в php.ini

zend_extension = /usr/lib64/php/modules/xdebug.so
xdebug.remote_log = "/var/log/xdebug.log"
xdebug.remote_handler=dbgp
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
xdebug.remote_host = 127.0.0.1

launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
    ]
}

Такая же проблема была и с xdebug 3.0 , так как там были параметры нового вида в php.ini, то я предположил что у меня просто не получилось их освоить, но в 2.9 все происходит точно так же


Ответы (1 шт):

Автор решения: Игорь Михайлов

Понял что не работают точки останова после одного из выражения require_once(), если поставить брекпоинт на этот require_once(), то дебагер останавливается на ней, и уже с нее можно переходить на другие точки и дебажить как обычно, и в конце скрипт отрабатывает как нужно. Но если поставить брекпоинт на любое выражение после require_once(), даже вида $a = 1, то дебагер зависает. В принципе я могу с этим жить, но что за магия? Ведь даже если в этом require_once() будет какой-то ексепшн, то дебагер ведь не должен зависнуть? Да если и должен, то по идее он бы зависал в любом случае.

→ Ссылка