如何使用Xdebug系列之一 介绍和安装Xdebug

本文为转载内容,正文中需注明作者及出处,若对您造成侵权,请联系我们

因为灵活轻巧,使用方便Xdebug被称之为PHP开发者的瑞士军刀!
    Xdebug是一个PHP扩展库,是由PHP核心开发人员Derick Rethans创建的免费开源项目。官方网址:http://xdebug.org/
下面开始安装Xdebug
这里主要讲在windows系统上怎么安装,需要在linux系统的安装的可以查看官方说明:http://xdebug.org/docs/install  

安装

安装的具体步骤也可以看查看我的原创文章  :  Xdebug从安装到简单使用


第一步:下载,下载页面:http://xdebug.org/download.php
注意:1,一定要选择跟自己操作系统和PHP版本对应的版本(下载页面有对应PHP版本信息)!
           2,Xdebug只能在PHP4.3以后的版本上才能工作!

我的开发环境:
操作系统:32位windows7系统
PHP:下载的安装包:PHP5.4.13(VC9 x86 Thread Safe)
           安装后可以用php –version命令查看PHP版本
如:  


web 服务器:Apache2.2.22
Xdebug:Xdebug 2.2.2 (PHP 5.4 VC9 TS (32 bit))下载包截图如下:  

 


第二步:安装
把下载的Xdebug放到PHP的扩展库目录(既PHP的ext目录)
D:\php\ext
然后再php配置文件里添加如下一行来让PHP加载Xdebug
zend_extension=”d:/php/ext/php_xdebug-2.2.2-5.4-vc9.dll”
注意:1,这里一定要写Xdebug的绝对路径二不是相对路径
           2,不要把Xdebug跟其他Debugger一起使用

第三步:验证
一定要重启Web服务器后用
验证方法一:用php -m命令
如果输出结果里面有如下信息表明安装成功


验证方法二:用php –version命令
如果输出结果里面有如下信息表明安装成功  


验证方法二:查看phpinfo()函数输出结果
如果输出结果里面有如下信息表明安装成功  


Xdebug基本功能基本功能一,Xdebug 能够改善var_dump()的输出
    由于PHP是动态脚本语言,我们以前调试PHP程序时候经常会var_dump()函数。
    但这种方法存在一些缺点,比如:1,每次都得改动代码。2,随着代码的增多有时候可能忘记把调试时候的var_dump忘记注释掉,3.var_dunp()输出并不完美,特别是输出比较复杂的时候显得比较乱!
例如  

 


没有使用Xdebug时候的显示效果如下:  


使用Xdebug后显示效果如下:  


xdebug.var_display_max_data=<int>
可以用来控制字符串的显示长度:
例如: 

 

显示效果如下:  


如果设置
xdebug.var_display_max_data=20
会变成如下显示:  


基本功能二
xdebug.var_display_max_children控制数组的元素数量和对象里属性数量
xdebug.var_display_max_data 控制一个变量的显示深度
xdebug.var_display_max_depth控制数组的元素和对象里属性的嵌套深度

基本功能三
函数: xdebug_dump_superglobals()可以用来显示超变量内容:
例如:



基本功能四 Xdebug改善错误信息的显示使得当发生错误的时候显示错误信息的同时把堆栈跟踪也显示出来,这样能使开发者能够快速查找到具体发生错误的点!
虽然PHP5.0之后有了PHP引入了堆栈跟踪函数debug_print_backtrace()但是不可能每次发生错误时都写这个函数来跟踪错误,所以你必须自己写错误处理函数来堆栈跟踪发生的错误!
但是用Xdebug比上面的方法更方便!

例如:  

显示如下:  


发生错误时php默认的错误显示如下:  

如果已经安装了Xdebug错误显示如下:  


这里会显示堆栈跟踪信息还有程序里每个函数运行时所耗时间以及内存情况!
基本功能五
xdebug.show_local_vars=1命令或者ini_set(‘xdebug.show_local_vars’, ‘On’)来显示本地变量信息
如下:  


会显示:  


基本功能六:
指令xdebug.collect_params用来控制函数参数的显示
xdebug.collect_params可以接受0,1,2,3,4 总共5个不同的值
下面的代码在5个不同的值下面分别如下:  


当值为0时  


当值为1时  


当值为2时  


当xdebug.collect_params=3时  


当xdebug.collect_params=4时  


当xdebug.collect_params=0时不会显示函数参数的任何信息!
当xdebug.collect_params=1和xdebug.collect_params=2时值显示参数类型!
(当值为1和2是看起来效果一样,但是2主要是用来为跟其他工具配合使用的)
当xdebug.collect_params=3时显示被传递的值,
当xdebug.collect_params=4时会显示参数的完整信息!最后需要说明的是:
1,只能在开发环境下才使用Xdebug,不要在生产环境下用Xdebug
2,当你自己定义一个error handler 并用egister_error_handler()注册该函数为错误处理函数后Xdebug的错误显示功能就会失效!
3,面向对象的代码可能会用到exceptions,当发生exception的时候默认状态下Xdebug不会显示错误信息以及堆栈跟踪信息,因为exception不一定是error,除非这个是个未捕获的exception!
当然可以xdebug.show_exception_trace=On命令使Xdebug在发生exception时显示堆栈跟踪信息! 

 原文地址:使用Xdebug五部曲之一 介绍和安装Xdebug以及基本功能