VS 代码调试器 - Felix Becker - 调试器没有命中任何东西
VS Code Debugger - Felix Becker - Debugger doesn't hit anything
我最近安装了 Felix Becker 的 php 调试器。
无论我做什么配置设置,我的调试器都没有命中任何东西。
以下是我的 conf 文件。
xdebug.ini
[xdebug]
; debug
xdebug.default_enable = $value
xdebug.remote_autostart = $value
xdebug.remote_connect_back = 0
xdebug.remote_host = $value
xdebug.remote_port = $value
xdebug.remote_enable = 1
xdebug.idekey = $value
; profiling
xdebug.profiler_enable = 0
xdebug.profiler_output_dir = /tmp
zend_extension=xdebug.so
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": 9009,
"pathMappings": {
"path/path": "$value"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9009,
"pathMappings": {
"path/path": "$value"
}
}
]
}
我在这里遗漏了什么吗?
在 v1.52.1 中推送了对 Becker 扩展的修复,请参阅 https://github.com/microsoft/vscode/issues?q=is:issue+milestone:%22November+2020+Recovery%22+is:closed
Felix Becker 的 php 调试器扩展使用的是先前已弃用的 api,因此最后的 vscode 版本 1.52 意味着它不会命中断点。 vscode 的github 在这方面有很多问题。 vscode 团队成员建议启用此设置以修复:
Debug: Allow Breakpoints Everywhere
见https://github.com/microsoft/vscode/issues/112288#issuecomment-743456329
另一种选择是使用已更新其代码以适应弃用的不同扩展。有关示例,请参阅 https://github.com/felixfbecker/vscode-php-debug/issues/424#issuecomment-727932756
Xdebug v3.0.1, by Derick Rethans
您正在使用 Xdebug v3,但继续使用 Xdebug v2 配置参数。您需要完成 Upgrading from Xdebug 2 to 3 Guide 并调整您的设置(主要是更改参数名称)。
Xdebug v3 使用与 Xdebug v2 不同的 配置参数。据我所知,9 个中有 8 个是“xdebug”。当前 php.ini 的参数在 Xdebug v3.
中做 nothing
对于 Xdebug 3,它应该是这样的(基于您的原始配置):
zend_extension=xdebug.so
[xdebug]
xdebug.mode = debug
; for profiling switch to below:
;xdebug.mode = profile
xdebug.client_host = ${PHP_XDEBUG_REMOTE_HOST}
xdebug.client_port = ${PHP_XDEBUG_REMOTE_PORT}
xdebug.discover_client_host = false
xdebug.start_with_request = ${PHP_XDEBUG_REMOTE_AUTOSTART}
xdebug.idekey = ${PHP_XDEBUG_IDE_KEY}
xdebug.output_dir = /tmp
P.S。 xdebug.discover_client_host
现在将在失败时回退到 xdebug.client_host
(不像 v2 那样只会尝试自动检测主机)。
P.P.S。 xdebug.default_enable = 1
替换为 xdebug.mode = develop
。如果您需要,则可以通过逗号列出多个值,例如xdebug.mode = develop,debug
我最近安装了 Felix Becker 的 php 调试器。 无论我做什么配置设置,我的调试器都没有命中任何东西。 以下是我的 conf 文件。
xdebug.ini
[xdebug]
; debug
xdebug.default_enable = $value
xdebug.remote_autostart = $value
xdebug.remote_connect_back = 0
xdebug.remote_host = $value
xdebug.remote_port = $value
xdebug.remote_enable = 1
xdebug.idekey = $value
; profiling
xdebug.profiler_enable = 0
xdebug.profiler_output_dir = /tmp
zend_extension=xdebug.so
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": 9009,
"pathMappings": {
"path/path": "$value"
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9009,
"pathMappings": {
"path/path": "$value"
}
}
]
}
我在这里遗漏了什么吗?
在 v1.52.1 中推送了对 Becker 扩展的修复,请参阅 https://github.com/microsoft/vscode/issues?q=is:issue+milestone:%22November+2020+Recovery%22+is:closed
Felix Becker 的 php 调试器扩展使用的是先前已弃用的 api,因此最后的 vscode 版本 1.52 意味着它不会命中断点。 vscode 的github 在这方面有很多问题。 vscode 团队成员建议启用此设置以修复:
Debug: Allow Breakpoints Everywhere
见https://github.com/microsoft/vscode/issues/112288#issuecomment-743456329
另一种选择是使用已更新其代码以适应弃用的不同扩展。有关示例,请参阅 https://github.com/felixfbecker/vscode-php-debug/issues/424#issuecomment-727932756
Xdebug v3.0.1, by Derick Rethans
您正在使用 Xdebug v3,但继续使用 Xdebug v2 配置参数。您需要完成 Upgrading from Xdebug 2 to 3 Guide 并调整您的设置(主要是更改参数名称)。
Xdebug v3 使用与 Xdebug v2 不同的 配置参数。据我所知,9 个中有 8 个是“xdebug”。当前 php.ini 的参数在 Xdebug v3.
中做 nothing对于 Xdebug 3,它应该是这样的(基于您的原始配置):
zend_extension=xdebug.so
[xdebug]
xdebug.mode = debug
; for profiling switch to below:
;xdebug.mode = profile
xdebug.client_host = ${PHP_XDEBUG_REMOTE_HOST}
xdebug.client_port = ${PHP_XDEBUG_REMOTE_PORT}
xdebug.discover_client_host = false
xdebug.start_with_request = ${PHP_XDEBUG_REMOTE_AUTOSTART}
xdebug.idekey = ${PHP_XDEBUG_IDE_KEY}
xdebug.output_dir = /tmp
P.S。 xdebug.discover_client_host
现在将在失败时回退到 xdebug.client_host
(不像 v2 那样只会尝试自动检测主机)。
P.P.S。 xdebug.default_enable = 1
替换为 xdebug.mode = develop
。如果您需要,则可以通过逗号列出多个值,例如xdebug.mode = develop,debug