西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
西西首頁(yè) 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專題合集

PHP程序調(diào)試器Xdebug

2.7.0 官方最新版
  • PHP程序調(diào)試器Xdebug2.7.0 官方最新版
  • 軟件大小:473KB
  • 更新時(shí)間:2018-12-28 09:59
  • 軟件語(yǔ)言:英文
  • 軟件廠商:
  • 軟件類別:國(guó)外軟件 / 免費(fèi)軟件 / 編程輔助
  • 軟件等級(jí):5級(jí)
  • 應(yīng)用平臺(tái):WinAll, WinXP
  • 官方網(wǎng)站:http://xdebug.org/download.php
  • 應(yīng)用備案:
好評(píng):50%
壞評(píng):50%

軟件介紹

Xdebug是一個(gè)開(kāi)放源代碼的PHP程序調(diào)試器(即一個(gè)Debug工具),以php模塊的形式加載并被使用?梢杂脕(lái)跟蹤,調(diào)試和分析PHP程序的運(yùn)行狀況。Xdebug提供了各種自帶的函數(shù),并對(duì)已有的某些PHP函數(shù)進(jìn)行覆寫(xiě),可以方便地用于調(diào)試排錯(cuò);Xdebug還可以跟蹤程序的運(yùn)行,通過(guò)對(duì)日志文件的分析,我們可以迅速找到程序運(yùn)行的瓶頸所在,提高程序效率,從而提高整個(gè)系統(tǒng)的性能。

為什么需要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è)專門(mén)的調(diào)試程序來(lái)監(jiān)控我們的程序運(yùn)行呢? 這個(gè)問(wèn)題的答案不妨留到后面來(lái)揭曉。

如何安裝Xdebug?:

1. 打開(kāi)http://www.xdebug.org/download.php下載相應(yīng)的版本

Win: Windows binaries版本

  Linux: source

得到一個(gè)dll文件(win)或運(yùn)行安裝文件(linux)

2. 安裝

Win:將下載的dll文件放到相應(yīng)的目錄中。比如我的就放D:\xampp\php\ext下面;

Linux:執(zhí)行安裝文件

tar -xvzf xdebug-2.1.2.tgz

cd  xdebug-2.1.2

phpize (如果phpize沒(méi)有這個(gè)command,需要安裝一次phpize。phpize可以讓php支持?jǐn)U展模塊)安裝phpize:sudo apt-get install php5-dev

如果安裝了繼續(xù)進(jìn)行下面命令

./configure

make

make install

會(huì)有這個(gè)界面

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輸出的數(shù)據(jù)文件的目錄,可自由設(shè)置。

4. 重啟Apache;

5. 寫(xiě)一個(gè)test.php,內(nèi)容為<?php phpinfo(); ?>,如果輸出的內(nèi)容中有看到xdebug,說(shuō)明安裝配置成功。如下圖:

現(xiàn)在我們來(lái)從最簡(jiǎn)單的程序調(diào)試開(kāi)始一步步介紹Xdebug。

調(diào)試:

我們先寫(xiě)一個(gè)可以導(dǎo)致執(zhí)行出錯(cuò)的程序,例如嘗試包含一個(gè)不存在的文件。

testXdebug.php

<?php
require_once(‘a(chǎn)bc.php’);
?>

然后通過(guò)瀏覽器訪問(wèn),我們驚奇地發(fā)現(xiàn),出錯(cuò)信息變成了彩色的了:

不過(guò)除了樣式改變,和我們平時(shí)打印的出錯(cuò)信息內(nèi)容沒(méi)什么不同,意義不大。好,我們繼續(xù)改寫(xiě)程序:

testXdebug2.php

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

輸出信息:

發(fā)現(xiàn)了什么? Xdebug跟蹤代碼的執(zhí)行,找到了出錯(cuò)的函數(shù)testXdebug()。

我們把代碼再寫(xiě)得復(fù)雜一些: 

testXdebug3.php

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

輸出信息:

也就是說(shuō)Xdebug具有類似于Java的Exception的“跟蹤回溯”的功能,可以根據(jù)程序的執(zhí)行一步步跟蹤到出錯(cuò)的具體位置,哪怕程序中的調(diào)用很復(fù)雜,我們也可以通過(guò)這個(gè)功能來(lái)理清代碼關(guān)系,迅速定位,快速排錯(cuò)。

其實(shí)PHP函數(shù)debug_backtrace()也有類似的功能,但是要注意debug_backtrace()函數(shù)只在PHP4.3.0之后版本及PHP5中才生效。這個(gè)函數(shù)是PHP開(kāi)發(fā)團(tuán)隊(duì)在PHP5中新增的函數(shù),然后又反向移植到PHP4.3中。

如何利用Xdebug測(cè)試腳本執(zhí)行時(shí)間

測(cè)試某段腳本的執(zhí)行時(shí)間,通常我們都需要用到microtime()函數(shù)來(lái)確定當(dāng)前時(shí)間。例如PHP手冊(cè)上的例子:

