Точка останова XDebug, выдающая ошибки с PHP в коде Visual Studio - PullRequest
1 голос
/ 10 апреля 2020

Я пытаюсь установить точку останова в PHP коде, используя XDebug с кодом Visual Studio, который установлен на виртуальной машине Ubuntu Hyper-V. Я нахожусь на PHP 7.2.

Всякий раз, когда я устанавливаю точку останова в своем коде PHP и переименовываю sh страницу, которая должна достигнуть точки останова, я получаю сообщения об ошибках "команда недоступна" и «Нет такой точки останова» отображается во всплывающих окнах в Visual Studio Code. Я также получаю следующую ошибку в консоли отладки:

XDebugError: command is not available
    at new Response (/home/ben/.vscode/extensions/felixfbecker.php-debug- 
1.13.0/out/xdebugConnection.js:56:19)
    at new BreakpointSetResponse (/home/ben/.vscode/extensions/felixfbecker.php-debug- 
1.13.0/out/xdebugConnection.js:207:9)
    at Connection.<anonymous> (/home/ben/.vscode/extensions/felixfbecker.php-debug 
1.13.0/out/xdebugConnection.js:599:20)
    at Generator.next (<anonymous>)
    at fulfilled (/home/ben/.vscode/extensions/felixfbecker.php-debug-1.13.0/out/xdebugConnection.js:4:58) {
  code: 5,
  name: 'XDebugError'
}

Основываясь на моих исследованиях, я думаю, что проблема в том, что XDebug не работает с IPv6, но отладчик прослушивает v6. Если я сделаю netstat -an | grep 9000, я получу

tcp6       0      0 :::9000                 :::*                    LISTEN  

Вот содержимое /etc/php/7.2/fpm/conf.d/20-xdebug.ini

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

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

...