現在我們來從最簡單的程序調試開始一步步介紹Xdebug。
調試:
我們先寫一個可以導致執行出錯的程序,例如嘗試包含一個不存在的文件。
testXdebug.php
<?php
require_once(‘abc.php');
?>
然后通過瀏覽器訪問,我們驚奇地發現,出錯信息變成了彩色的了:
不過除了樣式改變,和我們平時打印的出錯信息內容沒什么不同,意義不大。好,我們繼續改寫程序:testXdebug2.php
<?php
testXdebug();
function testXdebug() {
require_once('abc.php');
}
?>
輸出信息:
發現了什么? Xdebug跟蹤代碼的執行,找到了出錯的函數testXdebug()。
我們把代碼再寫得復雜一些:
testXdebug3.php
復制代碼 代碼如下:
<?php
testXdebug();
function testXdebug() {
requireFile();
}
function requireFile() {
require_once('abc.php');
}
?>
也就是說Xdebug具有類似于Java的Exception的“跟蹤回溯”的功能,可以根據程序的執行一步步跟蹤到出錯的具體位置,哪怕程序中的調用很復雜,我們也可以通過這個功能來理清代碼關系,迅速定位,快速排錯。
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還可以跟蹤程序的運行,通過對日志文件的分析,我們可以迅速找到程序運行的瓶頸所在,提高程序效率,從而提高整個系統的性能。
新聞熱點
疑難解答