debugging 我安装了Xdebug,但它不在VS代码中调试,并且在调用堆栈中不显示任何内容

alen0pnh  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(170)

我已经尝试了很多方法来解决这个问题,但没有工作。以下是我的php.ini文件代码:

[XDebug]
xdebug.mode=debug
xdebug.remote_enable=on
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.discover_client_host = true
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"

我也尝试过xdebug.profiler_enable=on,但是当我在CMD中运行php -v时,两者都有这个问题:
Xdebug:[配置]设置“xdebug.remote_enable”已重命名,请参见www.example.com上的升级指南https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_enable(参见:https://xdebug.org/docs/errors#CFG-C-CHANGED)
下面是我的launch.json文件:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Built-in web server",
            "type": "php",
            "request": "launch",
            "runtimeArgs": [
                "-dxdebug.mode=debug",
                "-dxdebug.start_with_request=yes",
                "-S",
                "localhost:0"
            ],
            "program": "C:\\xampp\\htdocs\\todoxampp\\todo_db.php",
            "cwd": "${workspaceRoot}",
            "port": 9003,
            "serverReadyAction": {
                "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
                "uriFormat": "http://localhost:%s",
                "action": "openExternally"
            }
        },
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        },
        {
            "name": "Listen for Xdebug 2 (Legacy)",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script with Xdebug 2 (Legacy)",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 0,
            "runtimeArgs": [
                "-dxdebug.remote_enable=yes",
                "-dxdebug.remote_autostart=yes"
            ],
            "env": {
                "XDEBUG_CONFIG": "remote_port=${port}"
            }
        },
        {
            "name": "Xdebug Cloud",
            "type": "php",
            "request": "launch",
            "xdebugCloudToken": ""
        },
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://localhost:8080",
            "webRoot": "${workspaceFolder}"
        }
    ],
    "pathMappings": {
        "/var/www/html": "${workspaceFolder}/www",
        "/app": "${workspaceFolder}/app"
    }
}

我还升级了我的PHP和Apache版本。我使用的是XAMPP。
我已经按照安装Xdebug的一步一步的说明,并观看YouTube教程,但似乎没有工作:我的变量、监视和调用堆栈为空,并且代码未调试。

e5njpo68

e5njpo681#

如果您使用的是Xdebug 3,您可以从VS Code launch.json文件中删除Xdebug 2配置。不确定这是否会导致问题,但可能最好保留已安装的配置。请在此处参考Xdebug设置选项:https://xdebug.org/docs/all_settings
确保您的php.ini配置设置为与http服务器一起使用,特别注意

xdebug.client_host =  
xdebug.client_port = 
xdebug.discover_client_host = 
xdebug.idekey =
xdebug.mode =
xdebug.start_upon_error =
xdebug.start_with_request =

在对php.ini文件进行任何更改后,请务必重新启动服务器。使用phpinfo.php文件验证您的设置。

<?php // filename phpinfo.php
phpinfo(); 
?>

确保Xdebug显示在phpinfo报告中(使用浏览器[control]+F在phpinfo.php文件加载时快速找到“xdebug”)
你使用断点和“侦听Xdebug”吗?当你尝试“内置服务器”时会发生什么?
在VS代码之外,如果你在php中遇到错误,你会得到Xdebug信息吗?你可以写一些你知道会导致错误的代码来测试它,然后把它加载到浏览器中,看看你是否得到了Xdebug信息。
请在Xdebug站点参考本节:https://xdebug.org/docs/install#xdebug_info
总之,很难说出哪里出错了。如果你发布了你的PHP版本和服务器信息,这会很有帮助。当你加载phpinfo.php文件时,在顶部附近找一行“Loaded Configuration File”,并确保显示的内容是你正在编辑的php.ini文件。
祝你好运!

相关问题