首页 xdebug参数说明
文章
取消

xdebug参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
;;;;;;;;;;;;;;;;;;;;;;;;
; 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()
;
知识共享许可协议 本文由作者按照 CC BY-SA 4.0 进行授权