我的php.ini配置:
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.mode = debug
xdebug.remote_autostart = on
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="c:/xampp/tmp"
xdebug.show_local_vars=0
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9003
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="c:/xampp/tmp/xdebug.log"
我的launch.json配置:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9003
}
]
}
但是我仍然在error.log中得到这个错误:
[php:notice] [pid 9388:tid 1840] [client ::1:63322] Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-(, referer: http://localhost/online-store/admin/types/insert-types.php
首先我使用了端口9000,但它不工作,然后我尝试将php.ini和launch.json中的端口更改为9003,与错误日志中的端口相同,但仍然没有发生任何事情,XDebug不工作,也不在断点处停止。
3条答案
按热度按时间bt1cpqcv1#
我也遇到了这样的错误后,更新我的Xdebug库到3+版本。
我发现新的设置
xdebug.start_with_request = yes
将Xdebug配置为在每次请求时建立连接。同时,官方文档提供了使用
xdebug.start_with_request = trigger
来连接Xdebug,只有在明确指出需要的情况下。在这种情况下,我可以通过GET参数传递一个额外的键来启动单步调试过程,例如http://localhost/?XDEBUG_TRIGGER=1
,但这对我来说很不方便,我只想在我的VSCode中按F5键来启动调试,就像我一直做的那样。因此我的解决方案如下。我离开
start_with_request = yes
,通过传递xdebug.log_level = 0
关闭了大多数Xdebug通知。然后我在launch.json
文件中覆盖log_level
,以启用所有警告,但仅限于调试会话中。php.ini文件:
启动.json:
ntjbwcob2#
launch.json:
根据您的要求更改路径Map,最重要的是主机名。添加后,它工作
syqv5f0l3#
我在PHP 8上遇到了同样的问题。在我的例子中,它只是他们自己的向导建议的XDebug版本。我使用这个版本,它工作得很好。3.0.0-8.0-vs 16