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"
            }
        }
    ]
}