vim上でgdbを使えるようにした
emacsみたいにvimからgdb使えないかなーと探してみたら、「vimGdb」というものがあることを知ったので、試してみる。
http://clewn.sourceforge.net/
まずはvim7.1とvimGdbのソースを落として解凍し、公式サイトを参考にパッチを当てる。
$ cd /usr/local/src $ tar xjf vim-7.1.tar.bz2 $ tar xzf vimgdb71-1.13.tar.gz $ patch -d vim71 --backup -p0 < vimgdb/vim71.diff
$ ./configure --prefix=/home/myname/lib/vim7 --enable-multibyte --enable-fontset --enable-ruby --enable-python --enable-ctags --with-features=big --enable-gettext --enable-iconv --enable-langmap --enable-signs --enable-gdb
・・エラーorz
checking for tgetent()... configure: error: NOT FOUND! You need to install a terminal library; for example ncurses. Or specify the name of the library with --with-tlib.
ncursesは入ってるけど、ncurses-develが入ってなかったので、yumで入れる。
再度configure・・・通った♪
$ make $ make install
インストールしたvimを使うように.zshrcに設定を書く。
# User specific aliases and functions alias vi='/home/myname/lib/vim7/bin/vim' alias vim='vi'
後は公式サイト通りに
# cp ../vimgdb/vimgdb_runtime.tgz ~/.vim # cd ~/.vim # tar xzf vimgdb_runtime.tgz # rm vimgdb_runtime.tgz # cd doc # vim 「:helptags .」コマンドを実行。 「:help vimgdb」コマンドを実行。
.vimrcにvimgdbの設定を書く。helpに書いてある参考設定をそのまま使った。
(ただし、:set gdb=gdb_invocation → :set gdb=gdb)
わーい。
では、改めて先ほどのv8でhelloworldで作ったa.outをvimGdbでデバッグしてみる。
# vim
file ./a.out としたらgdbが開始された!
後は普通にgdbを実行すると、vim上で該当箇所が開かれて、ソース見ながら処理が追える。
すげーこれ、C++まだ全然読めないけど何か楽しくなってきたー。
helpよりキーバインド一覧
<Space> launch the interactive gdb input-line window CTRL-Z send an interrupt to GDB and the program it is running B info breakpoints L info locals A info args S step I stepi CTRL-N next: next source line, skipping all function calls X nexti F finish R run Q quit C continue W where