Zend Studio集成Xdebug斷點調試詳解

Xdebug是PHP開發中兩個常用的斷點調試工具之一(另一個爲Zend Debugger)。

現在,我們在Zend Studio中集成PHP的Xdebug模塊,從而在Zend Studio中實現斷點調試功能。

1、下載、安裝、配置Xdebug

關於如何在PHP中安裝、配置Xdebug模塊,請直接參考文章PHP安裝配置Xdebug模塊詳解

2、Xdebug遠程連接配置

想要在Zend Studio中使用Xdebug,就需要啓用Xdebug的遠程調試功能。

Xdebug與遠程調試相關的參數,見下表。

配置參數選項 參數值類型與默認值 參數選項描述
xdebug.remote_enable boolean類型,默認值=0 是否啓用Xdebug的遠程調試功能(默認:未啓用)
xdebug.remote_host string類型,默認值=localhost 指定遠程調試的主機地址(可以爲域名、主機名或IP地址)
xdebug.remote_port integer類型,默認值=9000 指定遠程調試的端口號
xdebug.remote_handler string類型,默認值=dbgp 指定遠程調試的處理協議,值可以爲"php3"、"gdb"、"dbgp"。其中,dbgp是唯一受支持的協議。php3可以選擇舊版本PHP 3樣式的調試器輸出;gdb可以像dbgp一樣地使用GDB調試器。Xdebug 2.1及以後版本只支持dbgp協議。
xdebug.remote_autostart boolean類型,默認值=0 通常情況下,你需要使用一個指定的HTTP GET/POST 變量來啓動遠程調試。如果該參數設爲1,即使沒有指定的變量,Xdebug也將一直嘗試開始一個遠程調試會話,並與客戶端保持連接。
xdebug.remote_connect_back boolean類型,默認值=0 該參數自2.2版本開始引入。如果啓用該參數選項,xdebug.remote_host參數將會被忽略。Xdebug將會嘗試和發送請求到PHP服務器的所有客戶端建立連接。Xdebug將通過$_SERVER['REMOTE_ADDR']來獲取客戶端所使用的IP地址。只要對方能夠連接到服務器,就可以開啓一個遠程調試會話。
xdebug.remote_cookie_expire_time integer類型,默認值=3600 該參數自2.2版本開始引入。指定遠程調試的有效期限(單位:秒)。
xdebug.remote_log string類型,默認值= 指定遠程調試的日誌文件路徑,用於記錄遠程調試的日誌信息,該文件在調試過程將會一直以追加模式保持打開,所以默認情況下,文件內容不會被覆蓋。
xdebug.remote_mode string類型,默認值=req 指定遠程調試的連接模式,值可以爲"req"或"jit"。req表示一旦運行腳本就立即連接調試客戶端。jit表示當錯誤發生時才立即連接調試客戶端。

簡而言之,如果保持其他參數默認(有些參數官方也不建議修改),我們只需要在php.ini中接着Xdebug原來的配置添加如下一行代碼,即可啓用遠程調試功能。

xdebug.remote_enable=On

最終配置如下圖所示。

Xdebug配置參數

3、配置Zend Studio

點擊Zend Studio菜單欄的【Window】->【Preferences】。如下圖所示,在首選項窗口中依次找到【PHP】->【Debug】的右側面板。

在舊版本的Zend Studio中,菜單名直接爲【PHP Debug】。

首先我們對PHP Server進行配置,也就是將PHP Server的調試器類型從默認的Zend Debugger改爲Xdebug。點擊圖中編號①處的鏈接。

PHP Debug配置界面

在PHP Server中對當前項目指定的Server進行編輯【Edit】。

筆者的abc.com是本地的虛擬主機配置,以便於直接映射到當前項目的根目錄。

PHP Servers界面

將Debugger類型改爲Xdebug。

編輯PHP Server

接着,我們配置PHP執行環境。點擊前面圖中編號②的鏈接,進入PHP的執行環境配置頁面。如下圖所示,Zend Studio爲我們自帶了幾個採用Zend Debugger的執行環境,由於我們的PHP是自己獨立安裝的,而不是採用Zend Studio自身集成的。因此,我們將自己安裝的PHP執行環境添加進來。點擊【Add】按鈕。

PHP可執行環境界面

輸入執行環境的名稱,點擊【Browse】按鈕瀏覽我們自己安裝的php.exe和php.ini的文件路徑,並將PHP Debugger改爲Xdebug類型,然後點擊【Finish】。

配置PHP可執行環境

此時,我們就可以看到PHP Server和PHP Executable的調試器類型都已經改爲了Xdebug。面板下方還有一個默認勾選的【Break at First Line】,表示自動在第一行代碼處添加斷點(當然,你也可以取消【Break at First Line】選項,然後在調試之前根據需要添加斷點)。

配置後的調試類型均爲Xdebug

由於我們的Xdebug遠程調試配置參數均爲默認值,而Zend Studio爲我們的Xdebug默認設置的參數也與之相同,因此我們不需要在【PHP】->【Debug】->【Installed Debuggers】中對Xdebug的參數進行修改(其默認參數如下圖所示)。

Zend Studio Xdebug默認配置

由於我們更改了php.ini配置文件,因此需要重啓服務器使其生效。

接着,如下圖所示,我們就在指定的PHP文件中添加斷點,並進行斷點調試(由於我們剛纔勾選了【Break at First Line】選項,因此這裏可以不加斷點,當我們進行調試時,Zend Studio會自動在第一行代碼的位置進入斷點調試模式)。

Zend Studio添加斷點

添加好斷點後,我們就在該文件中點擊右鍵,在彈出的關聯菜單中點擊【Debug As】->【PHP Web Application】(有些舊版本爲【PHP Web Page】)。

點擊調試當前頁面

接着在彈出的下列對話框中輸入用於調試的URL。

輸入用於調試的URL

接着,Zend Studio會提示我們是否進入調試透透視圖,點擊【Yes】。

進入調試透視圖

最後,Zend Studio就自動進入了斷點調試模式,如下圖所示。

這個時候,我們就可以像使用Eclipse的調試快捷鍵來對PHP文件進行調試了。

Eclipse調試快捷鍵:F5(單步跳入)、F6(單步跳過)、F7(單步返回)、F8(跳過調試繼續執行)。

Zend Studio 斷點調試透視圖窗口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章