- Windows 用のバイナリファイルは Yahoo! GeoCities: Get a web site with easy-to-use site building tools. からダウンロードする
- 展開したディレクトリへのパスをマイコンピュータを右クリック → [プロパティ] → [システムのプロパティ] → [詳細設定] → [環境変数] の PATH に登録する
ソースコード解析
サンプルとして grep のソースコードを解析してみる。
- Index of /pub/GNU/grep からソースコードをダウンロードし展開する
- 展開したディレクトリに移動し、gtags -v を実行する
grep-2.5.4>gtags.exe -v [Mon Aug 03 10:35:57 東京 (標準時) 2009] Gtags started. Using default configuration. [Mon Aug 03 10:35:57 東京 (標準時) 2009] Creating 'GTAGS'. [1] extracting tags of intl/bindtextdom.c [2] extracting tags of intl/dcgettext.c [3] extracting tags of intl/dcigettext.c [4] extracting tags of intl/dcngettext.c [5] extracting tags of intl/dgettext.c [6] extracting tags of intl/dngettext.c (以下略)
Emacs の設定
- gtags バイナリを展開したディレクトリ内の share/gtags にある gtags.el を Emacs の site-lisp ディレクトリにコピーする
- .emacs に以下を追記する
;;; === GTAGS === (autoload 'gtags-mode "gtags" "" t)
- Emacs を起動したら M-x gtags-mode を実行する
- gtags -v を実行したディレクトリで M-x gtags-find-tag を実行すると mini-buffer に次のように表示される
Find tag: (default ABOUT)
ここで main と入力すると次のように main 関数で宣言されている箇所が表示されるmain 985 lib/getopt.c main (argc, argv) main 101 lib/getopt1.c main (argc, argv) main 73 lib/strtoumax.c main () main 258 lib/xstrtol.c main (int argc, char** argv) main 230 src/ansi2knr.c main(argc, argv) main 1825 src/grep.c main (int argc, char **argv)
HTML で出力
- gtags コマンドを実行した後に htags.exe -v を実行する
grep-2.5.4>htags.exe -v checking C:/home/grep-2.5.4/GTAGS GTAGS found at 'C:/home/grep-2.5.4/GTAGS'. [Mon Aug 03 12:04:37 東京 (標準時) 2009] Htags started [Mon Aug 03 12:04:37 東京 (標準時) 2009] (0) making directories ... [Mon Aug 03 12:04:37 東京 (標準時) 2009] (1) making CGI program ...(skipped) [Mon Aug 03 12:04:37 東京 (標準時) 2009] (2) making help.html ... [Mon Aug 03 12:04:37 東京 (標準時) 2009] (3) making duplicate entries ... [1] adding definition ACCEPTING [2] adding definition ACCEPTS_IN_CONTEXT [3] adding definition ADDOP2 [4] adding definition ADDRESS_FUNCTION [5] adding definition ADD_BLOCK
- HTML ディレクトリが生成されるので、その中の index.html から関数をたどることができるようになる
参考ページ
GNU GLOBAL 本家 (GNU GLOBAL source code tag system)
0 件のコメント:
コメントを投稿