Intellij Idea 在xdebug中未捕获异常“ErrorException”://debug-eval

xtfmy6hx  于 2023-10-15  发布在  其他
关注(0)|答案(3)|浏览(96)

我正在使用
Intellij 14.1.4、PHP v5.5.38、Xdebug v2.2.3
我做了一个修改,定义了一个php $GLOBALS变量[CRED_TYPE]。后来我把这个变量去掉了。我检查了所有地方,这个变量在任何地方都没有定义。只是我的代码里没有。
但由于某种原因,我仍然得到以下问题
(!)致命错误:未捕获的异常“ErrorException”,消息为“Undefined index:CRED_TYPE' in xdebug://debug-eval on line 1(!)ErrorException:未定义索引:CRED_TYPE在xdebug://debug-eval第1行
我甚至重新克隆了整个项目,但每当我试图调试它只是迷路(崩溃),有时我得到这个异常。这不应该在那里,因为没有这样的代码,但为什么我得到这个。
也没有对文件的回溯。我不知道该怎么办,有什么想法吗?

yhived7q

yhived7q1#

解码错误消息的关键是失败代码的位置:xdebug://debug-eval on line 1。它不是文件,而是由调试器动态生成和评估的代码。
每次脚本在调试器中停止时,调试器客户端(PhpStorm、NetBeans等)都会向xdebug PHP扩展(调试器服务器组件)发送一个eval()命令,用于每个监视的表达式。此代码在代码的当前范围(脚本停止的位置)中运行。
由于没有$CRED_TYPE全局变量,因此计算表达式$GLOBALS['CRED_TYPE']会产生一个通知(“Undefined index:CRED_TYPE'")和项目设置的自定义错误处理程序生成并抛出ErrorException。异常未被捕获,脚本异常结束。
确保调试器的“监视”窗口中的表达式列表不包含在放置断点的代码范围内无效的表达式。

raogr8fs

raogr8fs2#

这是XDEBUG问题,可以通过将XDEBUG版本降级(或升级,如果您使用非常旧的PHP)到2.6.1来修复。我无意中遇到了这个问题,却找不到答案。服务器,PHP,PHPStorm,不同版本的XDEBUG都没有帮助。对于MacOS,可以使用
pecl install xdebug-2.6.1
如果你已经有了新的版本,你可以使用命令
pecl uninstall xdebug
经过几个小时的调查,this article中的答案对我帮助很大。

qltillow

qltillow3#

添加一个答案只是为了给予更多的可见性@axiac和@globalSchmidt评论。
检查调试器中的Watch表达式。错误的根源可能就在这里。

相关问题