前のページ 次のページ 目次

8. デバッグ

残念ながら新しいドライバのデバッグは辛いものです。例えば SVGA チッ プセットのプログラムが間違った場合マシンが固まってしまうでしょう。 ディスプレイの表示が消えたりするので、もしかすると正常に戻すために 再立ち上げをする必要があるかもしれません。外部端末を繋ぐか、ネット ワークからログインすることを*強く*お勧めします。サーバーでデバッガ が動作する場合に、唯一合理的な方法です。複数の VT を使いながらのデ バッグは基本的に時間の無駄です。

マシンが固まってしまう場合は、サーバーを起動する前に一つか二つの `同期'を取る事を思い出すことは*とても*良いと思います。加えて、デバッ グを始める前に必要のないファイルシステムをアンマウント(必要のない fsck が実行されないように)しておきましょう。

標準ではサーバーはデバッグ用のシンボルが付属していません。デバッグ できるようにしたサーバーは*とても*大きなものになります。ですがデバッ グの為のサーバーを再構築することは簡単です。次の手順で行ってください:

  1. ドライバのディレクトリへ移動してください。
  2. Makefile を編集してください。 `CDEBUGFLAGS' の *二番目*の定義を探してください。次のように修正してください。
                    CDEBUGFLAGS = -g -DNO_INLINE
            
    
    (これはデバッグ用シンボルを有効にし、シングルステップ実行時 の悪夢を引き起こす関数のインライン展開を無効にします。)
  3. `sdc_driver.o' ファイルを消してください。
  4. 上記の手順に注目してサーバーを再構築してください。 (又は、古い .o ファイルを消した後で Makefile を修正する代わりに、 単に `make CDEBUGFLAGS="-g -DNO_INLINE"' を実行して 上記の手順でサーバーを再構築してください。)

これを行うことによってドライバの関数にブレークポイントを設定しシン グルステップ実行をサーバーで行うことが出来ます。ソースから作業を行 い、SVGA プログラミングを学習し始めたばかりならば、vgaHW.c を再構築 しデバッグするのがちょうど良いでしょう。


前のページ 次のページ 目次