進程伺服器範例
假設一個人正在名為 \\BOX17 的電腦上執行應用程式。 此應用程式有問題,但偵錯技術人員位於不同的月臺。
第一個人會在 \\BOX17 上使用 DbgSrv 來設定進程伺服器。 目標應用程式的進程識別碼為 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 通訊協定,並使用 CDB 而不是 WinDbg。 第一個使用者選擇管道名稱。 這可以是任何英數位元字串 -- 在此範例中為 「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
顯示兩個管道。 不過,只有一個是進程伺服器 -- 另一個則是偵錯伺服器,而且我們對此不感興趣。 因此 ,AnotherPipe 必須是正確的名稱。 技術人員會輸入下列命令來啟動智慧型用戶端:
G:\Debugging Tools> cdb -premote npipe:server=BOX17,pipe=AnotherPipe -v sol.exe
如需使用進程伺服器更複雜的範例,請參閱 中間的符號。