xdebug:// debug-eval中未捕获的异常'ErrorException'

时间:2017-01-19 15:39:10

标签: php intellij-idea xdebug

我正在使用

  

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

我甚至重新整理了整个项目,但每当我尝试调试它时就会迷路(崩溃),有时我会得到这个异常。这不应该存在,因为没有这样的代码,但为什么我得到这个。

也没有回溯文件。我不知道该怎么办,有什么想法吗?

2 个答案:

答案 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中的答案对我有很大帮助。