程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP XDebug配置與安裝方法詳解

PHP XDebug配置與安裝方法詳解

編輯:關於PHP編程

XDebug是php的一款調試工具了,我們可使用像echo,print等等來調用錯誤,但我們這些函數沒辦法檢查函數執行次數與執行時間了,而利用XDebug就完全可以實現哦,下面我來介紹在winodws中php XDebug配置與安裝過程。

 我們先要去官網下載下載php_xdebug.dll,2.將下載的php_xdebug.dll放到PHP的安裝目錄phpext下,然後在編輯php.ini文件

 代碼如下 復制代碼

[xdebug]
zend_extension = "/home/ad/php/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.auto_trace = on
xdebug.auto_profile = on
xdebug.collect_params = on
xdebug.collect_return = on
xdebug.profiler_enable = on
xdebug.trace_output_dir = "/home/ad/xdebug_log"
xdebug.profiler_output_dir = "/home/ad/xdebug_log"

4.重啟Apache。
5.寫一個test.php,內容為<?php phpinfo(); ?>,如果輸出的內容中有看到xdebug,說明安裝配置成功。或者去/home/ad/xdebug_log下看看是不是日志已經出來了。

Xdebug配置信息

PHP Xdebug配置信息

Xdebug部分配置選項說明

  xdebug.auto_trace = 1

  是否允許Xdebug跟蹤函數調用,跟蹤信息以文件形式存儲,默認值為0

  collect_params = 1

  是否允許Xdebug跟蹤函數參數,默認值為0

  xdebug.collect_return = 1

  是否允許Xdebug跟蹤函數返回值,默認值為0

  xdebug.profiler_enable = 1

  打開xdebug的性能分析器,以文件形式存儲,這項配置是不能以ini_set()函數配置的,默認值為0

  xdebug.profiler_output_dir

  性能分析文件的存放位置,默認值為/tmp

  xdebug.profiler_output_name

  性能分析文件的命名規則,默認值為cachegrind.out.%p

  xdebug.trace_output_dir

  函數調用跟蹤信息輸出文件目錄,默認值為/tmp

  xdebug.trace_output_name

  函數調用跟蹤信息輸出文件命名規則,默認為trace.%c

設置選項

Category Setting Description

 

日志

xdebug.trace_output_dir

日志追蹤輸出目錄 xdebug.trace_output_name 日志文件名,xdebug提供了一系列的標識符,生成相應格式的文件名,具體請參考官網 xdebug.trace_options 記錄添加到文件中方式:1 = 追加(如果存在該文件). 0 (default) = 覆蓋(如果存在該文件) 顯示數據 xdebug.collect_params 非零值 = 控制function的參數顯示選項
  • 0 = 不顯示.
  • 1 = 參數類型,值  (例如:array(9)).
  • 2 = 同上1,只是在CLI模式下略微有區別
  • 3 = 所有變量內容
  • 4 = 所有變量內容和變量名(例如:array(0 => 9)).
xdebug.collect_return 1 = 顯示function返回值. Default 0 不顯示 xdebug.collect_vars 1 = 顯示當前作用域使用了哪些變量,顯示變量名,該選項不會記錄變量的值,如果需要,使用xdebug.collect_params xdebug.collect_assignments 1 = 添加一行顯示變量賦值(若為1,形如$a = 1;這類Assignment Expression會在trace文件裡顯示) 格式 xdebug.trace_format
  • 0 = 人可讀. 從左至右每列分別表示:時間點, 內存, 內存差 (需要設置xdebug.show_mem_delta=1), 等級, 函數名,函數參數 (需要設置,xdebug.collect_params=1,只要是非零), 當前代碼行所在文件名 , 行號.
  • 1 = 機器可讀[1]. 需要借助第三方app,例如:xdebug trace file parser 或者 xdebug trace viewer
  • 2 = html格式 即table,用browser打開,顯示table
xdebug.show_mem_delta 1 = 顯示每次函數調用內存消耗(內存差) 行為  xdebug.auto_trace 1 = 打開自動追蹤. (追蹤方式有2種,一種是自動追蹤,所有php腳本運行時,都會產生trace文件;另一種是觸發方式追蹤,如下) xdebug.trace_enable_trigger[2]

1 = 使用 XDEBUG_TRACE GET/POST 觸發追蹤, 或者通過設置cookie XDEBUG_TRACE. 為了避免每次請求時,都會生成相應trace追蹤文件,你需要把auto_trace設置為0

注:該特性只在2.2+版本才能設置

 [xdebug-general] Re: Is trace_enable_trigger defunct? 

限制 xdebug.var_display_max_depth 數組和對象元素顯示深度:主要用在數組嵌套,對象屬性嵌套時,顯示幾級的元素內容. Default 3. xdebug.var_display_max_data 變量值為字符串時顯示多長. Default 512. xdebug.var_display_max_children 數組和對象元素顯示的個數. Default 128

一些自定義函數

Function Description void xdebug_enable() 手動打開,相當於xdebug.default_enable=on void var_dump() 覆寫php提供的var_dump,出錯時,顯示函數堆棧信息,(前提:php.ini裡html_errors為1),使用xdebug.overload_var_dump 設置是否覆寫 void xdebug_start_trace( 
string trace_file_path 
[, integer options] ) 手動控制需要追蹤的代碼段
trace_file_path :文件路徑(相對或絕對,若為空).如果為空,或者不傳參, 使用xdebug.trace_output_dir設置的目錄
options :

  • XDEBUG_TRACE_APPEND: 1 = 追加文件內容末尾, 0 = 覆寫該文件
  • XDEBUG_TRACE_COMPUTERIZED:
    • 2 =同 xdebug.trace_format=1 .
  • XDEBUG_TRACE_HTML: 4 = 輸出HTML表格,浏覽器打開為一table
void xdebug_stop_trace() 停止追蹤,代碼追蹤在該行停止 string xdebug_get_tracefile_name() 獲得輸出文件名,與 xdebug.auto_trace配合使用. void xdebug_var_dump([mixed var[,...]])  輸出變量詳細信息,相當於php裡的var_dump,具體顯示請看這裡 xdebug.show_local_vars  默認為0,不顯示;非零時,在php執行出錯時,顯示出錯代碼所在作用域所有本地變量(注:這會產生大量信息,因此默認是closed),具體顯示差別如下圖[3] array xdebug_get_declared_vars() 顯示當前作用域中已聲明的變量 array xdebug_get_code_coverage() 顯示某一段代碼內,代碼執行到哪些行[4]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved