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