文章目錄
xdebug 配置
xdebug 安裝
原文地址:http://xiaobin.net/201007/using-vim-and-xdebug-to-debug-php-code/
原理上,這種調試方式主要依靠Vim的外掛程式“remote PHP debugger”來實現,該外掛程式實現了一個DBGP服務端。調試的時候Xdebug將會與服務端建立一個串連進行通訊,接收服務端的調試指令並返回調試結果。
安裝和配置
XDebug
安裝:
ubuntu 下直接 apt-get install php5-xdebug 安裝
到/usr/lib/php5/20090626+lfs 即可看到xdebug.so 可拷貝到你指定的模組地址
配置:(php.ini檔案)
- 載入Xdebug擴充:
zend_extension=/<extension_dir>/xdebug.so #<extension_dir>為你拷貝到的目錄
- 配置xdebug開啟dbgp遠端偵錯
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
Vim的Debugger外掛程式
這個簡單,只需要將外掛程式下載回來,解壓放到~/.vim/plugin目錄
調試過程
用Vim開啟要調試的PHP檔案,按<F5>進入調試狀態。請移步《PHP調試指南》,上面寫的詳細一些。
注意事項
實際過程中,如果你發現安裝完成仍然無法正常的調試PHP,極可能是下面的原因造成的:
一、Xdebug載入不成功
可以通過phpinfo或者是”php -m”來確認Xdebug是不是載入成功。載入不成功的原因可能是由於PHP是”Debug Build”(可以通過phpinfo確認),那麼php.ini裡不應當用“zend_extension=/<extension_dir>/xdebug.so”,而應該用“zend_extension_debug=/<extension_dir>/xdebug.so”;
其它方面就是要注意xdebug.so路徑是否正確,Apache服務或者是fastcgi服務有沒有重啟。
phpinfo 顯示顯示如下,表示正常
二、 偵錯工作階段已經到期
XDebug 通過一個Cookie來判斷你是否進行調試對話,請注意這個Cookie的到期時間是1個小時。某天你埋頭工作的時候發現Vim + Xdebug剛剛還work,怎麼一下又不work了,那多半是由於這個會話已經到期了。
只要在URL後面帶上參數 “XDEBUG_SESSION_START=1″,偵錯工作階段就會延續1小時。
訪問路徑:
For clean URLs use: http://example.com/admin/feature?XDEBUG_SESSION_START=1
Otherwise use: http://example.com?q=admin/feature&XDEBUG_SESSION_START=1
四、更改調試等待時間 (預設5秒鐘)
編輯debuger.py
2. press <F5> and browse php file within 5 seconds. :-)
If you did setup correctly, server will make connection to vim.
[ you can change port by editing last line of debugger.vim ]
all the windows currently opened will be closed and debugger interface will be shown.
3. in debuggin mode
<F1> : resizing windows
<F2> : step into
<F3> : step over
<F4> : step out
<F6> : stop debugging
<F11> : shows all variables
<F12> : shows variable on current cursor
,e : evalute expression and display result. cursor is automatically move to watch window. type line and just press enter.
command line command)
:Bp : toggle breakpoint on current line
:Up : goto upper level of stack
:Dn : goto lower level of stack
4. press <F6> to stop debugging.
then, debugger windows will be closed and windows will be restored.
( holy :mksession feature )
參考和延伸閱讀
- Using vim and xdebug DBGp for debugging Drupal (or any PHP application)
- remote PHP debugger
首先下載xdebug2.1.0,在官方首頁下載原始碼,下載回來的檔案名稱是:xdebug-2.1.0.tgz
xdebug的版本需與您的php版本相對應,由於偶的php是5.3.2,所以下載xdebug2.1.0
Xml代碼
- cd /your/download/path
- tar zxvf xdebug-2.1.0.tgz
- cd xdebug-2.1.0
運行phpize
Xml代碼
- phpize
如果沒有將phpize加入$PATH,則應該使用全路徑
這裡不需要--prefix,編譯好之後直接把modules裡的xdebug.so檔案複製走即可。
Xml代碼
- ./configure --enable-xdebug
- --with-php-config=/usr/local/php/bin/php-config
Xml代碼
- make
把xdebug.so複製到了php安裝目錄,裝php的時候指定了安裝目錄,所以複製到/usr/local/php/xdebug裡。隨便你複製到哪都行,只要你清楚知道。。。需要改下面一條命令的路徑為你自己的。