我正在尝试使用VSCode(VSCcode版本1.9.1)配置xdebug .
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
我实际上可以在 localhost:3000
运行 phpinfo()
而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 "
但是 no variables 在调试列表中..
我不知道为什么但变量没有出现在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
1 回答
Got it working (only tested with php version 7).
按照步骤..
vscode> debug> gear图标> launch.json
vscode>文件>首选项> settings.json> WORKSPACE SETTINGS
php.ini 将此添加到文件末尾(注意"zend_extension"中没有路径斜杠)
也看这个youtube指南:
https://www.youtube.com/watch?v=xME6uHYTcLU
Finally, when configuration is done, here is how to get the debugger in vs code to show the variable, watch, callstack:
启动网络服务器(例如端口8080 ..只是不在端口9000上)
vscode>点击;启动debuggin(听Xdebug)
在Chrome中