Xdebug是一款免费开放源代码的PHP代码调试工具,支持本地和远程调试,是一名有经验的PHP程序员所必须要掌握的工具。同类的php调试工具还有ZendDebugger,不过貌似要收费。
Xdebug是php调试的增强工具
,有以下用处:
堆栈追踪和函数追踪;
错误信息;
内存分配;
剖析php脚本的信息;
代码覆盖率分析;
远程调试分析;
1:debug重写了php里面var_dump()函数。
var_dump( [mixed var [, ...]] )
给变量对象有不同的颜色,显示类型长度,还可以控制显示层次,显示的方式经过格式化,
清晰友好。需要使用此功能,有如下参数需注意。
;是否覆盖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
void xdebug_debug_zval( [string varname [, ...]]
void xdebug_debug_zval_stdout( [string varname [, ...]] )
返回一个变量的标准输出信息,包括类型,值,引用次数等。
void xdebug_dump_superglobals()
返回全局变量的信息
void xdebug_var_dump( [mixed var [, ...]] )
显示变量的详细信息
2:xdebug的堆栈追踪功能
如果脚本中出现函数参数不正确,方法重复,语法错误等错误的时候。xdebug能追踪其错误产生的产生的过程。
3:使用xdebug进行脚本性能测试
Xdebug 内置函数的应用
xdebug.max_nesting_level = 50 最大循环或调试次数,防止死循环
xdebug.dump_once = On
xdebug.dump_globals = On
xdebug.dump_undefined = On
xdebug.dump.SERVER = REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT
xdebug.dump.REQUEST=*
xdebug.show_exception_trace = On 仍将强制执行异常跟踪
xdebug.show_local_vars = 1
将打印每个函数调用的最外围中的所有局部变量,包括尚未初始化的变量
xdebug.var_display_max_depth = 6
表示转储复杂变量的深度。
string xdebug_call_class()
返回当前被调用的函数或方法所属的类的类名
string xdebug_call_file()
返回调用当前函数的文件名
string xdebug_call_function()
返回调用当前正在执行的函数的函数名
int xdebug_call_line()
返回该函数是在哪一行被调用的。
void xdebug_disable()/xdebug_enable()
禁止/激活显示错误的跟踪栈信息
xdebug_start_error_collection()
xdebug_stop_error_collection()
xdebug_get_collected_errors()
错误收集开始函数,当此函数被执行的时候,xdebug将不在页面上显示错误信息,而是将错误信息以xdebug
自己的规则记录在缓冲区。直到遇到xdebug_stop_error_collection()函数。缓冲区的内容将由xdebug_get_collected_errors()
函数的调用而显示。此功能可以让你的页面不被xdebug的错误显示破坏。
array xdebug_get_headers()
返回所有由php设置的头信息。比如由header(),setcookie函数设置的头信息.
xdebug_is_enabled()
返回xdebug的跟踪状态是否被激活 xdebug.default_enable的值
int xdebug_memory_usage()
返回脚本当前的内存使用数
int xdebug_peak_memory_usage()
返回脚本直达目前为止这段过程中的使用内存的最高值
float xdebug_time_index()
返回脚本开始到现在所使用的秒数
设置xdebug.auto_trace = Off可在代码中添加xdebug_start_trace();xdebug_stop_trace();语句生成追踪文件。
这里推荐使用两款查看工具,ubuntu下可以使用KCachegrind,windows下可以使用WinCacheGrind。具体查看
xdebug测试结果工具使用方法自己谷歌,很简单。懂点E文就可以看懂的。