プロセス サーバーの例

ユーザーが、\\BOX17 という名前のコンピューターでアプリケーションを実行しているとします。 このアプリケーションには問題がありますが、デバッグ技術者は別のサイトにいます。

最初のユーザーは、\BOX17 で DbgSrv を使用してプロセス サーバーを設定します。 ターゲット アプリケーションのプロセス ID は 122 です。 TCP プロトコルが選択され、ソケット ポート番号は 1025 です。 サーバーは次のコマンドで起動します。

E:\Debugging Tools for Windows> dbgsrv -t tcp:port=1025 

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

G:\Debugging Tools> windbg -premote tcp:server=BOX17,port=1025 -p 122 

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

E:\Debugging Tools for Windows> dbgsrv -t npipe:pipe=AnotherPipe

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

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

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

技術者は、名前付きパイプにどのような名前が使用されたかわからないため、BOX17 にプロセス サーバーを問い合わせます。

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

2 つのパイプが表示されます。 ただし、プロセス サーバーは 1 つだけです。もう 1 つはデバッグ サーバーであり、これには関心がありません。 したがって、 AnotherPipe が正しい名前であるはずです。 技術者は次のコマンドを入力してスマート クライアントを起動します。

G:\Debugging Tools> cdb -premote npipe:server=BOX17,pipe=AnotherPipe -v sol.exe

プロセス サーバーを使用するより複雑な例については、「 中間のシンボル」を参照してください。