«前の日記(2010-01-05 [火]) 最新 次の日記(2010-01-26 [火])» 編集

堕落と混迷の日々

見てくれた人:人

Sunaの仲間のヒトビト
Sunaの観測地点
Sunaの聞いてる曲

2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|
2009|01|03|08|09|10|11|
2010|01|04|05|06|07|08|10|
2011|03|08|
2013|08|

2010-01-21 [木]

_ [Emacs] cscopeを使ってソースコードを読む

Emacsでソースコードを読むとき、cscopeを使うと便利。関数や変数の定義とか使用箇所にその場から飛べる。
ただ、Emacsから使う時に、明示的にincludeディレクトリを指定する方法がわかりづらかったので記録。
鍵となるのは、"cscope-database-regexps"という変数。詳しい説明は、xcscope.elのコメントに書いてある。DBLISTとか記述してある付近だからisearchすれば見つかる。以下、簡単だけど僕が.emacsに追記した内容。

;;cscopeの設定
(require 'xcscope)
(setq cscope-database-regexps
'(
( "^"
( (t) ("-R" "-I/usr/include/c++/4.1.1"))
)
))

設定の意味は、任意のファイルにマッチする正規表現"^"に対して、デフォルトのサーチパス(t)を読んで、コマンドラインオプションとしてサブディレクトリを再帰的に見る"-R"とincludeディレクトリを指定する"-I"を渡すようを指定している。もちろんより複雑な指定もできる。
データベースファイルの作成は、EmacsからM-x cscope-index-filesを呼んでソースツリーのルートを指定してやれば終わり。あとはC-c s ナントカでソースを見て行く。

以下参考にさせてもらったページ達。先人達に感謝します。

cscopeでlinuxカーネルソースを読む | Inside ASCADE
日本語のチートシートあり。カーネルコード読む解説。
reference tools
リファレンスツールまとめ。cscopeの記述あり。
xcscope(1): xemacs cscope lisp support package - Linux man page
xcscope.elのmanpage。例の変数の解説もあり。
SourceForge.net Repository - [cscope] View of /cscope/contrib/xcscope/xcscope.el
xcscope.elの内容。

_ [Emacs] speedbar

そうそう、speedbarも便利だった。

関数やクラスをツリー表示してくれる。

M-x speedbarで呼べる。

「+」で展開、「-」で閉じる。

お名前:
E-mail:
コメント:
[]

サイト構築中…完成はいつの日か。
連絡先:sunasaji+web at gmail dot com