メモの日々


2004年10月13日(水) [長年日記]

[net] v6eval

改造したKAMEをテストするのに、TAHI ProjectにあるTAHI IPv6 Conformance Test Suiteのプラットフォーム部分であるv6eval-2.3.1を使ってみたのでメモ。

オリジナルメッセージの送受信をテストしたいのだが、そのためにはv6evalのソースに手を入れないといけないようだ。lib/Pz にある McInit.cc 内に様々なメッセージが定義されていたのでそこに見よう見まねで新規メッセージを追加し、更に McICMPv6.h と McICMPv6.cc と DmObject.cc にも定義を追加したらオリジナルなメッセージを送受信できるようになった。

ここに日本語のマニュアルもあったけど、分からないことばかり。sampleのパケット定義とテストスクリプトを真似すれば単純なメッセージの送受信はできる。ちゃんとしたテストをするスクリプトを書くのはすごく大変そう。

[unix] カーネルのリモートデバッグ

FreeBSD 4.9 でカーネルのリモートデバッグをしたのでちょっとメモ。FreeBSD ハンドブックにある通りなんだけど。

  • ターゲットPCとリモートPCをシリアルケーブルで接続する。
  • カーネルはリモートPC上でビルドする。config を実行するときに -g オプションを付ける。
  • ビルドしてできたkernel.debugをターゲットPCへ送る。ターゲットPCにて、「strip -x kernel.debug」としてから kernel.debug を / へコピーする。
  • ターゲットPCをリブートし、ブートローダから「boot kernel.debug -d」と -d オプション付きでカーネルをブートする。すると、「db> 」プロンプトが表示される。
  • リモートPCにて「gdb -k kernel.debug」としてGDBを起動し、「target remote /dev/cuaa0」を実行する。そのままにしておくと「Ignoring packet error, continuing...」というメッセージが3回表示されてタイムアウトしてしまった。
  • リモートPCで「target remote /dev/cuaa0」を実行中に、ターゲットPCの「db> 」プロンプト上で「gdb」と入力し、「Next trap will enter GDB remote protocol mode」と表示されたら「s」を入力する。するとリモートPC上に「db_numargs (fp=0xc04c3869) at ../../i386/i386/db_trace.c:152」のように表示され、普通にGDBが使えるようになる。ブレークポイントを設定してcontinueだ。
  • デバッグの終わり方がよく分からないけど、GDB上でCtrl+Cを2回押すと割り込めてGDBを終了できた。

やること

  • プリンタ処分
  • リンク元のスリム化