我正在使用
Intellij 14.1.4,PHP v5.5.38,Xdebug v2.2.3
我做了一个更改,它定义了一个php $ GLOBALS ['CRED_TYPE']变量。我稍后删除了该变量。我到处检查,这个变量不再在任何地方定义了。它只是在我的代码中没有。
但由于某种原因,我仍然遇到以下问题
(!)致命错误:第1行的xdebug:// debug-eval中带有'Undefined index:CRED_TYPE'消息的未捕获异常'ErrorException' (!)ErrorException:未定义的索引:第1行的xdebug:// debug-eval中的CRED_TYPE
我甚至重新整理了整个项目,但每当我尝试调试它时就会迷路(崩溃),有时我会得到这个异常。这不应该存在,因为没有这样的代码,但为什么我得到这个。
也没有回溯文件。我不知道该怎么办,有什么想法吗?
答案 0 :(得分:4)
解码错误消息的关键是失败代码的位置:xdebug://debug-eval on line 1
。它不是一个文件,而是由调试器动态生成和评估的代码。
每次脚本停止进入调试器时,调试器客户端(PhpStorm,NetBeans等)会向xdebug
PHP扩展(调试器服务器组件)发送一个eval()
命令,用于每个监视的表达式。此代码在代码的当前范围内运行(脚本停止的位置)。
由于没有$CRED_TYPE
个全局变量,因此评估表达式$GLOBALS['CRED_TYPE']
会产生一个通知(“Undefined index:CRED_TYPE'”)以及由您设置的自定义错误处理程序project生成并从中抛出ErrorException
。异常未被捕获且脚本异常结束。
确保调试器的Watch窗口中的表达式列表不包含在放置断点的代码范围内无效的表达式。
答案 1 :(得分:1)
这是XDEBUG问题,可以通过将XDEBUG版本降级到2.6.1来解决(如果使用非常老的PHP,则可以进行升级)。 我无意中遇到了这个问题,无法找到答案。重新安装服务器,PHP,PHPStorm,不同版本的XDEBUG并没有帮助。 对于MacOS,可以使用
pecl install xdebug-2.6.1
如果您已经有较新的版本,则可以使用命令
pecl uninstall xdebug
经过几个小时的调查,this article中的答案对我有很大帮助。