xdebug

xdebug

Xdebug是一個開放原始碼的PHP程式調試器(即一個Debug工具),可以用來跟蹤,調試和分析PHP程式的運行狀況。Xdebug現在的最新版本是Xdebug 2.7.0beta1,release日期2018-09-20,添加了對PHP7.2的支持。

基本介紹

  • 外文名:xdebug
  • 類別開放原始碼PHP程式調試器
  • 屬於:一個Debug工具
  • 功能:跟蹤,調試PHP程式的運行狀況
安裝與設定,安裝,參數設定,其它,

安裝與設定

安裝

下載xdebug
有兩個版本帶有Non-thread-safe和不帶有Non-thread-safe,主要是看你的php版本是否執行緒安全版本。
然後複製到你的php下的ext目錄里,
修改php.ini,增加如下信息:
[Xdebug]
zend_extension="x:\PHP\ext\php_xdebug-2.0.5-5.2.dll"
;以下是參數
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir=”x:\Temp”
xdebug.profiler_enable=on
xdebug.profiler_output_dir=”x:\Temp”
;x為你的盤符

參數設定

xdebug.default_enable=on
;顯示默認的錯誤信息
xdebug.auto_trace=on
;自動打開“監測函式調用過程”的功模。該功能可以在你指定的目錄中將函式調用的監測信息以檔案的形式輸出。此配置項的默認值為off。
xdebug.collect_params=on
;打開收集“函式參數”的功能。將函式調用的參數值列入函式過程調用的監測信息中。此配置項的默認值為off。
xdebug.collect_return=on
;打開收集“函式返回值”的功能。將函式的返回值列入函式過程調用的監測信息中。此配置項的默認值為off。
xdebug.max_nesting_level=100
xdebug.profiler_enable=on
;打開效能監測器。
xdebug.remote_enable=on
;是否調試
xdebug.remote_host=localhost
xdebug.remote_port=9000
;調試連線埠
xdebug.remote_handler=dbgp
;選擇協定
xdebug.trace_output_dir="d:\Temp"
;設定函式調用監測信息的輸出檔案的路徑。
xdebug.profiler_output_dir="d:\Temp"
;設定效能監測信息輸出檔案的路徑。
設定完參數,重啟伺服器,使用phpinfo() 函式查看是否有 xdebug 項目,安裝是否成功。
詳細的配置參數選項如下:
配置參數選項參數值類型與默認值參數選項描述
xdebug.auto_trace
boolean類型,默認值=0
是否在腳本運行之前自動調用相關追蹤函式。
xdebug.cli_color
integer類型,默認值=0
該參數自2.2版本開始引入。如果值=1,當處於CLI模式或連線虛擬控制台時,Xdebug將高亮顯示var_dumps()和堆疊輸出,;在Windows中,這需要安裝ANSICON工具。如果值=2,不管是否處於CLI模式或連線虛擬控制台,Xdebug都會高亮顯示var_dumps()或堆疊輸出;這種情況下,你可能會看到轉義後的代碼。
xdebug.collect_assignments
boolean類型,默認值=0
該參數自2.1版本開始引入。用於控制是否為函式跟蹤添加變數賦值功能。
xdebug.collect_includes
boolean類型,默認值=1
控制是否在跟蹤檔案中寫入include()、include_once()、require()、require_once()等函式中用到的檔案名稱。
xdebug.collect_params
integer類型,默認值=0
控制在調用函式時,是否收集傳遞給函式的參數信息。如果參數值過大,這可能會占用大量的記憶體;不過,在Xdebug 2中不會出現該問題,因為Xdebug 2將相關數據寫入磁碟中,而不是占用記憶體。
如果值=0,則不顯示任何信息。
如果值=1,只顯示類型和大小信息,例如:string(6)、array(8)。
如果值=2,將顯示類型和大小,以及全部信息的工具提示。
如果值=3,將顯示變數的全部內容。
如果值=4,將顯示變數的全部內容和變數名。
xdebug.collect_return
boolean類型,默認值=0
控制是否在追蹤檔案中寫入函式調用返回值
xdebug.collect_vars
boolean類型,默認值=0
控制是否收集指定作用域中的變數信息。由於需要反向工程PHP操作碼數組,因此Xdebug的分析速度可能比較慢。
xdebug.coverage_enable
boolean類型,默認值=1
該參數自2.2版本開始引入。控制是否允許通過設定內部結構來啟用代碼覆蓋率功能。
xdebug.default_enable
boolean類型,默認值=1
當發生異常或錯誤時,是否默認顯示堆疊信息。
xdebug.dump.*
string類型,默認值=Empty
這裡的*可以是COOKIE, FILES, GET, POST, REQUEST, SERVER, SESSION中的任意一個。用於指定發生錯誤時是否顯示超全局變數數組中的索引變數信息。比如,你想要顯示請求的IP位址和請求方式,可以設定為
xdebug.dump.SERVER=REMOTE_ADD,REQUEST_METHOD
多個索引變數用英文逗號隔開,如果要輸出其中的所有變數,可以直接用*,例如:
xdebug.dump.GET=*
xdebug.dump_globals
boolean類型,默認值=1
控制是否顯示通過xdebug.dump.*定義的所有超全局變數的信息。
xdebug.dump_once
boolean類型,默認值=1
如果出現多個錯誤,控制超全局變數信息是在所有錯誤中顯示,還是只在第一個錯誤中
xdebug.dump_undefined
boolean類型,默認值=1
控制是否顯示超全局變數中未定義的值
xdebug.extended_info
integer類型,默認值=1
是否強制進入PHP解析器的"extended_info"模式,這將允許Xdebug以遠程調試器對檔案或行添加斷點。開啟此模式將拖慢腳本的允許速度,該參數只能在php.ini中設定。
xdebug.file_link_format
string類型,默認值=,
自2.2版本開始引入。用於指定堆疊信息中用到的檔案名稱稱的連結樣式,這允許IDE通過設定連結協定,直接點擊堆疊信息中的檔案名稱稱,即可快速打開指定的檔案。例如:ZendStudio://%f@%l(%f表示檔案路徑,%f表示行號)。
xdebug.force_display_errors
integer類型,默認值=0
自2.3版本開始引入。是否強制顯示錯誤信息。
xdebug.force_error_reporting
integer類型,默認值=0
自2.3版本開始引入。是否強制顯示所有錯誤級別的信息。

其它

由於效能監測檔案:cachegrind.out.××××××××檔案的內容不易被人類所理解,所以我們需要一個工具來讀取它。windows下就有一款這樣的軟體:wincachegrind。
1、到 下載安裝wincachegrind
2、安裝運行後,點擊Tools->options,設定你的working folder(php.ini里xdebug.profiler_output_dir的值)
這樣就可以比較直觀的查看效能監測檔案的信息了。

相關詞條

熱門詞條

聯絡我們