我不知道为什么,但 xdebug 没有突出显示 var_dump()。但是配置似乎很好。不知道为什么...有什么建议吗?
这是我的phpinfo(); http://pastebin.com/A45dqnWN
另外,甚至 xdebug_var_dump() 也没有突出显示任何内容。它可以工作,但看起来像正常的var_dump()。
我在你php_info()中找到了"xdebug.default_enable关闭"选项。我还注意到,在最新版本的EasyPHP中,此选项是关闭的。因此,通过在 php 中设置此行来打开它.ini:
xdebug.default_enable=1
接下来只是完全禁用HTML输出中的var_dump和其他错误的常见操作(不是您的情况,但可能对其他人有帮助):
html_errors = On
对于 Xdebug 3,您需要在 php 中启用开发模式.ini:
xdebug.mode= develop
您也可以一次使用多种模式,如此处所述。
接受以下值(对于 xdebug.mode):
关闭
未启用任何内容。Xdebug 除了检查是否启用了功能外,没有任何工作。如果要接近 0 的开销,请使用此设置。
发展
启用开发帮助程序,包括重载的 var_dump()。
覆盖
启用代码覆盖率分析以生成代码覆盖率报告,主要与 PHPUnit 结合使用。
调试
启用单步调试。这可用于在代码运行时单步执行代码,并分析变量的值。
GCSTATS
启用垃圾回收统计信息以收集有关 PHP 垃圾回收机制的统计信息。
轮廓
启用性能分析,您可以使用 KCacheGrind 等工具分析性能瓶颈。
跟踪
启用函数跟踪功能,该功能允许您记录每个函数调用,包括参数、变量赋值和在请求文件期间产生的返回值。
您可以通过逗号分隔多个模式的标识符作为值来同时启用多个模式 xdebug.mode
: xdebug.mode=develop,trace
。
如 Xdebug v3 的@Shadoweb所述,您希望debug
允许在断点处停止,并develop
格式化var_dump
因此.ini您可能需要在 php 中执行以下操作:
xdebug.mode=develop,debug
顺便说一句,我还需要xdebug.start_with_request=yes
来替换重命名的xdebug.xdebug.remote_enable=1
设置,以使步骤调试在我的 IDE 中正常工作。
对于 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
在 php 中关闭 xdebug.mode=debug.ini
;xdebug.mode=debug
并重新启动阿帕奇。