Xdebug 未在 VSCode、MAMP 和 Xdebug 中的断点处单步执行
Xdebug not stepping at breakpoints in VSCode, MAMP and Xdebug
以前,我的 Xdebug 只在代码的第一个断点处停止。然后,我决定重新安装我所有的设置(简单的 MAMP [不是 PRO] 和 Xdebug)来尝试修复它。但是,实际上我的调试器甚至没有进入第一个断点。
我也一直在搜索和修改这两个 php.ini 文件,就像我以前做的那样 (https://dillieodigital.wordpress.com/2015/03/10/quick-tip-enabling-xdebug-in-mamp-for-osx/),但是 none 这项工作。
这是我的 php.ini 文件:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.21/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_connect_back = 0
我的 launch.json 或我的工作空间:
{
"folders": [
{
"path": "."
}
],
"launch": {
"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": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \(http://localhost:([0-9]+)\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}
}
我做错了什么?可能是很简单的东西,但我没有任何线索。
您使用的是 Xdebug 3 吗?因为在那种情况下,php.ini
设置的名称已更改,您可以在 upgrade guide.
中找到更改
为了诊断其他问题,请尝试调试一个包含 xdebug_info()
的 PHP 文件,它会告诉您 Xdebug 是否尝试连接到您的 IDE以及是否成功。如果没有,它会告诉你原因。
以前,我的 Xdebug 只在代码的第一个断点处停止。然后,我决定重新安装我所有的设置(简单的 MAMP [不是 PRO] 和 Xdebug)来尝试修复它。但是,实际上我的调试器甚至没有进入第一个断点。
我也一直在搜索和修改这两个 php.ini 文件,就像我以前做的那样 (https://dillieodigital.wordpress.com/2015/03/10/quick-tip-enabling-xdebug-in-mamp-for-osx/),但是 none 这项工作。
这是我的 php.ini 文件:
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php7.4.21/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so"
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_connect_back = 0
我的 launch.json 或我的工作空间:
{
"folders": [
{
"path": "."
}
],
"launch": {
"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": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \(http://localhost:([0-9]+)\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}
}
我做错了什么?可能是很简单的东西,但我没有任何线索。
您使用的是 Xdebug 3 吗?因为在那种情况下,php.ini
设置的名称已更改,您可以在 upgrade guide.
为了诊断其他问题,请尝试调试一个包含 xdebug_info()
的 PHP 文件,它会告诉您 Xdebug 是否尝试连接到您的 IDE以及是否成功。如果没有,它会告诉你原因。