使用Xdebug配置cachegrind时遇到问题

时间:2013-03-07 00:05:35

标签: php linux xdebug cachegrind

我正在尝试为cachegrind配置Xdebug,但我无法启用分析器功能以转储已执行的网页。

我正在使用the official guide(还有一些类似的设置)并且它似乎不起作用。

我试过我的两台Linux机器(Ubuntu和Fedora)。 Xdebug在调试时工作正常,我可以为应用程序启动valgrind --tool=cachegrind,因此两者都应该正确安装。

我正在激活和停用php.ini中的profiler_enable和profiler_enable_trigger选项并重新启动服务器,没有运气。更改了输出目录,因为我认为它可能与权限有关。使用URL中的?XDEBUG_PROFILER=1标志作为参数似乎也没有帮助。

任何其他与cachegrind配置相关的线索?

1 个答案:

答案 0 :(得分:2)

以下基本xdebug.ini应该可以解决这个问题:

; check that the path is ok for you
zend_extension=/usr/lib/php5/20090626/xdebug.so
xdebug.profiler_enable=1
xdebug.profiler_output_name = cachegring.out.%s
xdebug.profiler_output_dir = /tmp

请注意,它为每个请求启用了探查器,这是一个重要的性能问题。但是你应该先测试一下是否有效。如果您发现它有效,请默认禁用它。


关于valgrind。

请注意,您尝试做的事情是不可能的。 xdebug探查器不适用于/连接到valgrind。它只使用与valgrind相同的输出格式。因此,格式与例如:

相同
valgrind --tool=cachegrind --cachegrind-out-file=test.cachegrind ls -al

通常,您将使用GUI程序(如Linux上的kcachegrind和Windows上的wincachegrind)分析cachegrind文件。