2010/04/15

CGDB

以前GDBを使うときはEmacsと組み合わせて使っていたのですが、最近はVimを常用していることもあってviっぽい操作でソースも見ながらデバッグしたいなと思っていたところ、「実践 デバッギング技法」(オライリー刊)にCGDBというのがちょろっと紹介されていたのを思い出して調べてみました。

日本語の資料はほとんどないっぽいようなので、頑張って本家ページの英語ドキュメントを見ながら使い方を調べていこうと思います。。

まず、~/.cgdb/cgdbrcが設定ファイルなので、「4 CGDB configuration commands」を見て必要そうなのを記入しました。
ざっとこんな感じです。

 set cgdbmodekey=<C-K> 
 map r :run            
 map c :continue       
 map f :finish         
 map n :next           
 map s :step           
 map q :quit           

CGDBを起動すると上にソースコード、下にGDBインターフェイスが表示され、ソースコード枠にフォーカスしているときを "CGDBモード"、GDBインターフェイスにフォーカスしているときを "GDBモード" というようです。

で、CGDBモードに移るときのキーをcgdbmodekeyの値を変えることで設定できるようになっているので、1行目記述でCtrl-Kを割り当てています。(デフォルトはEscなんですが、ちょっと押すのがだるいので。。)

また、mapコマンドでCGDBモードのキー、imapコマンドでGDBモードのキーをコマンドに割り付けられるようになっているので、残りの記述でCGDBモードのときデバッグで多用するコマンドをキーに割り付けています。

とまあ、こんな風に.vimrcと似たような感じで設定をいじれるようになっており、準備はこれで完了です。w

あとはGDBを使うときと同じように、シェルから

 cgdb <実行ファイル> 

と打てばデバッグが開始できます。

開始直後はGDBモードなので、Ctrl-K (設定を変えてない場合はEsc) を押すとソースコード枠にフォーカスが移りCGDBモードになります。基本的にViっぽい操作で表示場所を移動することができ(kで上に移動とか)、スペースキーでブレークポイントをはることができます。
CGDBモードでできないことをやりたくなったら、iを押してGDBモードに戻ります。

このようにエディタにVimとか使ってて、かつGDBに慣れてる人にとってはなかなか快適なデバッガだと思いました。w



0 件のコメント:

コメントを投稿