客户端和服务器示例
假设一个人正在名为 \\BOX17 的计算机上运行应用程序。 此应用程序有问题,但调试技术人员位于其他站点。
第一个人在 \\BOX17 上使用 CDB 设置调试服务器。 目标应用程序的进程 ID 为 122。 选择 TCP 协议,套接字端口号为 1025。 在提升的命令提示符窗口(以管理员身份运行)中输入以下命令启动服务器:
E:\Debugging Tools for Windows> cdb -server tcp:port=1025 -p 122
在另一台计算机上,技术人员决定使用 WinDbg 作为调试客户端。 可以通过以下命令启动:
G:\Debugging Tools> windbg -remote tcp:server=BOX17,port=1025
以下是另一个示例。 在这种情况下,选择 NPIPE 协议,并使用 CDB 而不是 WinDbg。 第一个用户选择管道名称。 这可以是任何字母数字字符串,在本例中为“MainPipe”。 第一个用户打开提升的命令提示符窗口(以管理员身份运行),并通过输入以下命令启动调试服务器:
E:\Debugging Tools for Windows> cdb -server npipe:pipe=MainPipe -v winmine.exe
技术人员使用无权访问服务器计算机的帐户登录到客户端计算机。 但技术人员知道可以访问服务器计算机的帐户的用户名和密码。 该帐户的用户名为 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
显示了两个管道。 但是,只有一个是调试服务器,另一个是进程服务器,我们对此不感兴趣。 因此,MainPipe 必须是正确的名称。 技术人员使用以下命令启动调试客户端:
G:\Debugging Tools> cdb -remote npipe:server=BOX17,pipe=MyPipe
使用安全服务器
下面是安全服务器的示例。 该服务器使用安全套接字层,采用 TLS1 的 S-Channel 协议。 调试器将在计算机存储中查找证书。 证书由其十六进制指纹指定。
D:\> cdb -server "ssl:proto=tls1,machuser=ab 38 f7 ae 13 20 ac da 05 14 65 60 30 83 7b 83 09 2c d2 34,port=1234" notepad.exe