+ ソース解析方法メモ
created 2005-12-15 modified 2012-02-24
ソース解析時につかうツールなどのメモ。
しばらく使わないと忘れるよ、(´д`;
etags
いにしえのタグづけ系。etags *.[ch]とか
find . -type f -name '*.[ch]' |xargs etagsファイル TAGS ができる。
Emacsでの使い方
ジャンプしたい関数名にカーソルを置いてM-. (M-x find-tag) でジャンプ M-* (M-x pop-tag-mark) で戻る調べるとき
M-x tags-search M-, (M-x tags-loop-continue)
viの場合
ctags でファイル tags をつくる。viを起動したディレクトリのtagsファイルが使われるようだ。Ctrl-] でジャンプ Ctrl-T で戻る
gnu global
ctags とか etags の発展形、らしい。個人的に、emacs に標準で組み込まれてない el を組み込む作業は、できればもう生涯やりたくない。なので HTML 出力が簡単そうだ。
コマンド
- gtags
- htags
基本:
ソースフォルダにて
gtags htagsで、HTML/index.html ができる。
ソースフォルダに書き込みできない前提で、 ~/gtags/ソフト名/ 以下に html を作るには
mkdir -p ~/gtags/ソフト名/
cd ソフトのソースフォルダ gtags ~/gtags/ソフト名/ htags -d ~/gtags/ソフト名/ ~/gtags/ソフト名/
とやって、
~/gtags/ソフト名/HTML/index.htmlを見ればよい。
アウトライン系
Emacs の speedbar
windowが使える環境のemacsでM-x speedbarとやると、アウトラインのウィンドウが出る。
文字端末でもできるっぽいが使いづらい。
Emacsで一定以上インデントされた行を隠す
という機能がある。隠れた行は"..."となるのだが、デフォでは隠す量をワンタッチで変更できなかったので、隠す量(インデント何桁以上を隠す)を変えてredraw buffer するマクロを書いてファンクションキーに当てていた。
えぇと...
c++-modeなどでファイルを開いた状態で
M-x outline-minor-modeする。
メニューバーを表示してれば Outline メニューが追加されてるのでそこから何かできる。
prefixが "\C-c @" で
prefix + C-a prefix + C-s prefix + C-d prefix + C-lとかするとなんか動くポ。
エッフェル系のソースからドキュメント出すやつ
Eiffel
javadoc
Doxygen
最近は、もう graphviz 入れて Doxygen でソース出力ありにして、texじゃなくてHTML出力して、ブラウザで読む。難点は、文字コードの不統一にキビシイことと、ドキュメント(HTML)出力に時間がかかること。
統合環境系
- Emacs は統合環境だと言い張る件
- Eclipse
凝ると重くなる。これ系が背負う業だ。
根本の話。
- 名前付けが悪いソースは読むのが大変。
- 役者と、セリフ。
- どんな役者がいて、誰が誰にどんなセリフをしゃべるのか、を把握。
- それを総合的に把握して初めて「作者はこの芝居で何を言いたいのか」がわかる。
- 全体で「言いたいこと」がとっちらかってるプログラムは、読むのが大変。