シリアル ケーブル経由のカーネルモード デバッグの手動設定
Windows 用デバッグ ツールでは、null モデム ケーブルを介したカーネル デバッグがサポートされています。 null モデム ケーブルは、2 つのシリアル ポート間でデータを送信するように構成されたシリアル ケーブルです。 null モデム ケーブルを標準シリアル ケーブルと混同しないでください。 標準シリアル ケーブルは、シリアル ポートを相互接続しません。 null モデム ケーブルの配線方法については、「null モデム ケーブルの配線」を参照してください。
デバッガを実行するコンピューターはホスト コンピューターと呼ばれ、デバッグ対象のコンピューターはターゲット コンピューターと呼ばれます。
ターゲット コンピューターのセットアップ
重要
BCDEdit を使用してブート情報を変更する前に、テスト PC で BitLocker やセキュア ブートなどの Windows セキュリティ機能を一時的に中断することが必要になる場合があります。 デバッグが完了し、カーネル デバッグを無効にしたら、セキュア ブートを再度有効化できます。
ターゲット コンピューターで、管理者として [コマンド プロンプト] ウィンドウを開き、次のコマンドを入力します。ここで、n はターゲット コンピューターでのデバッグに使用される COM ポートの数、rate はデバッグに使用されるボー レートです。
bcdedit /debug on
bcdedit /dbgsettings serial debugport:n baudrate:rate
注: ボー レートは、ホスト コンピューターとターゲット コンピューターで同じである必要があります。 推奨レートは 115200 です。
ターゲット コンピューターを再起動します。
デバッグ セッションの開始
ホスト コンピューターとターゲット コンピューターでデバッグするために選択した COM ポートに、null モデム ケーブルを接続します。
WinDbg の使用
ホスト コンピューターで WinDbg を開きます。 [ファイル] メニューの [カーネル デバッグ] を選択します。 [カーネル デバッグ] ダイアログ ボックスで、[COM] タブを開きます。[ボーレート] ボックスに、デバッグ用に選択したレートを入力します。 [ポート] ボックスに「COMn」と入力します。ここで、n は、ホスト コンピューターでデバッグするために選択した COM ポート番号です。 [OK] を選択します。
[コマンド プロンプト] ウィンドウで次のコマンドを入力して、WinDbg とのセッションを開始することもできます。n はホスト コンピューターでのデバッグに使用される COM ポートの数、rate はデバッグに使用されるボー レートです。
windbg -k com:port=COMn,baud=rate
KD の使用
ホスト コンピューターで [コマンド プロンプト] ウィンドウを開き、次のコマンドを入力します。ここで、n はホスト コンピューターでのデバッグに使用される COM ポートの数、rate はデバッグに使用されるボー レートです。
kd -k com:port=COMn,baud=rate
環境変数の使用
ホスト コンピューターでは、環境変数を使用して COM ポートとボー レートを指定できます。 そのため、デバッグ セッションを開始するたびにポートとボー レートを指定する必要はありません。 環境変数を使用して COM ポートとボー レートを指定するには、[コマンド プロンプト] ウィンドウを開き、次のコマンドを入力します。ここで、n はホスト コンピューターでのデバッグに使用される COM ポートの数、rate はデバッグに使用されるボー レートです。
- set _NT_DEBUG_PORT=COMn
- set _NT_DEBUG_BAUD_RATE=rate
デバッグ セッションを開始するには、[コマンド プロンプト] ウィンドウを開き、次のいずれかのコマンドを入力します。
- kd
- windbg
シリアル ケーブル経由のデバッグのトラブルシューティングに関するヒント
ホストとターゲットの両方で適切な COM ポートを指定する
ホスト コンピューターとターゲット コンピューターでデバッグに使用する COM ポートの数を決めます。 たとえば、ホスト コンピューターの COM1 とターゲット コンピューターの COM2 に接続されている null モデム ケーブルがあるとします。
ターゲット コンピューターで、管理者として [コマンド プロンプト] ウィンドウを開き、「bcdedit /dbgsettings」と入力します。 ターゲット コンピューターで COM2 を使用している場合、bcdedit の出力には debugport 2
が表示されます。
ホスト コンピューターで、デバッガーを起動するとき、または環境変数を設定するときに、正しい COM ポートを指定します。 ホスト コンピューターで COM1 を使用している場合は、次のいずれかの方法で COM ポートを指定します。
- WinDbg の [カーネル デバッグ] ダイアログ ボックスで、[ポート] ボックスに「COM1」と入力します。
- windbg -k com:port=COM1, ...
- kd -k com:port=COM1, ...
- set _NT_DEBUG_PORT=COM1
ボー レートは、ホストとターゲットで同じである必要があります
シリアル ケーブル経由のデバッグに使用されるボー レートは、ホスト コンピューターとターゲット コンピューターで同じ値に設定する必要があります。 たとえば、ボー レート 115200 を選択したとします。
ターゲット コンピューターで、管理者として [コマンド プロンプト] ウィンドウを開き、「bcdedit /dbgsettings」と入力します。 bcdedit の出力には、baudrate 115200
が表示されます。
ホスト コンピューターで、デバッガーを起動するとき、または環境変数を設定するときに、正しいボー レートを指定します。 ボー レート 115200 を指定するには、次のいずれかの方法を使用します。
- WinDbg の [カーネル デバッグ] ダイアログ ボックスで、[ボー レート] ボックスに「115200」と入力します。
- windbg -k ..., baud=115200
- kd -k ..., baud=115200
- set _NT_DEBUG_BAUD_RATE=115200
null モデム ケーブルの配線
次のテーブルは、null モデム ケーブルの配線方法を示しています。
9 ピン コネクタ
コネクタ 1 | コネクタ 2 | シグナル |
---|---|---|
2 | 3 | Tx - Rx |
3 | 2 | Rx - Tx |
7 | 8 | RTS - CTS |
8 | 7 | CTS - RTS |
4 | 1+6 | DTR - (CD+DSR) |
1+6 | 4 | (CD+DSR) - DTR |
5 | 5 | シグナル グラウンド |
25 ピン コネクタ
コネクタ 1 | コネクタ 2 | シグナル |
---|---|---|
2 | 3 | Tx - Rx |
3 | 2 | Rx - Tx |
4 | 5 | RTS - CTS |
5 | 4 | CTS - RTS |
6 | 20 | DSR - DTR |
20 | 6 | DTR - DSR |
7 | 7 | シグナル グラウンド |
シグナルの省略形
省略形 | Signal |
---|---|
Tx | データの送信 |
Rx | データの受信 |
RTS | 送信の要求 |
CTS | 送信のクリア |
DTR | データ ターミナルの準備完了 |
DSR | データ セットの準備完了 |
CD | キャリア検出 |
追加情報
bcdedit コマンドの詳細については、「BCDEdit オプション リファレンス」を参照してください。