Xdebug探测器无法正常工作?

时间:2011-11-10 08:34:21

标签: php windows xdebug

我使用XAMPP并且我已经配置它以便为我创建的每个项目提供虚拟主机。

在我的php.ini中,我启用了xdebug,我的脚本运行正常。我的意思是,只要有警告,通知,错误,xdebug就会报告。

现在我想启用Xdebug探查器,我在php.ini中进行了以下更改,以便允许Xdebug探查器生成日志文件:

; xdebug.profiler_enable
; Type: integer, Default value: 0
; Enables Xdebugs profiler which creates files in the profile output directory. Those files can be
; read by KCacheGrind to visualize your data. This setting can not be set in your script with ini_set
; ().
xdebug.profiler_enable = 1

; xdebug.profiler_output_dir
; Type: string, Default value: /tmp
; The directory where the profiler output will be written to, make sure that the user who the PHP
; will be running as has write permissions to that directory. This setting can not be set in your
; script with ini_set().
xdebug.profiler_output_dir ="D:\Web Development Projects\Profile"

我重启了我的Apache,但是当我运行我的脚本时,文件夹Profile中没有生成文件。

我还有什么需要做的吗?

我已经阅读了以便启用Profiler:http://xdebug.org/docs/profiler


经过一番研究,我在我的服务器上的WordPress安装中的index.php末尾添加了代码:

echo xdebug_get_profiler_filename();

在我运行WordPress后,在页脚我得到了结果:

D:/Web Development Projects/Profile/xdebug_profile._::1320916508_018294

但是当我转到文件夹

D:/Web Development Projects/Profile/

文件没有出现在那里?有什么想法吗?

3 个答案:

答案 0 :(得分:22)

问题解决了!

由于日志文件名而生成问题。

我刚将其改为:

xdebug.profiler_output_name = "callgrind.out.%t-%s"

并正常工作!

答案 1 :(得分:15)

首先,您需要确保运行Web服务器的用户实际上对您指定的目录具有写权限,并且需要存在。 Xdebug也可能不喜欢路径中的空格,虽然这应该可以正常工作,但我会尝试设置:

xdebug.profiler_output_dir = "D:/Web Development Projects/Profiler"

因为\ + char可能是一个转义序列。

答案 2 :(得分:0)

如果您在 Linux 上,请检查您不在 PrivateTmp 中,否则所有内容都写在 /tmp 中 检查此 lin 解释 PrivateTmp