KD 接続サーバーの例

デバッグ技術者が、デバッグ対象のコンピューターが配置されているサイトにいないとします。 デバッグ技術者は、デバッグ ケーブルを使用して、このターゲット コンピューターを他のコンピューターに接続するよう、このサイトのユーザーに依頼します。

この他のコンピューターを IP アドレス 127.0.0.42 に設定します。 デバッグ ケーブルは、このコンピューター上の COM1 を、ターゲット コンピューターでデバッグが有効になっているポートに接続します。 KD 接続サーバーは、次のコマンドで開始されます。

E:\Debugging Tools for Windows> kdsrv -t tcp:port=1027

その後、他の場所で、技術者は次のコマンドを使用して、WinDbg をスマート クライアントとして起動します。

G:\Debugging Tools> windbg -k kdsrv:server=@{tcp:server=127.0.0.42,port=1027},trans=@{com:port=com1,baud=57600} -y SymbolPath

シンボル パスは、スマート クライアントが実行されているコンピューターに対する相対パスになります。

別の例です。 この場合、NPIPE プロトコルが選択され、WinDbg の代わりに KD が使用されます。 最初のユーザーがパイプ名を選択します。 これは任意の英数字文字列にできますが、この例では "KernelPipe" にします。 最初のユーザーは、管理者特権でコマンド プロンプト ウィンドウ (管理者として実行) を開き、次のコマンドを入力してデバッグ サーバーを起動します。

E:\Debugging Tools for Windows> set _NT_DEBUG_PORT=com1
E:\Debugging Tools for Windows> kdsrv -t npipe:pipe=KernelPipe

技術者は、サーバー コンピューターへのアクセス権がないアカウントを使用して、クライアント コンピューターにログオンします。 ただし、技術者は、サーバー コンピューターへのアクセス権があるアカウントのユーザー名とパスワードを知っています。 そのアカウントのユーザー名は Contoso です。 技術者は次のコマンドを入力します。

net use \\BOX17\ipc$ /user:Contoso

プロンプトが表示されたら、技術者は Contoso アカウントのパスワードを入力します。

技術者は、名前付きパイプにどのような名前が使用されたかわからないため、KD 接続サーバーの 127.0.0.42 をクエリします。

G:\Debugging Tools> cdb -QR 127.0.0.42
Servers on 127.0.0.42:
Debugger Server - npipe:Pipe=MainPipe
Remote Process Server - npipe:Pipe=AnotherPipe
Remote Kernel Debugger Server - npipe:Pipe=KernelPipe

3 つのパイプが表示されます。 ただし、KD 接続サーバーは 1 つだけです。他のサーバーはデバッグ サーバーとユーザー モード プロセス サーバーです。 技術者は、次のコマンドを入力してスマート クライアントを起動できます。

G:\Debugging Tools> kd -k kdsrv:server=@{npipe:server=127.0.0.42,pipe=KernelPipe},trans=@{com:baud=57600} -y SymbolPath

ボー レートは指定されていますが、ポートは指定されていないことに注意してください。 これにより、KdSrv が実行されているコンピューターで_NT_DEBUG_PORTによって指定されたポートにデバッガーが既定で設定されます。