1、卸载原始的vim7.3
因为vimgdb支持在命令行界面下的vim中进行程序调试,所以选择vimgdb,而放弃如clewn等。
再者由于目前的vimgdb仅支持到vim7.2,所以只好卸载掉系统原始安装的vim7.3。
卸载如下:
sudo emerge --unmerge vim-core
另外如果安装过gvim的,也要卸载:
sudo emerge --unmerge gvim
至此第一步完成。
2、安装vim7.2和vimgdb
vimgdb源码:http://sourceforge.net/project/showfiles.php?group_id=111038&package_id=120238
2.2.解压vim与vimgdb源码
tar xjfvim-7.2.tar.bz2
tar xzfvim-7.2-lang.tar.gz
tar xzfvim-7.2-extra.tar.gz
tar xzfvimgdb72-1.14.tar.gz
patch -d vim72 --backup -p0< vimgdb/vim72.diff(版本不同文件名有所不同)
2.3.修改Makefile文件,我的配置是这样的:
cd vim72/src
gedit Makefile或 emacs Makefile
CONF_OPT_GUI =--enable-gui=gtk2 #gtk2支持,也能使用gnome
CONF_OPT_CSCOPE =--enable-cscope #cscope支持
CONF_OPT_MULTIBYTE =--enable-multibyte #双字符支持
CONF_OPT_INPUT =--enable-xim #输入法支持
CONF_OPT_OUTPUT =--enable-fontset #双字符支持
CONF_OPT_FEAT =--with-features=huge #最大特性支持
make
sudo make install
注意,在安装完成后,运行vim,可能会也现错误如下:
*** buffer overflow detected ***: vim terminated
======= Backtrace: =========
/lib/libc.so.6(__fortify_fail+0x37)[0x7ffd4e4675f7]
/lib/libc.so.6[0x7ffd4e4665a0]
..........
.....
7ffd49b71000-7ffd49b7d000 r-xp 00000000 08:01 2249 /lib/libnss_files-2.10.1.so
7ffd49b7d000-7ffd49d7c000 ---p 0000c000 08:01 2249 /lib/libnss_files-2.10.1.so
7ffd49d7c000-7ffd49d7d000 r--p 0000b000 08:01 2249 /lib/libnss_files-2.10.1.so
7ffd49d7d000-7ffd49d7e000 rw-p 0000c000 08:01 2249 /lib/libnss_files-2.10.1.so
7ffd49d7e000-7ffd49d88000 r-xp 00000000 08:01 2259 /lib/libnss_nis-2.10.1.so
7ffd49d88000-7ffd49f87000 ---p 0000a000 08:01 2259 /lib/libnss_nis-2.10.1.so|49;0MVim: 拦截到致命信号(deadly signal) ABRT
Vim: 结束。
修正方法如下:
Make的时候加上如下参数:
make CFLAGS="-O2 -D_FORTIFY_SOURCE=1"
如果还不行,就试试这样做:
make CFLAGS="-O3 -D_FORTIFY_SOURCE=1"
3、后续设置
3.1.在VIM中生成帮助文件索引:
cd vimgdb
sudo tar zxfvimgdb_runtime.tgz –C /usr/local/share/vim/vim72/
sudo vim
在vim的底行模式下输入:
:helptags/usr/local/share/vim/vim72/doc
3.2.修改.vimrc
修改一下(cd ~/.vimrc 或 cd/home/用户名/.vimrc)主目录下的.vimrc(没有则创建一个),加入
let g:vimgdb_debug_file =""
runmacros/gdb_mappings.vim
map<F2> :runmacros/gdb_mappings.vim<CR>
这里说明一下,因为vimgdb的快捷键F7跟c-support有冲突,所以我改了一下,
这样可以在需要的时候按F2载入vimgdb的map,然后F7就可以正常工作了。
3.3.最后再修改下
这样vim + vimgdb环境就基本搭建完了
4、vimgdb简单使用
接下来我们要试一下vimgdb的调试功能了。
首先:
:run macros/gdb_mappings.vim
来加载vimgdb映射的键
这个时候我们可以用
:help gdb-mapping 来查看加载键的用法
用 <F2>可以启用/关闭加载的键
现在,按空格键,就会在当前窗口下方打开一个小窗口,这就是vimgdb的命令窗口,可以在里面输入gdb命令。现在,我们在这个窗口中输入” gdb“,按回车后,command-line窗口自动关闭,而在当前窗口上方又打开一个窗口,这个窗口是gdb输出窗口。现在vim的窗口布局如下(我又按空格打开了command-line窗口)
然后在这个窗口里
file test
打开要调试的程序
然后在源码文件里可以 CTRL+B来设置断点, R 来运行程序, S单步执行 其他命令可以用 :help gdb-mapping来查看
我们可以输入下面的vim命令:
:bel 20vsplit gdb-variables 在右侧打开一个小窗口来显示要跟踪的变量的值
在源码文件里,用 " v" (表示visual模式) 选定要跟踪的变量,然后 CTRL+P把变量加到右边的监视窗口。
还以在gdb的命令窗口 用
createvar *r 来创建新的监视变量对象