首页 > 开发 > PHP > 正文

php Xdebug的安装与使用详解

2024-05-04 23:10:53
字体:
来源:转载
供稿:网友
为什么需要Debugger?
很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对 于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以 看出来(当然可能还需要使用一些时间函数)。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓。
什么是Xdebug?
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。
如何安装Xdebug?:
1. 打开下载相应的版本
Win:Windows binaries版本
Linux:source
得到一个dll文件(win)或运行安装文件(linux)
2. 安装
Win:将下载的dll文件放到相应的目录中。比如我的就放D:/xampp/php/ext下面;
Linux:执行安装文件
tar -xvzf xdebug-2.1.2.tgz
cd xdebug-2.1.2
phpize (如果phpize没有这个command,需要安装一次phpize。phpize可以让php支持扩展模块)安装phpize:sudo apt-get install php5-dev
如果安装了继续进行下面命令
./configure
make
make install
会有这个界面

php Xdebug的安装与使用详解



cp modules/xdebug.so /usr/lib/php5/20090626+lfs 将xdebug.so文件移到php5下面
3. 编辑php.ini,加入下面几行:
[Xdebug]
zend_extension=D:/xampp/php/ext/php_xdebug.dll (Win)
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so(Linux)

xdebug.profiler_enable=on
xdebug.trace_output_dir="../Projects/xdebug"
xdebug.profiler_output_dir="../Projects/xdebug"
后面的目录“../Projects/xdebug”为你想要放置Xdebug输出的数据文件的目录,可自由设置。
4. 重启Apache;
5. 写一个test.php,内容为<?php phpinfo(); ?>,如果输出的内容中有看到xdebug,说明安装配置成功。如下图:

php Xdebug的安装与使用详解

现在我们来从最简单的程序调试开始一步步介绍Xdebug
调试:
我们先写一个可以导致执行出错的程序,例如尝试包含一个不存在的文件。
testXdebug.php
<?php
require_once(‘abc.php');
?>
然后通过浏览器访问,我们惊奇地发现,出错信息变成了彩色的了:

php Xdebug的安装与使用详解

不过除了样式改变,和我们平时打印的出错信息内容没什么不同,意义不大。好,我们继续改写程序:testXdebug2.php
<?php
testXdebug();
function testXdebug() {
require_once('abc.php');
}
?>
输出信息:

php Xdebug的安装与使用详解

发现了什么? Xdebug跟踪代码的执行,找到了出错的函数testXdebug()
我们把代码再写得复杂一些: 
testXdebug3.php

复制代码 代码如下:


<?php
testXdebug();
function testXdebug() {
requireFile();
}
function requireFile() {
require_once('abc.php');
}
?>


输出信息:

php Xdebug的安装与使用详解

也就是说Xdebug具有类似于JavaException的“跟踪回溯”的功能,可以根据程序的执行一步步跟踪到出错的具体位置,哪怕程序中的调用很复杂,我们也可以通过这个功能来理清代码关系,迅速定位,快速排错。

PHP4.3.0之后版本及PHP5中才生效。这个函数是PHP开发团队在PHP5中新增的函数,然后又反向移植到PHP4.3中。

,xdebug

如何检测代码中的不足?

[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="I:/Projects/xdebug"
xdebug.profiler_output_dir="I:/Projects/xdebug"

这几行,目的就在于把执行情况的分析文件写入到”../Projects/xdebug”目录中去(你可以替换成任何你想设定的目录)。如果你执行某段程序后,再打开相应的目录,可以发现生成了一堆文件,例如cachegrind.out.1169585776这种格式命名的文件。这些就是Xdebug生成的分析文件。用编辑器打开你可以看到很多程序运行的相关细节信息,

最后:

Xdebug提供了各种自带的函数,并对已有的某些PHP函数进行覆写,可以方便地用于调试排错;Xdebug还可以跟踪程序的运行,通过对日志文件的分析,我们可以迅速找到程序运行的瓶颈所在,提高程序效率,从而提高整个系统的性能。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表