Xdebug - 没有配置文件或跟踪输出
Posted
技术标签:
【中文标题】Xdebug - 没有配置文件或跟踪输出【英文标题】:Xdebug - no profile or trace output 【发布时间】:2013-01-04 17:33:16 【问题描述】:我在尝试使用 Xdebug 进行分析和跟踪时有点不知所措(调试工作正常)。更糟糕的是,我让它在不同的服务器/客户端设置上工作得很好,但我似乎看不出这与使用 localhost 的开发人员工作站有什么区别。也没有任何内容输出到 xdebug.log。
服务器:Ubuntu 10.04、php 5.3.2、Xdebug 2.2.1
php.ini:
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.profiler_append = 1
xdebug.profiler_output_dir="/var/www/xdebug-profiles"
xdebug.profiler_output_name="xdebug-profile.%t.%p"
xdebug.auto_trace=0
xdebug.trace_enable_trigger=1
xdebug.trace_options = 1
xdebug.collect_params=4
xdebug.collect_return=1
xdebug.trace_format=2
xdebug.trace_output_dir="/var/www/xdebug-traces"
xdebug.trace_output_name="trace.%t.%p"
xdebug.file_link_format="xdebug://%f@%l"
xdebug.remote_log="/var/www/xdebug.log"
显而易见的答案是“权限!”不幸的是,我很确定不是这样:
# ls -ld /var/www/xdebug-profiles/
drwxrwxrwx 2 www-data www-data 4096 2013-01-02 10:40 /var/www/xdebug-profiles/
使用 Firebug,我可以看到浏览器中肯定设置了 xdebug cookie 以触发分析和跟踪。但是,即使我在 php.ini 中禁用触发并启用全局,我仍然没有得到任何输出。
有人有什么想法吗?我刚出...
【问题讨论】:
phpinfo
是否显示修改后的 ini 设置? Ubuntu 的 PHP 版本倾向于使用大量文件,您可能修改了错误的文件。
不,phpinfo 不显示分析器和跟踪器命令值。这很奇怪,因为 phpinfo 确实显示了 xdebug 命令值。我是通过PECL安装xdebug的,所以一直在修改php.ini。
确保您正在编辑 phpinfo 输出中提到的 ini 文件。有……太多了。
哦,肯定是正确的php.ini。至少,我已经习惯了 :) 我同意 - Ubuntu 摆弄的所有内容使它有点像意大利面条代码的噩梦。
一个问题是这样的 php.ini 设置:xdebug.trace_output_name=%s.%t
。如果%s
扩展为空字符串(例如,包含#!/bin/env php
shebang 的脚本),则所有跟踪输出到隐藏 文件。
【参考方案1】:
啊哈。在玩了一些之后,看到 phpinfo() 中弹出了一些奇怪的东西,看起来“#”在 php.ini 中的 cmets 已被弃用,所以我的 php.ini 中的哈希标记把它炸毁了。用分号替换它们,现在一切都很好。有点棘手,那个...
【讨论】:
以上是关于Xdebug - 没有配置文件或跟踪输出的主要内容,如果未能解决你的问题,请参考以下文章
使用 KCacheGrind 聚合 PHP XDebug 数据