http://blog.chinaunix.net/uid-16235175-id-3275023.html
记录一下刚刚配置成功的 vim+xdebug+DBGp 单步调试 php:
OS : ubuntu 10.10 64bit
Vim : vim7.3 PHP : 5.2.14 fast-cgi Xdebug : 2.1.1 DBGp : 1.1.1
1、编译vim7.3
首先安装依赖包:
依赖包
apt-get update
apt-get -y install gcc g++ make mercurial libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev wmctrl
因为插件需要python、sign支持,所以首先要求OS上安装了python,一般系统自带python,但是不会自带python开发包,所以需要另外手动安装,ubuntu 安装python2.6:
python
sudo apt-get install python python-dev
vim7.3编译参数:
vim7.3编译参数
./configure \
--prefix=/usr/local/modules/vim/vim73 \
--with-features=huge\
--enable-pythoninterp=yes\
--with-python-config-dir=/usr/lib64/python2.6/config \
--enable-gui=gnome2\
--enable-cscope \
--enable-fontset \
--enable-perlinterp=yes\
--enable-tclinterp \
--enable-multibyte
sudo make & make install
注意这一行:--with-python-config-dir=/usr/lib64/python2.6/config 因为我是64位系统,所以使用的地址是:/usr/lib64,如果是32位系统,应该使用:/usr/lib/... 编译完成后,看一下vim --version ,如有python和sign前面是+,不是-,就说明配置成功了。
为了装这个python支持,费了好多功夫,网上例子多数都是只写了编译时加上--enable-pythoninterp,然后python用系统自带的就可以了,但是我编译完了,version里的python始终是不支持,后来才发现,有两个注意点: 1、大部分linux系统自带的是有python,但是还需要安装python开发包,在apt源里,python2的开发包是python-dev,python3的开发包是python3-dev; 2、如果系统里装了多个版本的python,或者系统是64位,需要在编译参数里指定python-config-dir。
2、配置xdebug 从这里下载最新版的xdebug,解压后,进入目录:
安装xdebug
your_php_bin_path/phpize
./configure
make
make install
修改php.ini
php.ini
zend_extension="/usr/local/modules/php/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.remote_host=localhost
重启php-cgi或者web server后,查看phpinfo,如果看到xdebug的参数信息,说明配置正确。
3、配置DBGp 到这里下载最新版的DBGp vim插件,当然,最新版也是07年更新的了,不过不影响使用。 解压后,把debugger.vim 和 debugger.py两个文件都放到vim的plugin目录下,就安装完成了,vim的插件就是这么简单。
4、调试好了,磨完刀了,可以砍柴了,用vim打开一个php文件,然后在浏览器里通过http访问这个文件,后面加上?XDEBUG_SESSION_START=1参数,回到vim,摁下F5,然后在5秒内刷新刚才浏览器里打开的那个页面,vim就变成了这个样子:
5、调试技巧
F1
resize
调整窗口大小
F2
step into
单步执行
F3
step over
F4
step out
F5
run
开始执行,或跳至断点执行
F6
quit debugging
退出调试模式
F11
get all context
获取所有变量内容
F12
get property at cursor
获取当前光标变量内容
:Bp
toggle breakpoint
设置断点
:Up
stack up
:DN
stack down
为了能看到php数组的值,还需要设置下.vimrc:
.vimrc
letg:debuggerMaxDepth=5