- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 PhpStorm 版本#PS-222.3345.135 的 Ubuntu 18.04 系统。我使用的是 PHP 7.4.20 和 Xdebug 2.9.8。
首先,当我没有在我的网络请求上运行 Xdebug 时,它们工作得很好。当我尝试使用 Xdebug 逐步执行时,方法会过早退出,如下面的屏幕截图所示:
第一张截图:
执行在 launch()
方法的第一行。因此,按下 Step Over 按钮应该会执行到第 112 行 ($this->_state->setAreaCode($areaCode));
相反,按下 Step Over 会提前退出 launch()
方法并将执行线程带回 Bootstrap::run()
方法,如下所示:
请注意,run()
局部作用域中没有 $response
变量,因为 launch()
方法不允许返回由于过早退出而产生的值。再次按 Step Over 将导致 $response->sendResponse()
抛出异常,如下面的屏幕截图所示:
总而言之,这里的问题是 Xdebug 没有正确单步执行代码。这个问题直到上周才开始出现,我的项目路径映射与之前相同。
这发生在多个 PhpStorm 项目中,而不仅仅是这个代码库。但是,我确实有一个 PhpStorm 项目(代码库要小得多),其中单步执行代码工作正常(结果我将 PhpStorm 内存限制升级到 2GB,但没有解决任何问题)。
有人知道为什么会这样吗?
最佳答案
这是 PhpStorm 2022.2 问题(WI-67891 票)。
Reason of the bug is found and fixed. Fix will be available in next minor update. Below is a technical summary of the issue for ones who curious about what happened:
Xdebug had a bug which is basically breaks further
step_over
commands by passing invalideval
commands. This bug is fixed in 3.1, but present in all older versions.In 2022.2 We've implemented feature WI-56517 that shows
__toString
representation of the object in debug panel. This feature is implemented by passingeval((string)expression)
command on start of debug sessionsIt turned out that there are number of invalid inputs that happened to be produced by this command:
- Private properties from parent class. Xdebug returns such properties in the format that is not suitable for plain evaluation https://github.com/xdebug/xdebug/blob/5af18430eb0b2c9574e903e6a9b9ef40c0ea7296/src/lib/var_export_xml.c#L441
::
instead of$this
in case of static method (issue WI-67023)Combination of these factors resulted into broken
step_over
. Both cases are fixed and will be available in next minor update. Sorry for the inconvenience and thank you for reporting the issue.
上述WI-67891票被标记为固定为 2022.2.1。你可以try 2022.2.1 Preview现在。
同时有一些报告说,在某些情况下(未涵盖的情况),调试仍然无法像以前的版本那样工作。可悲的是,有更多无用的“我也是”评论而不是“这是一个代码示例,但它仍然不起作用”(因为它需要时间来制作它,看看可能导致它的原因,能够发现其中的差异设置/环境等)。
当前的解决方案:
设置/首选项 | PHP |调试 |评价 |启用“__toString”对象 View
,直到确认已正确解析。不要忘记将其还原(此功能似乎方便调试时快速浏览)。关于PhpStorm Xdebug 过早退出方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73269823/
我的测试代码: int SIZE = 1900; int[][] array = new int[SIZE][]; for (int i = 0; i < SIZE; i++) { array[i
我有一堆 WAV 文件和一个将它们复制到另一个目录的脚本,但使用 SoX 处理了一些文件。输出的文件都应该有 1 个 channel ,采样率不超过 44.1khz。我的大多数文件要么有一个以上的 c
我正在运行一个相当占用内存的 Python 脚本,但似乎我的机器正在提前终止进程。我安装了 16GB(并通过 lshw -class memory 确认),但我的进程似乎在使用量达到 4GB 左右时被
我很难确定在使用 .NET 的 HttpWebRequest 类调用远程服务器(特别是 REST Web 服务)时是否有办法处理潜在的连接问题。根据我的调查,WebClient 类的行为是相同的,这在
所以我有这个网址: http://test.com/afolder/who-else-wants-to-make-horror-movies%3f/ 这是 URL 编码版本: http://test.
我是一名优秀的程序员,十分优秀!