ソースコード解析ツール「global」について

http://www.gnu.org/software/global/
ソースコードを解析するためのツール
関数定義元の検索などを行えるツールで htags を使うとHTMLで出力できる。

インストール方法

1. ダウンロード
http://www.gnu.org/software/global/ よりパッケージ(global-latest.tar.gz)をダウンロードしてくる。

2. パッケージを解凍する。
 %tar -xvzf global-latest.tar.gz

3. 解凍した先のディレクトリへ移動する
 %cd  [ディレクトリ]

4. %./configure

5. %make

6. #make install


使用法

ソースのあるディレクトリに移動してgtagsと実行。このgtagsによりglobal用のタグジャンプ情報を生成できる
% cd [ソースのあるディレクトリ]
% gtags

これによりGPATH, GRTAGS, GSYMS, GTAGS の4つのファイルができる。
globalのコマンドなどを利用することができるようになる。

 %global [関数名]
globalの後に関数名を指定すると、その関数の定義元への相対パスが表示される。


(オプション)

-a 絶対パスを表示
-g 'シンボル' grepに似たもので、指定したシンボルを含むすべてのパターンの行数表示
-f [ファイル名] そのファイル内のfunction definitionsをすべて表示。-xオプションを含んでいる
-r function referencesの位置
-x 詳細表示
-s functions以外のsymbolsの場所
-c function nameを忘れてしまったときなどに使える。特定の語で始まるfunction name の候補を挙げてくれる
-I patternにマッチした行をすべて表示。この機能はサーチエンジンとしてid-utils()を使うためインストールする必要あり。
-P this command enables you to locate path which includes specified string.

など

%info global で詳しい使い方を見ることができる。



ソースコードのHTML化

ソースコードがあるディレクトリへ移動して% gtags でタグを作り、そのあと%htagsでHTML化できる。

%cd [ディレクトリ名]
%gtags


% htags
これにより現在のディレクトリにHTMLというサブディレクトリが作成される。
htagsにオプションをつけることができる。

-a 英字インデックスを加える
-n 行番号を表示させる
-F コンテンツを部分的にフレーム化
-v Verbose mode
-t hypertextのタイトルをつけれる  例)% htags -t 'dynamics source'
-f CGIプログラムを使った検索ができるようになる(これを使うにはHTTPサーバをセットアップする必要あり?
-o ソースファイルだけでなくバイナリファイル以外のすべてのファイルをピックアップ
-s Make anchors not only for functions but also other symbols. エGSYMSエ tag file needed.

など

(HTMLをつくると結構サイズが大きくなるので注意!!)

あとはブラウザを使って/HTML/index.htmlなどを表示させる。こうするとブラウザを使ってリンクすることができる。例えば、関数の定義元、関数が使われているソースファイルや場所などへリンクできる。