XDebug用法大全(一)错误调试

来源:互联网 发布:c语言判断质数 编辑:程序博客网 时间:2024/05/18 12:43

XDebug是一个开放源代码的PHP程序调试器(即一个Debug工具,可以用来跟踪,调试和分析PHP程序的运行状况。

一、堆栈化的错误调试

首先来看看Xdebug最基本的功能——堆栈化的错误调试,代码很简单,仅仅有一个名为t1的函数,函数中require了一个不存在的PHP文件

function t1(){require 'notexists.php';}t1();

执行结果如下,可以看到非常详细的错误信息。程序首先执行t1函数,然后在代码的11行抛出了一个致命错误。


二、计算脚本的执行时间和消耗的内存

如果不使用xdebug,会使用microtime函数来计算执行时间,或者通过memory_get_usage/memory_get_peak_usage函数来计算消耗的内存。安装xdebug后,可以使用xdebug_time_index和xdebug_memory_usage/xdebug_peak_memory_usage来实现。要注意的是xdebug_time_index()函数返回的是脚本从mian开始执行到xdebug_time_index函数执行消耗的时间。

代码如下:

echo "xdebug_memory_usage:".xdebug_memory_usage();echo 'xdebug_time_index:'.xdebug_time_index();$arr=array();for($i=1;$i<=10000;++$i){array_push($arr, $i);}echo "xdebug_memory_usage:".xdebug_memory_usage();echo 'xdebug_time_index:'.xdebug_time_index();while(!is_null(array_pop($arr))){}echo "xdebug_memory_usage:".xdebug_memory_usage();echo 'xdebug_time_index:'.xdebug_time_index();echo "xdebug_peak_memory_usage:".xdebug_peak_memory_usage();//显示内存峰值

这样对代码的入侵性太大了,其实xdebug提供了一个非常好的函数,xdebug_print_function_stack();该函数可以输出对函数对账跟踪的结果,使用时,直接加载在代码的尾部即可。


三、xdebug其他函数

xdebug_zval(); 输出变量的(refcount, is_ref=)信息

integer xdebug_get_stack_depth();返回调用函数的stack深度, main()为0级



0 0