【发布时间】:2012-08-06 14:19:57
【问题描述】:
我不知道为什么,但是 xdebug 没有突出显示 var_dump()。但是配置似乎很好。不知道为什么...有什么建议吗?
这是我的 phpinfo(); http://pastebin.com/A45dqnWN
加上甚至 xdebug_var_dump() 不会突出显示任何内容。它可以工作,但看起来像普通的 var_dump()。
【问题讨论】:
我不知道为什么,但是 xdebug 没有突出显示 var_dump()。但是配置似乎很好。不知道为什么...有什么建议吗?
这是我的 phpinfo(); http://pastebin.com/A45dqnWN
加上甚至 xdebug_var_dump() 不会突出显示任何内容。它可以工作,但看起来像普通的 var_dump()。
【问题讨论】:
我在你的 php_info() 中找到了“xdebug.default_enable Off Off”选项。我还注意到,在 EasyPHP 的最新版本中,此选项已关闭。所以通过在 php.ini 中设置这一行来开启它:
xdebug.default_enable=1
下一步只是一个常见的操作,它完全禁用 var_dump 和 HTML 输出中的其他错误(不是你的情况,但可能对其他人有帮助):
html_errors = On
【讨论】:
xdebug.overload_var_dump 为1 或2。如果设置为0,它将不会替换默认的php var_dump
对于 php 7.0.2 和 xdebug 2.4.0
xdebug.default_enable=1
+
html_errors = On
仍然没有为 xdebug_var_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
【讨论】:
关闭xdebug.mode=debug in php.ini like
;xdebug.mode=debug
并重新启动 Apache。
【讨论】:
【讨论】:
xdebug.mode=develop,debug
正如@Shadoweb for Xdebug v3 所述,您希望debug 允许在断点处停止,并希望develop 格式化var_dump
因此,您可能希望在 php.ini 中包含以下内容:
xdebug.mode=develop,debug
顺便说一句,我还需要 xdebug.start_with_request=yes 来替换重命名的 xdebug.xdebug.remote_enable=1 设置,以便在我的 IDE 中进行步进调试。
【讨论】:
develop 将停止断点工作