我正在使用
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行
我甚至重新克隆了整个项目,但每当我试图调试它只是迷路(崩溃),有时我得到这个异常。这不应该在那里,因为没有这样的代码,但为什么我得到这个。
也没有对文件的回溯。我不知道该怎么办,有什么想法吗?
3条答案
按热度按时间yhived7q1#
解码错误消息的关键是失败代码的位置:
xdebug://debug-eval on line 1
。它不是文件,而是由调试器动态生成和评估的代码。每次脚本在调试器中停止时,调试器客户端(PhpStorm、NetBeans等)都会向
xdebug
PHP扩展(调试器服务器组件)发送一个eval()
命令,用于每个监视的表达式。此代码在代码的当前范围(脚本停止的位置)中运行。由于没有
$CRED_TYPE
全局变量,因此计算表达式$GLOBALS['CRED_TYPE']
会产生一个通知(“Undefined index:CRED_TYPE'")和项目设置的自定义错误处理程序生成并抛出ErrorException
。异常未被捕获,脚本异常结束。确保调试器的“监视”窗口中的表达式列表不包含在放置断点的代码范围内无效的表达式。
raogr8fs2#
这是XDEBUG问题,可以通过将XDEBUG版本降级(或升级,如果您使用非常旧的PHP)到2.6.1来修复。我无意中遇到了这个问题,却找不到答案。服务器,PHP,PHPStorm,不同版本的XDEBUG都没有帮助。对于MacOS,可以使用
pecl install xdebug-2.6.1
如果你已经有了新的版本,你可以使用命令
pecl uninstall xdebug
经过几个小时的调查,this article中的答案对我帮助很大。
qltillow3#
添加一个答案只是为了给予更多的可见性@axiac和@globalSchmidt评论。
检查调试器中的Watch表达式。错误的根源可能就在这里。