;;;;;;;;;;;;;;;;;;;;;;;;
; 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()
;
