調試工具xdebug的配置說明

爲什麼需要 Debugger?
很 多PHP程序員調試使用echo、print_r()、var_dump()、printf()等,其實對於有較豐富開發經驗的程序員來說這些也已經足夠 了,他們往往可以在程序執行的過程中,通過輸出特定變量的值可以判斷程序執行是否正確,甚至效率高低也可以看出來(當然可能還需要使用一些時間函數)。那 麼我們爲什麼還需要一個專門的調試程序來監控我們的程序運行呢? 這個問題的答案不妨留到後面來揭曉。

 

什麼是 Xdebug?
Xdebug是一個開放源代碼的PHP程序調試器(即一個Debug工具),可以用來跟蹤,調試和分析PHP程序的運行狀況。Xdebug現在的最新版本是xdebug 2.0.0beta6 ,支持PHP4/PHP5
官方站點:www.Xdebug.org

 

如何安裝 Xdebug

1、去www.xdebug.org 下載相應版本php的模塊文件,保存下載後的文件到php的ext目錄,可以自己修改文件的名稱,如保存成:php_xdebug.dll
2、修改php.ini,增加如下信息,在文件的最後

[Xdebug]
zend_extension_ts="c:/php5/ext/php_xdebug.dll"
xdebug.auto_trace=On
xdebug.collect_params=On
xdebug.collect_return=On
xdebug.trace_output_dir="x:/xdebug"
xdebug.profiler_enable=On
xdebug.profiler_output_dir="x:/xdebug"

建立Debuginfo 目錄x:/xdebug,否則不會才能生成文件。
zend_extension_ts要是完整路徑纔有效

參數解釋:

  • zend_extension_ts="c:/webserver/php5/ext/php_xdebug.dll"
    加載xdebug模塊。這裏不能用extension=php_xdebug.dll的方式加載,必須要以zend的方式加載,否則安裝上後,phpinfo是顯示不出xdebug這個項的。
  • xdebug.auto_trace=on;
    自動打開“監測函數調用過程”的功模。該功能可以在你指定的目錄中將函數調用的監測信息以文件的形式輸出。此配置項的默認值爲off。
  • xdebug.collect_params=on;
    打開收集“函數參數”的功能。將函數調用的參數值列入函數過程調用的監測信息中。此配置項的默認值爲off。
  • xdebug.collect_return=on;
    打開收集“函數返回值”的功能。將函數的返回值列入函數過程調用的監測信息中。此配置項的默認值爲off。
  • xdebug.trace_output_dir=”c:/Temp/xdebug”;
    設定函數調用監測信息的輸出文件的路徑。
  • xdebug.profiler_enable=on;
    打開效能監測器。
  • xdebug.profiler_output_dir=”c:/Temp/xdebug”;
    設定效能監測信息輸出文件的路徑。
  • 還有一些更爲具體的參數設定,詳見:http/www.xdebug.org/docs-settings.php

 

3 、重啓apache 這樣,在本地運行php的時候,會在所設定的目錄裏產生一些調試信息的文件:

  • 函數調用過程監測信息文件的文件名格式:trace.XXXXXX.xt。這個文件可以直接查看,裏面包含了函數運行的時間,函數調用的參數值,返回值,所在的文件和位置等信息。內容格式還是相對直觀的。
  • 效能監測文件的文件名格式:cachegrind.out.XXXXXXXX。
    這個文件也可以直接查看,不過信息格式不易被人類所理解,
    所以我們需要接下來的一個軟件。

4 寫一個test.php ,內容爲<?php phpinfo(); ?> ,如果輸出的內容中有看到xdebug ,說明安裝配置成功。

 

 

5.安裝wincachegrind
我們需要一個工具來讀取分析效能監測文件cachegrind.out.XXXXXXXXXXX。windows下就有一款這樣的軟件:wincachegrind。

安裝運行後,點擊Tools->options,設定你的working folder(php.ini裏xdebug.profiler_output_dir的值)
這樣就可以比較直觀的查看效能監測文件的信息了。

 

 

發佈了55 篇原創文章 · 獲贊 0 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章