1と2のリビジョン間の差分
2013-09-13 09:47:49時点のリビジョン1
サイズ: 1995
編集者: nemunemu
コメント:
2013-09-13 09:58:13時点のリビジョン2
サイズ: 2273
編集者: nemunemu
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 18: 行 18:
適当にパッケージを探してインストールしたら、linuxカーネルのルートディレクトリに移動して、 大概標準ではExuberant Ctagsでないctagsが入っているのですが、各ディストリ毎にctagsとかのパッケージ名で用意されていたりするので、調べてインストールしてみます。
~~~
ctags --version
~~~
でExuberant Ctagsと表示されたら正しくインストールされているので、linuxカーネルのルートディレクトリに移動して、

カーネル(デバイスドライバ)課題メモ

今更需要あるか甚だ疑問ですが、メモも兼ねて。

Exuberant Ctagsを使う

カーネル課題やっていて思ったのですが、カーネル課題に限っては(概要を知りたいとかの一部を除いて)役立ち度が、
「ctagsやgrepを使ってコードを探っていく >>>> google様に聞く」
ってかんじだと思いました。

なので基本的に関数等について詳しく調べたい…、っていうときはツールを使ってカーネルソースを探索するようにした方がいいと思います。

んで、ctagsというのが簡潔にまとめると「関数や構造体や変数の宣言等をコードを探索して索引にして1つのファイルにまとめるツール」なのですが、
これを使うとエディタを開きながら関数宣言にジャンプしたりできて、コードを読むのが楽になります。

VimだとExuberant CtagsというVimに適したctagsの派生があるのでこれをインストールして使いましょう。(emacsはよくわからないので調べて頑張ってください)
大概標準ではExuberant Ctagsでないctagsが入っているのですが、各ディストリ毎にctagsとかのパッケージ名で用意されていたりするので、調べてインストールしてみます。

ctags --version

でExuberant Ctagsと表示されたら正しくインストールされているので、linuxカーネルのルートディレクトリに移動して、

ctags -R

でタグファイル(tags)を作成できます。

あとは、vimから

:set tags=(タグファイルが見つかるような検索パス)

でtagsの検索パスを設定して、tagsが見つかるようなディレクトリに移動して、

:tag (探したい関数、変数名)

とか、探したい関数名にカーソルを置き、(Ctrl-])を押したり…とかでタグジャンプができます。 詳しいことはhelp(:help tagとかで出てくる)を読みましょう。

デバドラ課題のやること

(執筆中)


SystemProgClassCategory

nemunemu/カーネル課題メモ (最終更新日時 2013-09-13 10:27:40 更新者 nemunemu)