Xdebug 配置 php 調試器

到官網 http://www.xdebug.com/download.php 下載 Windows binaries 版 Xdebug 。linux 系統下載 source 版 tgz 壓縮包
找到對應PHP版本的 Xdebug ,後面帶 TS 的爲線程安全,本機環境爲 win XP + PHP5.2 ,下載的是 Xdebug 2.2.3 PHP 5.2 VC9 TS (32 bit) 
source 版下載的是 xdebug-2.2.3.tgz



安裝:
Win   :將下載的dll文件(這裏是php_xdebug-2.2.3-5.2-vc9.dll)放到 php 安裝目錄的 ext 文件夾下。本機放在 D:\ApacheServer\php\ext\

Linux :執行安裝文件,此 linux 安裝未經驗證

tar -xvzf xdebug-2.2.3.tgz
cd  xdebug-2.1.2
phpize //如果 phpize 沒有這個命令 ,需要安裝一次 phpize 。phpize 可以讓php支持擴展模塊,安裝 phpize:sudo apt-get install php5-dev 如果安裝了繼續進行下面命令
./configure
make
make install
cp modules/xdebug.so /usr/local/src/php/ext  //將 xdebug.so 文件移到 php 下面



編輯php.ini,加入下面幾行

zend_extension_ts           = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
xdebug.remote_enable        = true
xdebug.remote_host          = 127.0.0.1
#xdebug.remote_port         = 9000 #默認端口 9000

xdebug.profiler_enable      = on
xdebug.trace_output_dir     = "D:\ApacheServer\xdebug"
xdebug.profiler_output_dir  = "D:\ApacheServer\xdebug"

#其餘參數
#開啓自動跟蹤
xdebug.auto_trace           = On
#開啓異常跟蹤
xdebug.show_exception_trace = On
#開啓遠程調試自動啓動
xdebug.remote_autostart     = On
#收集變量
xdebug.collect_vars         = On
#收集返回值
xdebug.collect_return       = On
#用於zend studio遠程調試的應用層通信協議
xdebug.remote_handler       =dbgp
#如果設得太小,函數中有遞歸調用自身次數太多時會報超過最大嵌套數錯
xdebug.max_nesting_level = 10000


zend_extension_ts = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll" 與 Zend Debugger 一樣
不同系統及 PHP 版本有不同寫法
Linux 和 Mac OS X               : zend_extension    = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
Windows Thread-Safe 版 PHP      : zend_extension_ts = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
Windows Non-Thread-Safe 版 PHP  : zend_extension    = "D:\ApacheServer\php\ext\php_xdebug-2.2.3-5.2-vc9.dll"
所以同一服務器只能加載一個調試工具,要麼 Zend Debugger 要麼 Xdebug
但在 PHP5.5 環境下測試, Thread-Safe 版 PHP 後面不能加 _ts 只能寫成 zend_extension = 

xdebug.remote_enable = true 允許遠程IDE調試

xdebug.profiler_enable = on 及後面的目錄 "D:\ApacheServer\xdebug" 作用是開啓把執行情況的分析文件寫入到指定目錄中的功能,可自由設置。也可不寫
生成的文件,例如 cachegrind.out.4408 這種格式命名的文件,用編輯器打開可以看到很多程序運行的相關細節信息

重啓Apache


重啓
先寫一個可以導致執行出錯的程序,例如嘗試包含一個不存在的文件。

<?php
require 'abc.php';
?>

然後通過瀏覽器訪問,驚奇地發現,出錯信息變成了彩色的了,並且Xdebug跟蹤代碼的執行



Zend Studio斷點
修改 Zend Studio 設置
Window -> Preferences -> PHP -> Debug
將右側 "Default Settings" 中的 "PHP Debugger" 設置爲 "XDebug"


在代碼中在左邊行數欄上雙擊加斷點
點擊工具欄上"小蜘蛛"旁邊的小箭頭 -> Debug As -> PHP Web Application
會跳出 Debug 視圖
點擊工具欄向下箭頭(Step Into)或按 F5 逐行執行。點擊綠色向右箭頭(Resume)或按F8一直執行,直到斷點處停下
調試結束時菜單欄點擊紅色結束按鈕(Terminate),再點擊臭蟲按鈕重新開始調試
調試結束後要點擊菜單欄紅色結束按鈕(Terminate),結束調試
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章