首页 > 技术文章 > xdebug参数说明

liuxuzzz 原文

;;;;;;;;;;;;;;;;;;;;;;;;
; Basic Features
; xdebug基本功能,如堆栈跟踪,递归错误安全输出,时间内存跟踪等
;;;;;;;;;;;;;;;;;;;;;;;;
;# int, default:1
;# 自动启用,如果需要临时关闭,使用xdebug_disable(),当使用此项时,error时会显示详细堆栈信息
;xdebug.xdebug_enable=1
;
;# int, default:0
;# 无视php dispaly_errors配置
;xdebug.force_display_errors=1
;
;# int, default:0
;# 比特位方式设置,使用or,无视error_reporting()和ini配置
;xdebug.force_error_reporting

;# int, default:0
;# 提升错误类型,例如设置为E_WARNING,此后此类型错误将以error方式报错,之支持一下四个类别:E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE
;xdebug.halt_level
;
;# int, default:256
;# 无限递归保护
;xdebug.max_nesting_level
;
;int, default:-1
;最打追踪堆栈数
;xdebug.max_stack_frames
;
;boolean, default:0
;关闭@抑制错误符号功能,将不再抑制错误
;xdebug.scream
;
;;;;;;;;;;;;;;;;
;function
;;;;;;;;;;;;;;;;
;返回调用的类等信息,堆栈不存在返回null,堆栈没有类信息返回false
;string xdebug_call_class([int $depth = 1])
;string xdebug_call_funciton([int $depth = 1])
;string xdebug_call_file([int $depth = 1])
;string xdebug_call_line([int $depth = 1])
;
;禁用堆栈跟踪
;void xdebug_disable()
;
;启动堆栈跟踪
;void xdebug_enable()
;
;返回所有header信息,包括手动设置,如header(),setcookie()函数
;array xdebug_get_headers()
;
;返回是否启用了堆栈跟踪
;bool xdebug_is_enabled()
;
;返回当前内存使用情况
;int xdebug_memory_usage()
;
;返回内存峰值
;int xdebug_peak_memory_usage()
;
;开始记录所有格式化过的输出,不再显示出来,使用xdebug_stop_error_collection()结束,xdebug_get_collected_errors()获取输出
;void xdebug_start_error_collecation()
;停止上面的方法
;void xdebug_stop_error_collection()
;获取堆栈中的格式化过的所有错误信息,int clean为true,将清空缓冲区,默认不清空
;string xdebug_get_collected_errors([int clean = 0])
;
;以秒为单位,返回脚本开始到当前的时间索引
;float xdebug_time_index()
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Variable Display Features
;替换var_dump()函数,限制数组数量,深度,字符串长度等
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; int, default:0
; 设置为1,cli和tty下带颜色显示var_dumps和堆栈跟踪
; 设置为2,所有都显示颜色,不能显示颜色会显示出转义码
;xdebug.cli_color
;
; boolean, default:2
; 默认情况下, php.ini设置html_errors为1或2时,xdebug会用自己的改进版自动重载var_dump()来显示变量,将此参数设置为0,可以关闭xdebug自动重载,最好先检查一下html_errors,不然这个设置就显得多余了
; 如果设置为2,会将文件名和行号添加到输出中
; xdebug.overload_var_dump
;
; int, default:128
; 控制xdebug_var_dump(),xdebug.show_local_vars,trace相关函数输出的数组子项和对象属性数量
;xdeug.var_diaplay_max_children
;
; int, default:512
; 控制xdebug_var_dump(),xdebug.show_local_vars,trace相关函数输出的最大字符串长度
;xdebug.var_display_max_data
;
; int, default:3, max:1023,-1也是最大值
; 控制xdebug_var_dump(),xdebug.show_local_vars,trace相关函数输出的数组元素和对象的嵌套级别
; 远程调试不受影响
;xdebug.var_display_max_depth
;
;;;;;;;;;;;;
;function
;;;;;;;;;;;;
;显示变量详细信息,这个函数被xdebug重载,详细见xdebug_var_dump()
;void var_dump([mixed var [, ...]])
;
;显示一个或多个变量结构化信息,包括类型,值,引用计数信息
;此函数比debug_zval_dump()好,因为此函数用函数名查找内部符号表来找到输入的变量,debug_zval_dump()使用值传递,导致引用加1等问题
;void xdebug_debug_zval([string varname [, ...]])
;
; 在stdout输出一个或多个变量结构化信息,包括类型,值,引用计数信息
; 和上面的函数不同,不通过web api显示,例如apache运行时就显示控制台
;void xdebug_debug_zval_stdout([string varname [, ...]])
;
; 显示超全局变量,需要在php.ini设置xdebug.demp.*参数
; 如:xdebug.dump.GET=*
; xdebug.dump.SERVER=REMOTE_ADDR
;void xdebug_dump_superglobals()
;
; 显示变量详细信息
; 上面的php.ini设置的参数影响此函数
;void xdebug_var_dump([mixed var [, ...]])
;
;
;;;;;;;;;;;;;;;;;;;;;;
; Stack Traces
; php.ini中display.errors设置为on是,设置显示堆栈跟踪信息,默认显示很少的信息,因为大量信息会减慢脚本执行速度和浏览器渲染速度(此问题可以忽略,因为现在的浏览器性能都很强),设置此类参数可以显示更详细的信息,但会更慢
;;;;;;;;;;;;;;;;;;;;;;
; boolean, default:1
; 控制是否将include(),require()中的文件名写入跟踪文件
;xdebug.collect_includes
;
; int, default:0
; 显示函数参数信息
; 0:不显示参数
; 1:类型和数量,耗内存,如string(6), array(8)
; 2:完整变量内容,耗磁盘
; 3:完整变量内容,被xdebug.var_display_children,xdebug.var_diaplay_max_data,xdebug.var_display_max_depth限制
; 4:全变量内容和变量名
; 5:php序列化变量内容,没有名字
;xdebug.collect_params
;
; boolean, default:0
; 告诉xdebug收集一定范围内使用哪些变量信息,xdebug需要对php操作码逆向工程,所以分析会很慢,用于xdebug.collect_params
; 在使用xdebug_get_declared_vars()时才需要此设置
;xdebug.collect_vars
;
; string, default:空
; 转储COOKIE,FILE,GET,POST,REQUEST,SERVER,SESSION信息
; 可以制定某几项,如
; xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
; xdebug.dump.GET = *
;xdebug.dump.*
;
; boolean, default:1
; 是否显示由xdebug.dump.*设置的超全局变量
;xdebug.dump_globals
;
; boolean, default:1
; 控制是否在第一次出错时就抛出全局变量值
;xdebug.dump_core
;
; boolean, default:0
; 是否从超全局变量取出未定义的值
;xdebug.dump_undefined
;
; string, default:空
; 设置堆栈跟踪里文件名链接的格式,例如有些ide可以直接点击文件链接进入文件,设置方法见xdebug文档
; %F:文件名
; %L:行号
;xdebug.file_link_format
;
; string, default:http://www.php.net
; 函数跟踪和错误消息中的函数到手册的链接url
;xdebug.manual_url
;
; int, default:0
; 发生错误时,不管有没有捕获,都显示堆栈跟踪
;xdebug.show_error_trace
;
; int, default:0
; 发生错误或异常时,不管有没有捕获,都显示堆栈跟踪
;xdebug.exception_trace
;
; int, default:0
; 设置为非0时,将转储顶级作用域的所有变量,会显示大量信息,所以默认关闭
;xdebug.show_local_vars
;
; int, default:0
; 设置为非0时,xdebug生成的可读跟踪文件会显示函数调用之间的内存使用情况差异
; xdebug被配置为计算机可读的跟踪文件时,将始终显示此信息
;xdebug.show_mem_delta
;
; 见Variable中配置
;xdebug.cli_color
;xdebug.var_display_max_children
;xdebug.var_display_max_data
;xdebug.var_display_max_depth
;
;;;;;;;;;;;;;;;;;;
;function
;;;;;;;;;;;;;;;;;;
; 返回声明的变量
;array xdebug_get_declared_vars()
;
; 开始监控功能
;void xdebug_start_function_monitor(array $list_of_functions_to_monitor)
;
; 停止监视功能
;void xdebug_stop_function_monitor()
;
; 返回堆栈跟踪的数组
;array xdebug_get_function_stack()
;
; 返回有关监视功能的信息
;array xdebug_get_monitored_functions()
;
; 返回当前堆栈深度级别,脚本主题是0级,每个包含和函数调用深度会加1
;int xdebug_get_stack_depth()
;
; 显示当前的功能堆栈
; message:自定义标题
; optins:XDEBUG_STACK_NO_DESC,不打印标题
;none xdebug_print_function_stack([string message[, int options]])
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;
; Function Traces
; 记录函数调用,参数,返回值到不同格式的文件
;;;;;;;;;;;;;;;;;;;;;;;;;;
; boolean, default:0
; 自动跟踪,在脚本运行之前启用跟踪
;xdebug.atuo_trace
;
; boolean, default:0
; 是否为函数追踪添加变量赋值
;xdebug.collect_assignments
;
; boolean, default:0
; 显示返回值
;xdebug.collect_return
;
; boolean, default:0
; 可以使用XDEBUG_TRACE GET/POST参数出发生成跟踪文件写入到定义好的目录
; 建议将xdebug.auto_trace设置为0,参数根据xdebug.trace_enable_trigger_value设置
;xdebug.trace_enable_trigger
;
; string, default:""
; 设置xdebug.trace_enable_trigger需要的值
;xdebug.trace_enable_trigger_value
;
; int, default:0
; 设置跟踪文件格式
; 0:人类可读跟踪文件
; 1:计算机可读文件
; 2:简单的html格式化
;xdebug.trace_format
;
; int, default:0
; 跟踪文件将为追加,而不是覆盖
;xdebug.trace_options
;
; string, default:/tmp
; 设置跟踪文件写入目录
;xdebug.trace_output_dir
;
; string, default:trace.%c
; 跟踪文件名称
; %c:当前工作目录的crc32,例:trace.%c -> trace.12345666.xt
; %p:pid,例:trace.%p -> trace.123.xt
; %r:随机数,例:trace.%r -> trace.072db0.xt
; %s:脚本名,例:cachegrind.out%s -> cachegrind.out._home_http_test_php
; %t:时间戳(秒),例:trace.%t -> trace.1232345158.xt
; %u:时间戳(微妙),例:trace.%u -> trace.1234151511_323425.xt
; %H:$_SERVER['HTTP_HOSTl'],例:trace.%H -> trace.liuxuzzz.xt
; %R:$_SERVER['REQUEST_URI'],例:trace.%R -> trace._test_xdebug_test_php_var=1_var2=2.xt
; %U:$_SERVER['UNIQUE_ID'],例:trace.%U -> trace.TRX4n38AAAEAAB9gBFkAAAAB.xt
; %S:session_id(from $_COOKIE if set),例:trace.%S -> trace.c70c1ec2375af58f74b390bbdd2a679d.xt
; %%,字面值%号,例:trace.%% -> trace.%%.xt
;
; 见trace
;xdebug.collect_includes
;xdebug.collect_params
;xdebug.show_mem_delta
;xdebug.var_display_max_children
;xdebug.var_display_max_data
;xdebug.var_display_max_depth
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
;function
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 返回函数跟踪文件名
;string xdebug_get_tracefile_name()
;
; 开始一个新跟踪
; trace_file:写入到此文件,相对于当前目录,可使用绝对路径
; param2:
; XDEBUG_TRACE_APPEND(1):追加
; XDEBUG_TRACE_COMPUTERIZED(2):使用xdebug.trace_format中的格式创建一个跟踪文件,不使用内存,占用磁盘
; XDEBUG_TRACE_HTML(4):创建一个html格式文件
; XDEBUG_TRACE—_NAKED_FILENAME(8):将xt添加为文件后缀
;
; 停止当前函数跟踪
;string xdebug_stop_trace()
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Code Coverage Analysis
; 看看执行了哪行脚本,单元测试需要此配置来输出覆盖率
;;;;;;;;;;;;;;;;;;;;;;;;;;;
; boolean, default:1
; 允许代码覆盖率,设置会减慢xdebug速度
;xdebug.coverage_enable
;
;;;;;;;;;;;;;;;;;;;;;;
;function
;;;;;;;;;;;;;;;;;;;;;;
; 返回代码覆盖率是否有效
; boolean xdebug_code_coverage_started()
;
; 返回代码覆盖率情况
; array xdewbug_get_code_coverage()
;
; 开始代码覆盖
; XDEBUG_CC_UNUSED:记录没执行的行
; XDEBUG_CC_DEAD_CODE:分析不能执行的行
; XDEBUG_CC_BRANCH_CHECK:启用路径执行分析
; return:1,被执行;-1,没有执行;-2:没有可执行代码
;void xdebug_start_code_coverage([int options])
;
; 停止代码覆盖
;void xdebug_stop_code_coverage([int cleanup = true])
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Garbage Collection Statistics
; 垃圾统计分析器,记录触发时间,清理变量数量,花费时间,释放多少内存
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; boolean, default: false
; 自动统计,生成文件到xdebug.gc_stats_output_dir设置的目录,名称为xdebug.gc_stats_output_name设置
;xdebug.gc_stats_enable
;
; string, default:/tmp
; 垃圾收集统计信息输出目录
;xdebug.gc_stats_output_name
;
; string, gc_stats_output_name
; 垃圾收集统计输出文件,格式见xdebug.trace_output_name
;xdebug.gc_stats_output_name
;
;;;;;;;;;;;;;;;;;;;;;;
;function
;;;;;;;;;;;;;;;;;;;;;;
; 返回到目前为止触发的垃圾收集运行数量
; xdebug.gc_stats_enable为false依然有效
;int xdebug_get_gc_run_count()
;
; 返回到目前收集的变量根的数量
; xdebug.gc_stats_enable为false依然有效
;int xdebug_get_gc_total_collected_roots()
;
; 返回垃圾收集统计文件名
;string xdebug_get_gcstats_filename()
;
; 开始收集垃圾统计信息
;string xdebug_start_gcstats([string gcstats_file])
;
; 停止当前的垃圾收集统计信息收集
; string xdebug_stop_gcstats()
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Profiling PHP Scripts
; 性能分析器
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; int, default:0
; 将多个请求写入一个分析器文件,计算平均值
;xdebug.profiler_aggregate
;
; int, default:0
; 将内容附加到上一个文件
;xdebug.profiler_append
;
; int, default:0
; 启用分析器
;xdebug.profiler_enable
;
; int, default:0
; 使用XDEBUG_PROFILE GET/POST 触发分析器
;xdebug.profiler_enable_trigger
;
; string, default:""
; 设置xdebug.profiler_enable_trigger的请求值
;xdebug.profiler_enable_trigger_value
;
; string, default:/tmp
; 设置分析器输出目录
;xdebug.profiler_output_dir
;
; string, default:cachegrind.out.%p
; 设置文件名,更多格式见xdebug.trace_output_name
;xdebug.profiler_output_name
;
;;;;;;;;;;;;;;;;;;;;;
;function
;;;;;;;;;;;;;;;;;;;;;
; 返回配置文件信息文件名
;string xdebug_get_profiler_filename()
;

推荐阅读