<?php
/**
* Simple function to replicate PHP 5 behaviour
*/
function microtime_float()
{
      list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
// Sleep for a while
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Did nothing in $time seconds\n";
?>

但是microtime()返回的值是微秒數(shù)及絕對(duì)時(shí)間戳(例如“0.03520000 1153122275”),沒(méi)有可讀性。所以如上程序,我們需要另外寫(xiě)一個(gè)函數(shù)microtime_float(),來(lái)將兩者相加。

Xdebug自帶了一個(gè)函數(shù)xdebug_time_index()來(lái)顯示時(shí)間。

如何測(cè)定腳本占用的內(nèi)存?

有時(shí)候我們想知道程序執(zhí)行到某個(gè)特定階段時(shí)到底占用了多大內(nèi)存,為此PHP提供了函數(shù)memory_get_usage()。這個(gè)函數(shù)只有當(dāng)PHP編譯時(shí)使用了-enable-memory-limit參數(shù)時(shí)才有效!

Xdebug同樣提供了一個(gè)函數(shù)xdebug_memory_usage()來(lái)實(shí)現(xiàn)這樣的功能,另外xdebug還提供了一個(gè)xdebug_peak_memory_usage()函數(shù)來(lái)查看內(nèi)存占用的峰值。

如何檢測(cè)代碼中的不足?

有時(shí)候代碼沒(méi)有明顯的編寫(xiě)錯(cuò)誤,沒(méi)有顯示任何錯(cuò)誤信息(如error、warning、notice等),但是這不表明代碼就是正確無(wú)誤的。有時(shí)候可能某段代碼執(zhí)行時(shí)間過(guò)長(zhǎng),占用內(nèi)存過(guò)多以致于影響整個(gè)系統(tǒng)的效率,我們沒(méi)有辦法直接看出來(lái)是哪部份代碼出了問(wèn)題。這時(shí)候我們希望把代碼的每個(gè)階段的運(yùn)行情況都監(jiān)控起來(lái),寫(xiě)到日志文件中去,運(yùn)行一段時(shí)間后再進(jìn)行分析,找到問(wèn)題所在。

回憶一下,之前我們編輯php.ini文件

加入

[Xdebug]

xdebug.profiler_enable=on

xdebug.trace_output_dir="I:\Projects\xdebug"

xdebug.profiler_output_dir="I:\Projects\xdebug"

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

Xdebug 2.2.3
Release date: 2013-05-22

source (MD5: e49cec9861b45dc0b36eae33bf8a14fa)

Windows binaries:
PHP 5.2 VC9 (32 bit) (MD5: 4b5e00b0797cf1d1eacef60af13fbd3a)
PHP 5.2 VC9 TS (32 bit) (MD5: 3a2e9d33cba0cdcaa6546a7d9d428282)
PHP 5.3 VC9 (64 bit) (MD5: c35806f2188b73f0f8e762ebb4ed50a9)
PHP 5.3 VC9 (32 bit) (MD5: 070ae0b893d4a0c06e954bcbaa2440b9)
PHP 5.3 VC9 TS (64 bit) (MD5: 71b2d186ebbe1e0bad56e77c03c26ab4)
PHP 5.3 VC9 TS (32 bit) (MD5: f1b60194161254c0da37025c5da4bf85)
PHP 5.4 VC9 (64 bit) (MD5: d8836643b3fde63b27717bcb85d21efe)
PHP 5.4 VC9 (32 bit) (MD5: 31d751094de6ebc1a5f2ef8ff32312dd)
PHP 5.4 VC9 TS (64 bit) (MD5: c56c39b18450a41e4b61db7361705031)
PHP 5.4 VC9 TS (32 bit) (MD5: 02034335ffcbfd32e3c207a6ec8a8234)
PHP 5.5 VC11 (64 bit) (MD5: 2423a13ba740dcd8d19d2e0bcd5ca9a6)
PHP 5.5 VC11 (32 bit) (MD5: d2de48c5c91fd200dbc7a86b035e6b12)
PHP 5.5 VC11 TS (64 bit) (MD5: a5510dc13a754957aae86066f0eb3305)
PHP 5.5 VC11 TS (32 bit) (MD5: d3756596134b11a3a190ee41bede8ac0)

其他版本下載

最新評(píng)論查看所有(1)條評(píng)論 >

第 1 樓 黑龍江省齊齊哈爾市建華區(qū) 網(wǎng)友 客人 發(fā)表于: 2013/10/11 17:34:02
debug是dos中的一個(gè)外部命令,從dos 1.0起就帶有此命令,因此可見(jiàn)此命令的重要性了。雖然此命令的功能非常強(qiáng)大,可以解決許多問(wèn)題,可是對(duì)許多人來(lái)說(shuō),尤其是初學(xué)者來(lái)說(shuō),卻非常不易掌握,大家可以學(xué)習(xí)學(xué)習(xí)

支持( 0 ) 蓋樓(回復(fù))

發(fā)表評(píng)論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(1)條評(píng)論 > 字?jǐn)?shù): 0/500

TOP
軟件下載