1. vimgdb 需要下载vim 源码, 并打vimgdb 补丁. 编译(--enable-gdb),安装完成后。 再把vimgdb 运行库放到vim plugin 目录下。
a. sudo apt-get source vim // ubuntu 下打过补丁的源码包。
或者取原始包(原始包可能编译会碰到些问题,可以试试。):
wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
b、下载vimgdb-for-vim7.4源码
wget https://github.com/larrupingpig/vimgdb-for-vim7.4/archive/master.zip -O vimgdb-for-vim74.zip
c、解压所有文件,并应用补丁文件
tar xjvf vim-7.4.tar.bz2 -C /tmp
unzip vimgdb-for-vim74.zip -d /tmp
cd /tmp
patch -p0 < vimgdb-for-vim7.4-master/vim74.patch
cd vim74/src
./configure --enable-gdb --prefix=/usr/local/vim74
--enable-multibyte
--enable-fontset
--enable-xim
--enable-gui=auto
--enable-pythoninterp=dynamic
--enable-pythoninterp
--enable-python3interp=dynamic
--enable-rubyinterp=dynamic
--enable-rubyinterp
--enable-perlinterp
--enable-cscope
--enable-sniff
--with-x
--with-features=huge
--enable-luainterp=dynamic
make
sudo make install
实例: 我喜欢这个小阶乘程序。 代码如下
#include <stdio.h> int factorial(int n, int *rt); int main(int argc, char *argv[]) { int i; int result =1; for(i=1; i< 6; i++) { factorial(i, &result); printf("i:%d, result:%d\n",i,result); } return 0; } int factorial(int n, int *rt) { if(n <=1) *rt = n; else { factorial(n-1,rt); *rt *=n; } return 0; }cat Makefile
结束本函数: F,
----------------------------------------
vimgdb : 又总结了两条,
vimgdb 窗口和操作技巧
----------------------------------------
甲. vimgdb 中的窗口
vimgdb 是把vim和gdb 结合起来的一个仿真ide环境。
图形窗口集成环境(以后简称ide)有许多窗口,其中最重要的是变量观察窗口。
vimgdb 中有4个窗口。
1. 源码窗口,这个不用说了, 你观察代码的地方,而且是vim 的文件窗口
2.gdb 命令行窗口。
当你用F7 加载vimgdb key map 时,敲空格键,就看见它了,你可以输入任何gdb 命令,控制程序执行。
好处是它是vim 窗口,可以使用vim 的操作技巧。
3. 输出窗口,
在gdb窗口中敲入file xxx, 加载执行程序,会再创建2个窗口,其中在顶部输出gdb 调试信息的是输出窗口
它是一个无名窗口, gdb 控制信息及程序输出信息会打印到这里。
另一个是变量窗口,它是隐含的。
4. 变量观察窗口。
你用:ls 命令可以看到它的名字,
然后用:topleft 40vsplit gdb-variables 把它打开,随后你可以添加关注的变量到里面。
乙:vimgdb 操作控制技巧
1. 添加变量到变量窗口。
ide的调试常常用拖拽的方式把监视变量放到监视窗口
ctrl-v 选中变量,ctrl-p 添加到变量窗口
vimgdb 命令行方式: createvar xxx, 将xxx 放入gdb 变量窗口
用:h gdb-createvar 可以看到帮助解释
2. 观察变量的值。
快捷键中包含了我们最常用的gdb 命令,这样就很少打开gdb 命令窗口了,调试代码就象阅读代码
ide 中常用tooltip 窗口提示, vimgdb中用ctrl-p, ctrl-x 观察
ctrl-p 打印变量的值,经常用, ctrl-x 打印指针所指的内容
3. 执行控制
ide 中常用F7, F8, F10 等功能键控制,
vimgdb 中, ctrl-n 执行下条语句是常用的, S(跟入), C(继续), ctrl-b(设置断点),ctrl-e(删除断点)
gdb 功能虽强,但常常容易迷失在单步跟踪里, 虽然你能用l 看到代码,而vimgdb 正好弥补这个缺陷,使我们对流程有个直观认识。