国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php Xdebug的安裝與使用詳解

2024-05-04 23:10:53
字體:
來源:轉載
供稿:網友
為什么需要Debugger?
很多PHP程序員調試使用echo、print_r()、var_dump()、printf()等,其實對 于有較豐富開發經驗的程序員來說這些也已經足夠了,他們往往可以在程序執行的過程中,通過輸出特定變量的值可以判斷程序執行是否正確,甚至效率高低也可以 看出來(當然可能還需要使用一些時間函數)。那么我們為什么還需要一個專門的調試程序來監控我們的程序運行呢? 這個問題的答案不妨留到后面來揭曉。
什么是Xdebug?
Xdebug是一個開放源代碼的PHP程序調試器(即一個Debug工具),可以用來跟蹤,調試和分析PHP程序的運行狀況。
如何安裝Xdebug?:
1. 打開下載相應的版本
Win:Windows binaries版本
Linux:source
得到一個dll文件(win)或運行安裝文件(linux)
2. 安裝
Win:將下載的dll文件放到相應的目錄中。比如我的就放D:/xampp/php/ext下面;
Linux:執行安裝文件
tar -xvzf xdebug-2.1.2.tgz
cd xdebug-2.1.2
phpize (如果phpize沒有這個command,需要安裝一次phpize。phpize可以讓php支持擴展模塊)安裝phpize:sudo apt-get install php5-dev
如果安裝了繼續進行下面命令
./configure
make
make install
會有這個界面

php Xdebug的安裝與使用詳解



cp modules/xdebug.so /usr/lib/php5/20090626+lfs 將xdebug.so文件移到php5下面
3. 編輯php.ini,加入下面幾行:
[Xdebug]
zend_extension=D:/xampp/php/ext/php_xdebug.dll (Win)
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so(Linux)

xdebug.profiler_enable=on
xdebug.trace_output_dir="../Projects/xdebug"
xdebug.profiler_output_dir="../Projects/xdebug"
后面的目錄“../Projects/xdebug”為你想要放置Xdebug輸出的數據文件的目錄,可自由設置。
4. 重啟Apache;
5. 寫一個test.php,內容為<?php phpinfo(); ?>,如果輸出的內容中有看到xdebug,說明安裝配置成功。如下圖:

php Xdebug的安裝與使用詳解

現在我們來從最簡單的程序調試開始一步步介紹Xdebug。
調試:
我們先寫一個可以導致執行出錯的程序,例如嘗試包含一個不存在的文件。
testXdebug.php
<?php
require_once(‘abc.php');
?>
然后通過瀏覽器訪問,我們驚奇地發現,出錯信息變成了彩色的了:

php Xdebug的安裝與使用詳解

不過除了樣式改變,和我們平時打印的出錯信息內容沒什么不同,意義不大。好,我們繼續改寫程序:testXdebug2.php
<?php
testXdebug();
function testXdebug() {
require_once('abc.php');
}
?>
輸出信息:

php Xdebug的安裝與使用詳解

發現了什么? Xdebug跟蹤代碼的執行,找到了出錯的函數testXdebug()
我們把代碼再寫得復雜一些: 
testXdebug3.php

復制代碼 代碼如下:


<?php
testXdebug();
function testXdebug() {
requireFile();
}
function requireFile() {
require_once('abc.php');
}
?>


輸出信息:

php Xdebug的安裝與使用詳解

也就是說Xdebug具有類似于JavaException的“跟蹤回溯”的功能,可以根據程序的執行一步步跟蹤到出錯的具體位置,哪怕程序中的調用很復雜,我們也可以通過這個功能來理清代碼關系,迅速定位,快速排錯。

PHP4.3.0之后版本及PHP5中才生效。這個函數是PHP開發團隊在PHP5中新增的函數,然后又反向移植到PHP4.3中。

,xdebug

如何檢測代碼中的不足?

[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir="I:/Projects/xdebug"
xdebug.profiler_output_dir="I:/Projects/xdebug"

這幾行,目的就在于把執行情況的分析文件寫入到”../Projects/xdebug”目錄中去(你可以替換成任何你想設定的目錄)。如果你執行某段程序后,再打開相應的目錄,可以發現生成了一堆文件,例如cachegrind.out.1169585776這種格式命名的文件。這些就是Xdebug生成的分析文件。用編輯器打開你可以看到很多程序運行的相關細節信息,

最后:

Xdebug提供了各種自帶的函數,并對已有的某些PHP函數進行覆寫,可以方便地用于調試排錯;Xdebug還可以跟蹤程序的運行,通過對日志文件的分析,我們可以迅速找到程序運行的瓶頸所在,提高程序效率,從而提高整個系統的性能。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹿泉市| 兴文县| 文化| 临潭县| 葫芦岛市| 利辛县| 金华市| 齐河县| 克拉玛依市| 丽水市| 登封市| 松潘县| 福贡县| 丘北县| 大理市| 绿春县| 九江市| 林口县| 察隅县| 弥渡县| 高雄县| 新泰市| 中西区| 清河县| 南靖县| 松潘县| 安岳县| 邛崃市| 嘉黎县| 宁远县| 泉州市| 奉贤区| 阜新市| 余庆县| 新干县| 炎陵县| 隆化县| 和顺县| 车致| 内黄县| 吉首市|