|
一、為什么需要Debugger?
很多php程序員調(diào)試使用echo、print_r()、var_dump()、printf()等,其實(shí)對(duì) 于有較豐富開(kāi)發(fā)經(jīng)驗(yàn)的程序員來(lái)說(shuō)這些也已經(jīng)足夠了,他們往往可以在程序執(zhí)行的過(guò)程中,通過(guò)輸出特定變量的值可以判斷程序執(zhí)行是否正確,甚至效率高低也可以 看出來(lái)(當(dāng)然可能還需要使用一些時(shí)間函數(shù))。那么我們?yōu)槭裁催€需要一個(gè)專(zhuān)門(mén)的調(diào)試程序來(lái)監(jiān)控我們的程序運(yùn)行呢? 這個(gè)問(wèn)題的答案不妨留到后面來(lái)揭曉。
二、什么是Xdebug?
Xdebug是一個(gè)開(kāi)放源代碼的php程序調(diào)試器(即一個(gè)Debug工具),可以用來(lái)跟蹤,調(diào)試和分析php程序的運(yùn)行狀況。
三、Windows 下 XDebug 安裝與配置
1. 下載XDebug二進(jìn)制文件: http://www.xdebug.org/download.php
請(qǐng)根據(jù)php版本選擇下載,例如:
復(fù)制代碼 代碼如下:5.2 http://www.xdebug.org/files/php_xdebug-2.1.2-5.2-vc6.dll
5.3 http://www.xdebug.org/files/php_xdebug-2.1.2-5.3-vc6.dll
2. 找到并打開(kāi) php.ini 文件
3. 如果配置過(guò) ZendOptimizer, 需要先屏蔽 ZendOptimizer 有關(guān)的配置, 通常如下:
復(fù)制代碼 代碼如下:[Zend]
zend_extension_manager.optimizer_ts=”path/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0″
zend_extension_ts=”path/ZendOptimizer-3.3.0/lib/ZendExtensionManager.dll”
將其刪除或用分號(hào)注釋掉,如改為:
復(fù)制代碼 代碼如下:;[Zend]
;zend_extension_manager.optimizer_ts=”path/ZendOptimizer-3.3.0/lib/Optimizer-3.3.0″
;zend_extension_ts=”path/ZendOptimizer-3.3.0/lib/ZendExtensionManager.dll”
4. 加入 XDebug 配置。參考如下:
復(fù)制代碼 代碼如下:[Xdebug]
zend_extension_ts=”path/xdebug/php_xdebug-2.1.2-5.2-vc6.dll”
xdebug.auto_trace=on
xdebug.trace_output_dir=”path/xdebug”
xdebug.profiler_enable=on
xdebug.profiler_output_dir=”path/xdebug”
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
說(shuō)明:
上面 “path” 的地方需要修改為你自己的本地路徑.
參數(shù)解釋?zhuān)?BR>復(fù)制代碼 代碼如下:
zend_extension_ts=”c:/webserver/php5/ext/php_xdebug.dll”
;加載xdebug模塊。這里不能用extension=php_xdebug.dll的方式加載,必須要以zend的方式加載,否則安裝上后,phpinfo是顯示不出xdebug這個(gè)項(xiàng)的。
xdebug.auto_trace=on;
;自動(dòng)打開(kāi)“監(jiān)測(cè)函數(shù)調(diào)用過(guò)程”的功模。該功能可以在你指定的目錄中將函數(shù)調(diào)用的監(jiān)測(cè)信息以文件的形式輸出。此配置項(xiàng)的默認(rèn)值為off。
xdebug.collect_params=on;
;打開(kāi)收集“函數(shù)參數(shù)”的功能。將函數(shù)調(diào)用的參數(shù)值列入函數(shù)過(guò)程調(diào)用的監(jiān)測(cè)信息中。此配置項(xiàng)的默認(rèn)值為off。
xdebug.collect_return=on
;打開(kāi)收集“函數(shù)返回值”的功能。將函數(shù)的返回值列入函數(shù)過(guò)程調(diào)用的監(jiān)測(cè)信息中。此配置項(xiàng)的默認(rèn)值為off。
xdebug.trace_output_dir=
;設(shè)定函數(shù)調(diào)用監(jiān)測(cè)信息的輸出文件的路徑。
xdebug.profiler_enable=on
;打開(kāi)效能監(jiān)測(cè)器。
xdebug.profiler_output_dir=
;設(shè)定效能監(jiān)測(cè)信息輸出文件的路徑。
還有一些更為具體的參數(shù)設(shè)定,詳見(jiàn):http://www.xdebug.org/docs-settings.php
5. 重啟web服務(wù)器,如 Apache 或者 IIS
6. 查看 phpinfo 的輸出, 如果看到 XDebug 的選項(xiàng), 就說(shuō)明配置成功了.
7. 調(diào)試信息文件查看。
在本地運(yùn)行php程序,會(huì)在所設(shè)定的目錄里產(chǎn)生一些調(diào)試信息的文件,主要包括:
a. 函數(shù)調(diào)用過(guò)程監(jiān)測(cè)信息文件,文件名格式:trace.××××××.xt。該文件可直接查看,里面包含了函數(shù)運(yùn)行的時(shí)間,函數(shù)調(diào)用的參數(shù)值,返回值,所在的文件和位置等信息。內(nèi)容格式相對(duì)直觀。
b. 效能監(jiān)測(cè)文件,文件名格式:cachegrind.out.××××××××。
該文件也可以直接查看,但信息格式不易被人類(lèi)所理解,我們可以安裝 wincachegrind 軟件,以格式化地讀取它。 下載安裝方法參考如下:
下載:http://sourceforge.NET/projects/wincachegrind/
下載后安裝運(yùn)行,然后點(diǎn)擊Tools->options,設(shè)定 working folder(php.ini里 xdebug.profiler_output_dir 的值)
這樣就可以比較直觀的查看效能監(jiān)測(cè)文件的信息了。
四、linux下 XDebug 安裝與配置
linux 下可以下載源代碼編譯安裝,方法參考如下。
1.下載對(duì)應(yīng) php 版本的源代碼 source: http://www.xdebug.org/download.php
例如xdebug-2.1.2.tgz版本:http://www.xdebug.org/files/xdebug-2.1.2.tgz
2. 編譯安裝
復(fù)制代碼 代碼如下:tar -xvzf xdebug-2.1.2.tgz
cd xdebug-2.1.2
./configure
make
make install
如果有報(bào)錯(cuò) phpize 沒(méi)有這個(gè)command,那么安裝它:
復(fù)制代碼 代碼如下:sudo apt-get install php5-dev
3. 將xdebug.so文件移到php5下面
復(fù)制代碼 代碼如下:cp modules/xdebug.so /usr/lib/php5/
4. 編輯php.ini,加入下面幾行:
復(fù)制代碼 代碼如下:[Xdebug]
zend_extension= /usr/lib/php5/xdebug.so
xdebug.profiler_enable=on
xdebug.trace_output_dir=”../xdebug”
xdebug.profiler_output_dir=”../xdebug”
5. 重啟Apache,測(cè)試是否安裝成功
如果輸出的內(nèi)容中有看到xdebug,說(shuō)明安裝配置成功。
php技術(shù):Windows和Linux中php代碼調(diào)試工具Xdebug的安裝與配置詳解,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。