Xdebug xdebug.mode = 调试对我不起作用
Xdebug xdebug.mode = debug not working for me
我已经在 Ubuntu 20.04 系统上安装了 Xdebug。我遵循 this documentation ,我发现它写得很好,并按照规范安装了所有东西。 (我使用 apt 而不是 yum,并将 .so 文件放入 /usr/lib/php/20190902
文件夹而不是文档的示例。)
在该文档中,有一个关于添加到 php.ini 文件的参考(我添加到 /etc/php/7.4/apache2/php.ini
和 /etc/php/7.4/cli/php.ini
文件)。由于文章没有具体提及 .ini 文件的“部分”,我将它们放在 [PHP]
部分中。 (这与关于放在快速参考位之前的评论是一致的。)我重新启动了 Apache2,phpinfo()
输出现在包括 Xdebug,它以前没有包括。一切都很好。
我遇到的麻烦是,尽管我在 php.ini 文件中设置了 xdebug.mode = debug
,但 phpinfo()
输出告诉我 xdebug.mode
设置为 develop
。因此,Step debugger 在我的配置中显示为 Disabled。我不明白为什么。
这些是我添加到每个 php.ini 文件中的行:
zend_extension="/usr/lib/php/20190902/xdebug.so
xdebug.mode = debug
xdebug.discover_client_host = 1
xdebug.start_with_request = yes
这里是 phpinfo()
输出的关键摘录:
一时兴起,我尝试将所有这些设置也放在 php.ini 的一个新部分中,我称之为 [xdebug]
。当这不起作用时,我尝试了 [Xdebug]
。每次尝试后我都重新启动了 Apache2,但症状从未改变。
我可能遗漏了什么?
zend_extension="/usr/lib/php/20190902/xdebug.so
(有一个额外的"
)。
无论如何,很有可能某处还有另一行 xdebug.mode
行,或者正在使用不同的 INI 文件。尝试查看 xdebug_info()
的输出告诉你什么——它还提到了哪些 INI 文件已被读取。
我来这里是为了帮助在 Windows 系统上安装 Xdebug 并安装了 PHP 7.4 的任何人。
可以尝试设置php.ini如下图。
可以在这个文件夹 C:\xampp\php\ext\
中看到我的 xdebug 扩展名为 php_xdebug.dll
xdebug.remote_autostart = 0
xdebug.mode = debug
xdebug.start_with_request = yes
zend_extension = C:\xampp\php\ext\php_xdebug.dll
xdebug.stopOnEntry = true
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.output_dir ="c:\xampp\tmp"
xdebug.show_local_vars=0
xdebug.remote_handler = "dbgp"
xdebug.client_host = "127.0.0.1"
xdebug.log = "C:\xampp\tmp\xdebug.txt"
xdebug.client_port = 9000
xdebug.remote_cookie_expire_time = 36000
*visual studio 代码用户的额外服务。请确保配置中的端口与您设置的相同。
{
// 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": 9000
},
{
"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": 9000,
"serverReadyAction": {
"pattern": "Development Server \(http://localhost:([0-9]+)\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}
我已经在 Ubuntu 20.04 系统上安装了 Xdebug。我遵循 this documentation ,我发现它写得很好,并按照规范安装了所有东西。 (我使用 apt 而不是 yum,并将 .so 文件放入 /usr/lib/php/20190902
文件夹而不是文档的示例。)
在该文档中,有一个关于添加到 php.ini 文件的参考(我添加到 /etc/php/7.4/apache2/php.ini
和 /etc/php/7.4/cli/php.ini
文件)。由于文章没有具体提及 .ini 文件的“部分”,我将它们放在 [PHP]
部分中。 (这与关于放在快速参考位之前的评论是一致的。)我重新启动了 Apache2,phpinfo()
输出现在包括 Xdebug,它以前没有包括。一切都很好。
我遇到的麻烦是,尽管我在 php.ini 文件中设置了 xdebug.mode = debug
,但 phpinfo()
输出告诉我 xdebug.mode
设置为 develop
。因此,Step debugger 在我的配置中显示为 Disabled。我不明白为什么。
这些是我添加到每个 php.ini 文件中的行:
zend_extension="/usr/lib/php/20190902/xdebug.so
xdebug.mode = debug
xdebug.discover_client_host = 1
xdebug.start_with_request = yes
这里是 phpinfo()
输出的关键摘录:
一时兴起,我尝试将所有这些设置也放在 php.ini 的一个新部分中,我称之为 [xdebug]
。当这不起作用时,我尝试了 [Xdebug]
。每次尝试后我都重新启动了 Apache2,但症状从未改变。
我可能遗漏了什么?
zend_extension="/usr/lib/php/20190902/xdebug.so
(有一个额外的"
)。
无论如何,很有可能某处还有另一行 xdebug.mode
行,或者正在使用不同的 INI 文件。尝试查看 xdebug_info()
的输出告诉你什么——它还提到了哪些 INI 文件已被读取。
我来这里是为了帮助在 Windows 系统上安装 Xdebug 并安装了 PHP 7.4 的任何人。 可以尝试设置php.ini如下图。 可以在这个文件夹 C:\xampp\php\ext\
中看到我的 xdebug 扩展名为 php_xdebug.dllxdebug.remote_autostart = 0
xdebug.mode = debug
xdebug.start_with_request = yes
zend_extension = C:\xampp\php\ext\php_xdebug.dll
xdebug.stopOnEntry = true
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = Off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.output_dir ="c:\xampp\tmp"
xdebug.show_local_vars=0
xdebug.remote_handler = "dbgp"
xdebug.client_host = "127.0.0.1"
xdebug.log = "C:\xampp\tmp\xdebug.txt"
xdebug.client_port = 9000
xdebug.remote_cookie_expire_time = 36000
*visual studio 代码用户的额外服务。请确保配置中的端口与您设置的相同。
{
// 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": 9000
},
{
"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": 9000,
"serverReadyAction": {
"pattern": "Development Server \(http://localhost:([0-9]+)\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}