xdebug是PHP的一个扩展应用,有了xdebug就可以轻松的调试PHP程序,有了它,我们就不用使用var_dump()
,print_r()
之类的傻瓜调试函数了。
Xdebug则提供了更多的功能,能全方位的对PHP脚本进行调试。Xdebug主要的功能如下:
- 堆栈追踪和函数追踪;
- 错误信息;
- 内存分配;
- 剖析php脚本的信息;
- 代码覆盖率分析;
- 远程调试分析;
1、Ubuntu搭建xdebug调试环境
安装Xdebug模块
在终端中使用apt-get安装xdebug,命令如下
sudo apt-get install php5-dev php-pear
sudo apt-get install php5-xdebug
然后打开php.ini文件(例如gedit /etc/php5/apache2/php.ini)。进行如下配置;
;加载xdebug动态链接库
extension=xdebug.so
;xdebug分析文件输出路径
xdebug.profiler_output_dir = “/var/www/xdebug/”
;分析器默认是关闭,调试的时候在url中加入XDEBUG_PROFILE=true即可
xdebug.profiler_enable = Off
xdebug.profiler_enable_trigger = 1
重启apache,这样就可以使用xdebug调试PHP了。
2、windows下安装xdebug
以PHP5.1.4,Windows平台为例(其它PHP版本,其它平台请参看官网文档):
1. 登录www.xdebug.org,在首页右侧有一个Windows modules,选择其中的PHP5.1.2+,下载php_xdebug-5.1.2-2.0.0beta6.dll文件;
2. 将下载的php_xdebug-5.1.2-2.0.0beta6.dll放到C:php5ext目录,重命名为php_xdebug.dll;
3. 编辑php.ini,加入下面几行:
extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir=”I:Projectsxdebug”
xdebug.profiler_output_dir=”I:Projectsxdebug”
xdebug.dump.GET=*
xdebug.show_local_vars=1
具体参数PHP.ini说明参见ubuntu下的注释。
3、使用xdebug进行PHP调试
xdebug调试变量更加友好
Xdebug重写了php里面var_dump()
函数。
xdebug里的var_dump()给变量对象有不同的颜色,显示类型长度,还可以控制显示层次,显示的方式经过格式化,清晰友好。
需要使用此功能,有如下参数需注意。
;是否覆盖php里面的函数var_dump();默认是开启的,值为1;设为0,则关闭;
xdebug.overload_var_dump = 1
;控制数组子元素显示的大小默认为256
xdebug.var_display_max_children = 256
;控制变量打印的大小,默认为512
xdebug.var_display_max_data = 512
;控制数组和对象元素显示的层级。默认为3
xdebug.var_display_max_depth = 3
xdebug的堆栈追踪功能
如果脚本中出现函数参数不正确,方法重复,语法错误等错误的时候。xdebug能追踪其错误产生的产生的过程。
参数配置请参考http://xdebug.com/docs/stack_trace;一般来说,很少需要配置。
4、使用xdebug进行脚本性能测试
在php.ini做如下配置
;默认为0,不开启xdebug调试器;
xdebug.profiler_enable = 0
;默认为0;这里设为1,可以通过XDEBUG_PROFILE参数通过GET/POST传递
xdebug.profiler_enable_trigger = 1
测试性能结果查看工具
测试完毕后,我们需要查看下测试结果,从而找到PHP的瓶颈。
这里推荐使用两款查看工具,ubuntu下可以使用KCachegrind,windows下可以使用WinCacheGrind。具体查看xdebug测试结果工具使用方法自己谷歌,很简单。懂点E文就可以看懂的。
5、xdebug使用注意及相关参数说明
xdebug使用注意
如果您在 phpinfo() 的输出中没有看到 Xdebug 部分,则 Xdebug 装入失败。Apache 错误日志会列出原因。常见错误包括 zend_extension 的路径错误或者与其他扩展发生冲突。例如,如果需要使用 XCache 和 Xdebug,一定要先装入 XCache。但是,由于 Xdebug 适于在开发时使用并假定 xdebug.so 的路径正确,因此需要禁用其他扩展并重试。然后您可以重新启用扩展以执行其他测试,如缓存的效果。
Xdebug 站点还有其他一些故障检修技巧。
xdebug相关参数设置
xdebug.default_enable
类型:布尔型 默认值:On
如果这项设置为On,堆栈跟踪将被默认的显示在错误事件中。你可以通过在代码中使用xdebug_disable()来禁止堆叠跟踪的显示。因为这是xdebug基本功能之一,将这项参数设置为On是比较明智的。
精彩内容,请点击下一页!
波比源码 » 使用xdebug调试PHP 找出PHP程序的瓶颈
levaquin 250mg pill cost levofloxacin 250mg
dutasteride over the counter avodart canada buy ondansetron for sale
aldactone 25mg ca order fluconazole pills buy generic fluconazole
acillin drug acillin brand erythromycin 250mg usa
buy fildena 100mg online cheap methocarbamol 500mg drug order robaxin for sale
sildenafil us purchase sildalis online buy estrace pill
order lamictal online buy lamictal for sale order generic tretinoin cream
order tadalafil 20mg pills order tadalafil 20mg generic diclofenac 50mg usa
order isotretinoin 40mg online buy amoxicillin sale order zithromax online cheap
buy tadalafil 40mg without prescription Canadian pharmacy viagra legal sildenafil tablets
anastrozole cheap Buy viagra cheap buy viagra online cheap
tadalafil bestellen tadalafil 5mg fГјr frauen viagra 50mg fГјr frauen
buy isotretinoin 20mg pill cost isotretinoin 20mg stromectol tablets for humans for sale
buy modafinil 200mg diamox 250 mg without prescription acetazolamide 250 mg without prescription
order doxycycline 200mg without prescription buy doxycycline 200mg brand lasix 40mg
buy catapres 0.1 mg online cheap antivert online order tiotropium bromide pill
buy benicar pills divalproex drug diamox 250mg cost
prograf over the counter order urso 300mg pill buy urso pill
purchase isosorbide lanoxin 250 mg pill cheap micardis 20mg
bupropion 150 mg canada purchase strattera quetiapine 50mg for sale
order generic sertraline 100mg buy sildenafil 100mg for sale sildenafil pills
buy revia 50mg pills generic aripiprazole 20mg abilify for sale online
provigil over the counter stromectol for sale online stromectol ivermectin 3 mg
fluvoxamine 50mg price order luvox for sale glipizide 10mg tablet
brand nootropil 800mg viagra medication viagra 50mg brand
buy azithromycin online cheap brand prednisolone purchase neurontin generic
buy tadalafil generic us cialis sildenafil 100mg without prescription
furosemide 100mg usa plaquenil 200mg without prescription order plaquenil sale
cost cialis 5mg buy cialis 40mg without prescription purchase anafranil generic
clozapine 50mg cost clozaril 100mg uk buy dexamethasone 0,5 mg generic
zyvox over the counter play blackjack casino games online red dog casino
purchase prilosec online where can i buy an essay online blackjack for real money usa
metoprolol 50mg pills order levitra pill order levitra 20mg
buy an essay online bonus casino online casino no deposit bonus
cialis tablets viagra order purchase sildenafil
order triamcinolone 10mg generic order generic clarinex 5mg buy clarinex 5mg pill
zyloprim 100mg cost allopurinol 100mg generic buy zetia generic
buy generic methotrexate 2.5mg warfarin 2mg drug reglan brand
buy losartan 50mg online cheap order cozaar 50mg pills topiramate brand
order lioresal online cheap ketorolac toradol buy online
order imitrex pill purchase imitrex online cheap order avodart 0.5mg pill
colchicine brand online poker free online casinos usa
tadalafil 5mg oral buy ampicillin 250mg without prescription buy cipro 1000mg online cheap
order simvastatin generic buy proscar 1mg for sale cost finasteride 5mg
buy generic cefuroxime 500mg robaxin 500mg oral order robaxin 500mg without prescription
sildalis online order lamotrigine 50mg sale buy lamotrigine online cheap