Xdebug的使用说明

来源:互联网 发布:国外期刊网站 知乎 编辑:程序博客网 时间:2024/06/05 12:02

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文就可以看懂的。