Php Xdebug不能与var_dump()一起使用

Php Xdebug不能与var_dump()一起使用,php,xdebug,var-dump,Php,Xdebug,Var Dump,我不知道为什么,但是xdebug没有突出显示var_dump()。但配置似乎很好。不知道为什么。。。有什么建议吗 这是我的phpinfo() 另外,即使是xdebug\u var\u dump()也不会突出显示任何内容。它可以工作,但看起来像普通的var\u dump()。我在php\u info()中找到了选项“xdebug.default\u enable Off”。我还注意到,在EasyHP的最新版本中,此选项已关闭。因此,通过在php.ini中设置这一行来打开它: xdebug.defa

我不知道为什么,但是xdebug没有突出显示var_dump()。但配置似乎很好。不知道为什么。。。有什么建议吗

这是我的phpinfo()

另外,即使是xdebug\u var\u dump()也不会突出显示任何内容。它可以工作,但看起来像普通的var\u dump()。

我在php\u info()中找到了选项“xdebug.default\u enable Off”。我还注意到,在EasyHP的最新版本中,此选项已关闭。因此,通过在php.ini中设置这一行来打开它:

xdebug.default_enable=1
下一步是完全禁用HTML输出中的var_dump和其他错误的常见操作(不是您的情况,但可能对其他人有帮助):


对于PHP7.0.2和xdebug 2.4.0

xdebug.default_enable=1
+

仍然不为xdebug\u var\u dump()输出着色

但是这个补丁解决了我的问题。它仅适用于xdebug.c和xdebug_var_dump()。我认为他们犯了一个错误,即xdebug_var_dump只有在需要重载函数时才起作用

@@ -2191,11 +2191,6 @@
    int     i, len;
    char   *val;

-   if (!XG(overload_var_dump)) {
-       XG(orig_var_dump_func)(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-       return;
-   }
-
    argc = ZEND_NUM_ARGS();

 #if PHP_VERSION_ID >= 70000

在php.ini中关闭xdebug.mode=debug,如

);xdebug.mode=debug


然后重新启动Apache。

对于Xdebug 3,您需要在php.ini中启用开发模式:

xdebug.mode= develop

您还可以按照说明同时使用多种模式。

正如@Shadoweb for Xdebug v3所述,您希望
debug
允许在断点处停止,并
develope
格式化
var\u dump

因此,在php.ini中可能需要以下内容:

xdebug.mode=develop,debug

另外,我还需要
xdebug.start\u with_request=yes
来替换重命名的
xdebug.xdebug.remote\u enable=1
设置,以便在我的IDE中进行步骤调试。

谢谢,刚刚发现html\u错误被窃听了很长时间,因为它们在我的php.ini中被默认禁用。对于您来说,upvoteas还可以确保
xdebug.overload\u var\u dump
为1或2。如果设置为0,它将不会替换默认的php
var_dump
,但它不会在断点处停止。但是您可以组合多种模式,因此请确保至少有
xdebug.mode=develope,debug
这应该是最上等的答案b/c将其设置为刚好
develope
将停止断点工作这里是文档中的链接,说明实际上官方支持用逗号分隔的多个值-
xdebug.mode= develop
xdebug.mode=develop,debug