0

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

我正在使用官方指南(以及更多类似设置的指南),但它似乎不起作用。

我在我的两台 Linux 机器(Ubuntu 和 Fedora)上都试过了。Xdebug 可以很好地进行调试,我可以启动valgrind --tool=cachegrind应用程序,因此两者都应该正确安装。

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

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

4

1 回答 1

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

kcachegrind通常你会使用linux 和wincachegrindwindows上的 GUI 程序来分析 cachegrind 文件。

于 2013-03-07T00:18:49.190 回答