Переменные не отображаются в VSCode / Xdebug PHP

Я пытаюсь настроить xdebug с VSCode (VSCcode версии 1.9.1).

php.ini

[Xdebug] zend_extension = D:\php\ext\php_xdebug.dll xdebug.remote_autostart = 1 xdebug.remote_enable = 1 xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_handler="dbgp" xdebug.remote_log = D:\site\xlog.txt 

Мой php-порт по умолчанию – 3000. ($_SERVER['SERVER_PORT'] = 3000 Я могу фактически запустить phpinfo() на localhost:3000 а порт Xdebug установлен как xdebug.remote_port = 9000

Журнал Xdebug:

 Log opened at 2017-02-17 20:50:56 I: Connecting to configured address/port: localhost:9000. I: Connected to client. :-) -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///D:/site/index.php" language="PHP" xdebug:language_version="7.1.0-dev" protocol_version="1.0" appid="11384" idekey="Admin"><engine version="2.5.0"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2016 by Derick Rethans]]></copyright></init> <- breakpoint_list -i 1 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="1"></response> <- breakpoint_list -i 2 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="2"></response> <- breakpoint_set -i 3 -t exception -x * -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="3" id="113840001"></response> <- run -i 4 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="run" transaction_id="4" status="stopping" reason="ok"></response> <- stop -i 5 -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="stop" transaction_id="5" status="stopped" reason="ok"></response> Log closed at 2017-02-17 20:50:56 

launch.json:

 { "version": "0.2.0", "configurations": [{ "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000 }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000 } ] } 

Для следующего тестового кода:

 $var = "test\n"; print $var; var_dump($var); 

Я получаю это в консоли отладки:

 test D:\site\index.php:5: string(5) "test " 

Но никаких переменных в списке отладки ..

Я не знаю, почему, но переменные не отображаются в VSCode.

Когда я пытаюсь достичь localhost:3000 … вот что я получаю:

 Log opened at 2017-02-17 21:38:16 I: Connecting to configured address/port: localhost:9000. E: Time-out connecting to client. :-( Log closed at 2017-02-17 21:38:17 

Получил его работу (тестировался только с php версии 7).

  1. Начните с загрузки правильной версии xdebug здесь: https://xdebug.org/wizard.php

Следуйте шагам..

vscode> debug> значок шестеренки> launch.json

 { "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000 }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9000 } ] } 

vscode> Файл> предпочтения> settings.json> НАСТРОЙКИ WORKSPACE

  // Place your settings in this file to overwrite default and user settings. { "php.validate.executablePath": "C:\\Program Files (x86)\\php\\php7\\php.exe", "php.validate.enable":true } 

php.ini добавить это к концу файла (обратите внимание, что в «zend_extension» нет косых черт)

 [Xdebug] zend_extension = php_xdebug-2.5.4-7.0-vc14-nts.dll xdebug.remote_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_log = C:\Temp\Xdebug_log.txt 

также смотрите это руководство по youtube:

https://www.youtube.com/watch?v=xME6uHYTcLU

Наконец, когда конфигурация выполнена, вот как получить отладчик в коде, чтобы показать переменную, watch, callstack:

  1. запустить веб-сервер (например, порт 8080 .. только не на порт 9000)
  2. vscode> Нажмите; Начать debuggin (слушать Xdebug)
  3. в Chrome> нажмите RELOAD (это приведет к запуску и запуску отладки) Готово.