« 戦争は変わった… | メイン | resurface »
2006年05月12日
kernel debugging(3)
では前回の続きからですので kgdb patch に含まれている README ファイルに関してです。これには大きく分けて 3 種類の説明が書かれています。それは、
- Patch
- Build
- Module Debugging
patch を行うために quilt というツールを使えばいいという説明がありますが、私は使いませんでしたのでここでは無視します。
さて、私の対象とする環境は普通の x86 ですので以下の patch をあてました。
- core-lite.patch
- i386-lite.patch
- core.patch
- i386.patch
- 8250.patch
- module.patch
これらの patch で -lite が付いているものは基本 patch のようなので関連するものに関してはそれらを先にあてます。patch のあてかた自体は kgdbquickstart-2.4.pdf が参考になります。
- kgdbquickstart-2.4.pdf
http://kgdb.linsyssoft.com/downloads/kgdb-2/kgdbquickstart-2.4.pdf
曰く、
$ patch -p1 < ${BASE_DIR}/linux-2.6.15.5-kgdb-2.4/core-lite.patchのような感じです。
ここで、カレントディレクトリは kernel のソースを展開したディレクトリです。例えば /usr/src/kernels/linux-2.6.15.5 などです。ここは自分の環境に読み替えてください。引用されている ${BASE_DIR} がそれですね(補足2006.05.15 : この ${BASE_DIR} は /usr/src/kernels/ になります。${BASE_DIR} がそれ、は間違いですね)。
patch に関して簡単に補足しておくと、8250.patch はシリアルポートを用いてリモートデバッグをする場合の patch です。WinDbg ではシリアルポートの接続でデバッグを行っていたのでこれを使うことにしました。シリアルポート以外にはイーサネット接続でデバッグができるようで、その場合には eth.patch をあてます。私はこれでデバッグを行ったことが無いので説明はできません。
module.patch に関しては autoloaded module のデバッグに関して有用である、といったことが書かれていたのであてることにしました。実際にどういった効果があったかは調べていませんが、とりあえずあててあります。実際のデバッグではモジュールの autoload をしなかったため、どうでもよかったのかもしれません。
投稿者 napier : 2006年05月12日 00:11
トラックバック
このエントリーのトラックバックURL:
http://will.squares.net/mt/mt-modified-tb.cgi/388