Debugging Tools for Windows

激活KD连接服务器

Windows调试工具包中包含的KD连接服务器称为KdSrv (kdsrv.exe)。

KdSrv 支持几种传输协议:命名管道(NPIPE)、TCP、COM端口、安全管道(SPIPS)和安全套接字层(SSL)。

KdSrv的命令行语法由采用的协议决定,可以使用下面一些:

kdsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable

kdsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable

kdsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6

kdsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password

kdsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password

上面命令的参数有下面一些可能的值:

pipe=PipeName
当使用NPIPE或SPIPE协议时,PipeName 是用作管道名的字符串。每个管道名都应该标识一个唯一的进程服务器。如果尝试重复使用管道名,会收到一条错误信息。PipeName 不能包含空格或引号。PipeName 可以包含数字的printf 形式格式化代码,例如%x%d。进程服务器会将它替换为KdSrv的进程ID。第二个这样的代码会被替换为KdSrv的线程ID。
port=Socket
当使用TCP或SSL时,Socket 是套接字的端口号。也可以用一个冒号来指定端口范围(例如port=2:7)。KdSrv会检查该范围内的端口是否可用。如果找到了一个空闲端口并且没有出现错误,KD连接服务器会被创建起来。灵巧客户端需要指定连接到服务器的实际端口号。 (如果使用了clicon参数来进行反向连接,灵巧客户端也可以按这种方式指定端口范围,而KD连接服务器必须指定实际使用的端口。)
clicon=Client
使用TCP或SSL协议并指定clicon 参数时,会打开反向连接。这意味着KD连接服务器会试图连接灵巧客户端,而不是由客户端来发起连接。这在当防火墙阻止通常方向上的连接时会比较有效。客户端指定灵巧客户端所在的计算机的网络名或IP地址。两个反斜杠(\\)是可选的。

因为使用进程服务器来寻找特定客户端的方式,所以不能将多个客户端连接到一个服务器。如果连接被拒绝或丢失,必须重起进程服务器。当使用-QR命令显示所有活动服务器时,反向连接的服务器不会被列举出来。

注意 使用clicon时,最好在KD连接服务器创建之前启动灵巧客户端,但是正常的顺序(服务器在客户端之前)也可以使用。

port=COMPort
使用COM协议时,COMPort 指定使用的COM端口。前缀"COM"是可选的 — 例如,"com2" 和"2"都可以使用。
baud=BaudRate
使用COM协议时,BaudRate 指定连接使用的波特率。硬件所支持的所有波特率都可以使用。
channel=COMChannel
如果使用COM协议,COMChannel 指定和调试客户端通信所使用的COM频道。它可以是0到254之间的任意值(包含0和254)。单个COM端口可以通过使用不同的频道号来支持多个连接。 (这和调试电缆使用COM的情况不同 — 那种情况下COM端口不能使用频道。)
proto=Protocol
如果使用SSL或SPIPE,Protocol 指定安全频道(S-Channel)协议。它可以是tls1pct1ssl2ssl3
Cert
如果使用SSL或SPIPE协议,Cert 用于指定证书。它可以是证书名或证书的特征码(由证书管理机构提供的16进制数字字符串)。如果使用certuser=Cert 形式的语法,调试器会在系统存储中查找证书(默认存储位置)。如果使用machuser=Cert 的语法,调试器在机器存储中查找证书。指定的证书必须支持服务器验证。
hidden
避免KD连接服务器在有人使用-QR命令行选项显示所有活动服务器时被显示出来。
password=Password
要求灵巧客户端在连接到KD连接服务器时提供指定的密码。Password 可以是任何字母和数字组成的字符串。

注意 在TCP、NPIPE或COM协议下使用密码仅提供低程度的保护,因为密码不会被加密。当密码和SSL或SPIPE协议一起使用时,会被加密。如果需要安全的远程会话,必须使用SSL或SPIPE协议!

ipversion=6

(仅Debugging Tools for Windows 6.6.07 和更老的版本) 用TCP连接到Internet时强制调试器使用IPV6而不是V4。在Windows Vista和之后版本中,调试器会尝试默认使用IP v6,所以没有必要使用该选项。

IcfEnable
(仅Windows XP和之后版本) 使得当Internet连接防火墙启动时,调试器启用TCP或命名管道所需要的端口。默认情况下,Internet连接防火墙会禁止这些协议所使用的端口。TCP连接使用IcfEnable后,调试器会让Windows打开Socket 参数所指定的端口。命名管道连接使用IcfEnable 后,调试器会让Windows打开命名管道所使用的端口(139端口或445端口)。调试器在连接关闭后,不会关闭这些被打开的端口。

Build machine: CAPEBUILD