【问题标题】:PHP Xdebug debugging stops working in VSCode at first breakpointPHP Xdebug 调试在第一个断点处停止在 VSCode 中工作
【发布时间】:2019-11-12 23:39:59
【问题描述】:

我在 Windows 10 Pro 64 位上使用 Wamp。首先,基于 PHP XDebug 的调试在 Visual Studio Code 中的普通核心 PHP 应用程序上运行良好,但是当我开始调试基于 PhalconPhp (MVC) 的应用程序时,它会在第一个断点处停止并且不会继续,无论我尝试什么 - 继续 (F5) , Step Over (F10) 等。所有键或选项都不起作用。

我已经检查了所有类似的问题和解决方案 - 尝试在 php.inilaunch.json 中将端口从默认的 9000 更改为 9001,添加了各种帖子中建议的所有额外配置,尽管我没有进行远程调试。尝试设置单个和多个断点,并尝试将它们保持在代码开头、中间或结尾的不同行。

php.ini

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back=1

xdebug.profiler_enable = On
xdebug.profiler_enable_trigger = On
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="R:/Temp"
xdebug.show_local_vars=1
xdebug.remote_port = 9000
xdebug.remote_log=R:\Temp\xdebug.log

launch.json

{
    "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": 9000
        }
    ]
}

没有错误消息。调试器不会移动一英寸并停留在第一个断点处。我只能在调试器中重新开始执行,其他操作(Step In、Step Over、Continue...)都不起作用。我也有xdebug.log,但没有看到任何有用的东西。

更新: 调试对所有 Php 程序都运行良好,包括 Phalcon 与 VSCode 1.36.1、XDebug 2.6.1、Php 7.2.14 在 Windows 10 上。我认为 VSCode 和 XDebugger 存在一些不兼容问题对于较新的版本,但不确定。

【问题讨论】:

  • 你有活跃的手表吗?当我在手表中有一些不可用的变量时(它们是在调试另一段代码时添加的)时,我就会出现这种行为
  • 我不记得当我遇到这个问题时是否有活跃的手表,很可能没有。已经解决了。它开始自己工作。我发现的主要事情是必须设置 show_local_vars = 1remote_enable = 1 才能使其工作。我看到另一个帖子说 show_local_vars = 9。也可以使用。
  • 当前解决方案:我相信人们正在访问它,所以分享:当我的调试再次停止工作时,我下载了最新的 XDebug DLL 2.9.6 和 VSCode Ver 1.46.1。我向 VSCode Debugging stopped working with Php framework Phalcon 的 Php Debugger 扩展开发人员提出了这个问题,但没有得到回应。我相信开发商现在不支持它。我的调试非常适合在 Windows 10 上使用 Php 7.2.14、VSCode Ver 1.36.1 和 XDebug Ver 2.6.1 的核心 Php 和 Phalcon 程序。它不适用于 Php 7.3 和 7.4。 HTH

标签: php debugging visual-studio-code xdebug phalcon


【解决方案1】:

Setting->Debug 中你应该取消选中"Break at first line in PHP scripts" 项,这个设置是为phpstorm 设置的,但我认为其他IDE 也是一样的。

更新

对于 VS 代码:

launch.json 文件的设置为 "stopOnEntry":true。将此更改为 false 以防止这种情况发生。这方面的文档可以在code.visualstudio.com/docs/python/debugging#_stoponentry

找到

【讨论】:

  • Eclipse中也有类似的设置。
  • 对不起@nima 我在 VSCode 中找不到该设置,我重新检查了。我希望你也理解这个问题,它不是停在第一行,而是停在 第一个断点——不管它在哪一行。
  • 是的,我理解你在第一个断点处导致调试停止的唯一选择就是我所说的
  • TRY THIS: launch.json 文件的设置为“stopOnEntry”:true。将此更改为 false 以防止这种情况发生。可以找到这方面的文档code.visualstudio.com/docs/python/debugging#_stoponentry
【解决方案2】:

我最近开始使用 VS Code 调试 php (wordpress)。当我启用多个断点时,它有时会像您描述的那样卡住。当我在任何时候只启用一个断点时,它似乎运行得很顺利。虽然不是没有麻烦,但总比没有解决好。我猜想当多个线程到达断点时,它们都试图与 xdebug 对话并以某种方式解锁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2021-06-29
    • 2015-09-11
    • 2021-07-21
    • 2021-04-16
    • 2013-06-11
    • 2020-02-01
    相关资源
    最近更新 更多