GNU GLOBAL [コードリーディング]
GNU GLOBAL [1] というツールを使ってみた。
昔からあるようだし、いまさら便利がっているほうが恥ずかしいのかもしれないけどこれは素晴らしい。
何をしてくれるかというと、C や C++ なんかのソースを総ざらいして関数やマクロなどがどこで使用されているかという情報をハイパーテキスト化してくれる。他人のソースを読むときとか、自分のソースをリファクタリングしたりするときにかなり重宝しそう。例えばある関数を改変したいときにどこでその関数が使われているかという影響範囲がすぐに一覧で分かる。それに出力が HTML なのでかなり直感的にブラウズできる。他人の書いたソースをつらつらと眺めるのに便利な感じだ。
使い方はインストールして、ソースツリーの置かれたディレクトリで
gtags htags -sa
と打つ。これで HTML というディレクトリができるので ./HTML/index.html をブラウザで開けばよい。
s というオプションをつけるとあらゆるシンボルをハイパーリンク化するので HTML がかなりくどくなるのだけど、これをつけないと関数が抽出されていない場合があったのでつけることにした(どういう結果が正しいものなのかマニュアルからはいまいちわからない)。
[ この記事を投稿しかけたあとで、ちょっと思い直して、他にも同じようなツールがあるようだし、実は Visual Studio みたいな IDE でも呼び出し元をたどる機能があったりするので、それらを調べて比較してからにしようと思ったのだけど、やっぱり HTML 化という機能の便利さが突出しているのがわかったので安心して褒めることにした ]
[1] http://www.tamacom.com/global-j.html
コメント 0