pjl*_*l55 5 php joomla xdebug vscode-debugger xdebug-3
希望以下内容足以让您继续下去。
我的设置
我在用着:
PHP.ini
[Xdebug]
zend_extension = xdebug
;zend_extension = "c:\xampp\php\ext\php_xdebug-3.1.1-7.4-vc15-x86_64.dll"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9000
xdebug.log = "c:\xampp\htdocs\j4\tmp\xdebug.log"
问题
我已经使用 VSCode/XAMPP/Xdebug 与 Joomla 3 一起工作了一年多,没有出现任何问题。我离开了几周,当我回来时,我无法单步进入任何 Joomla 3 模块/类。VSCode 会在断点处停止,但单步执行和单步执行都会立即转到父调用函数。
啊,我对自己说,可能 Windows 做了一些事情 - 可能是升级到 J4 以及更新我的环境的好时机。同样的问题。在第一个断点处停止,不会单步执行或单步执行 - 它不会在后续断点处停止。似乎是核心 J4 模块中的单步。堆栈显示正常 - 可以检查初始化的变量。
我尝试过的
一切!为了保持相关性 - 我现在安装了一个全新的、开箱即用的、纯正的 XAMPP、Joomla4 和 Xdebug(按照 Xdebug 向导的建议)。我还暂时禁用了我的 AV (BitDefender)。我的电脑上没有任何防火墙,因为我位于网络防火墙后面。
为了以防万一,我做了深度病毒扫描和磁盘检查——什么也没做。
在安装新的东西之前,我能够获得 Xdebug 日志文件,但现在不能。我还注意到断点不会重置 - 我会删除所有 BP,它们会在下次运行时返回。我必须停止并重新启动 VSCode 中的 PHP 调试才能使它们消失。
我怀疑最新的 Windows 更新(或者可能是最近的几个)对我的开发环境造成了影响。然而,也有可能我在设置中错过了一些愚蠢的东西,因为我已经绕了好几圈了,而且我的大脑无法正常工作。
我需要帮助的地方
我现在不知道下一步该尝试什么 - 有什么建议吗?如果没有其他人可以重现这一点 - 这意味着我的系统中出现了故障,任何帮助将不胜感激。
更新1
我发现 Xdebug v2 已经潜入我的 php/ext 目录 - 不太确定如何 - 这就是为什么我无法让日志文件工作。我现在已经安装并运行了正确的 Xdebug 版本(3.1.1)。然而,单步问题仍然存在。
我现在有来自 VSC 调试控制台以及 xdebug.log 的日志:请参阅此处
我观察到的一件事是,有许多与已弃用的函数相关的错误 - 我希望它们是警告而不是错误!
还有很多“错误评估代码”的情况。
我在日志中用“************”突出显示了代码停止的位置。我不知道这是预期的还是正常的,但它似乎确实发生在断点停止之前很短的时间 - 调试控制台日志中的第 431 行与第 651 行。
更新2
以防万一有人有兴趣 - 我安装了带有 PDT 的最新版本的 Eclipse IDE。使用与之前完全相同的 XAMPP/htdocs 目录 - 并且 Xdebug 按预期工作。单步执行没有问题。
我相信,这意味着 Windows、XAMPP、Xdebug 和 Joomla 可以被排除在罪魁祸首之外,因为这些对于这两种环境都是常见的。相反,这也意味着 VSCode 出了问题,或者至少我的特定 VSCode 设置出了问题。
突破(我认为!)
看来我放入监视窗口的几个变量(例如 $this->missingclasses)导致了问题。我怀疑在一些 VSCode 更新过程中,与这些变量关联的持久内部对象出现了故障/损坏。当我删除有问题的变量时,单步再次开始工作。
看到效果后,我能够将手表放回去并且单步执行按预期工作。将相同的监视变量放入 Eclipse 中对单步执行没有影响。
为了更好地衡量,我还删除并重新安装了 PHP Debug - 尽管我很确定无法评估的监视变量才是真正的问题。
我会把这个问题留几天,然后我会用建议的解决方案来结束这个问题
| 归档时间: | 
 | 
| 查看次数: | 586 次 | 
| 最近记录: |