第 7 章 デバッグ
7.2 Debug Monitor
7.2.1 wddebug_gui ユーティリティ
wddebug_gui は Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7 および Linux 用の Debug Monitor ユーティリティの完全なグラフィック (GUI) バージョンです。
1. 以下のいずれかの方法で Debug Monitor を起動します
○ WinDriver/util/wddebug_gui を起動します。
○ DriverWizard の [Tool] メニューから Debug Monitor を起動します。
○ [スタート] メニューから [プログラム] - [WinDriver] - [Debug Monitor] を選択して、Debug Monitor を起動します。
図 7.1: Debug Monitor の起動
2. [View] - [Debug Options] メニューを選択するか、ツールバーにある [Debug Options] ボタンをクリックし
て、[Debug Options] ダイアログ ボックスを表示し、Debug Monitor のステータス、トレース レベル、およ びデバッグするセクションを設定します。
図 7.2: Debug Options の設定
○ Status - トレースを [ON] または [OFF] にセットします。
○ Section - 監視する WinDriver API の一部を選択します。PCI カードの割り込み処理に問題 がある場合は、[Interrupts] と [PCI] チェックボックスを選択してください。
USB デバイスのドライバをデバッグする場合は、[USB] ボックスを選択してください。
ヒント: 監視するオプションを選択するときは慎重に行ってください。必要以上にオプションを選択 すると、情報が多すぎて、問題を見つけるのが困難になります。
○ Level - 定義されたリソースから調査するメッセージレベルを選択します。
Error を選択すると、トレースは最小限に表示されます。
Trace を選択すると、WinDriver カーネルのすべての操作が表示されます。
○ WinDriver のカーネル モジュールから受信したデバッグ メッセージを外部のカーネル デバッ
ガに送る場合、[Send debug messages to the operating system kernel debugger] チェックボック スを選択します。
注意: Windows Vista および 7 では、最初にこのオプションを有効にする際に、PC を再起 動する必要があります。
ヒント: 無償の Windows のカーネルデバッガーとして、WinDbg があります。WinDbg は WDK (Windows Driver Kit) および Debugging Tools for Windows package の一部として提供
され、Microsoft の Web サイトから入手できます。
3. トレースする部分とレベルを決定したら [OK] をクリックして [Debug Options] ダイアログボックスを閉じま す。
4. デバッグするプログラムを実行 (ステップ実行など) します。
5. モニタに表示されるエラーや予期しないメッセージを監視してください。
7.2.1.1 名前変更したドライバ用に wddebug_gui を起動するには
デフォルトでは、wddebug_gui は、windrvr6.sys/.o/.koドライバからのメッセージを出力しますが、
wddebug_gui を使用して、以下のようにコマンドラインで driver_name オプションを付けて、
wddebug_gui を起動して、名前変更したドライバからのデバッグメッセージも出力することができます
(windrvr6 ドライバモジュールの名前変更に関しては、セクション 15.2 を参照してください):
wddebug_gui <driver_name>
注意: driver_name には、ファイルの拡張子なしでドライバファイル名を指定します。たとえば、
windrvr6.sys (Windows の場合) や windrvr6.o (Linux の場合) ではなく windrvr6 を指定します。
たとえば、Windows でデフォルトの windrvr6.sys ドライバを my_driver.sys に名前を変更した場 合、以下のコマンドを使用して、Debug Monitor を起動して、ドライバからのログ メッセージを出力できます:
wddebug_gui my_driver