+ ソース解析方法メモ
last mod.2022/01/17
ソース解析時につかうツールなどのメモ。
しばらく使わないと忘れるよ、(´д`;
いにしえのタグづけ系。
etags *.[ch]とか
find . -type f -name '*.[ch]' |xargs etagsファイル TAGS ができる。
ジャンプしたい関数名にカーソルを置いて
M-. (M-x find-tag) でジャンプ M-* (M-x pop-tag-mark) で戻る調べるとき
M-x tags-search M-, (M-x tags-loop-continue)
ctags でファイル tags をつくる。viを起動したディレクトリのtagsファイルが使われるようだ。
Ctrl-] でジャンプ Ctrl-T で戻る
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を見ればよい。
windowが使える環境のemacsで
M-x speedbarとやると、アウトラインのウィンドウが出る。
文字端末でもできるっぽいが使いづらい。
という機能がある。
隠れた行は"..."となるのだが、デフォでは隠す量をワンタッチで変更できなかったので、隠す量(インデント何桁以上を隠す)を変えて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とかするとなんか動くポ。
最近は、もう graphviz 入れて Doxygen でソース出力ありにして、texじゃなくてHTML出力して、ブラウザで読む。
難点は、文字コードの不統一にキビシイことと、ドキュメント(HTML)出力に時間がかかること。
- Emacs は統合環境だと言い張る件
- Eclipse
凝ると重くなる。これ系が背負う業だ。
根本の話。
- 名前付けが悪いソースは読むのが大変。
- 役者と、セリフ。
- どんな役者がいて、誰が誰にどんなセリフをしゃべるのか、を把握。
- それを総合的に把握して初めて「作者はこの芝居で何を言いたいのか」がわかる。
- 全体で「言いたいこと」がとっちらかってるプログラムは、読むのが大変。