Debugging Tools for Windows

激活灵巧客户端(内核模式)

一旦KD连接服务器被激活,就可以在另外一台计算机上启动一个灵巧客户端开始调试会话。

有两种不同的启动灵巧客户端的方法:和内核协议kdsrv 一起启动KD或WinDbg,或者使用WinDbg图形界面。

需要指定KD连接服务器所使用的传输协议。也可以指定KD连接服务器和目标机实际的内核连接协议,或者使用默认值。

灵巧客户端使用的协议必须和进程服务器匹配。启动灵巧客户端的常规语法由使用的协议决定。有下面一些选择:

Debugger -k kdsrv:server=@{npipe:server=Server,pipe=PipeName[,password=Password]},trans=@{ConnectType} [Options] 

Debugger -k kdsrv:server=@{tcp:server=Server,port=Socket[,password=Password][,ipversion=6]},trans=@{ConnectType} [Options] 

Debugger -k kdsrv:server=@{tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6]},trans=@{ConnectType} [Options] 

Debugger -k kdsrv:server=@{com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password]},trans=@{ConnectType} [Options] 

Debugger -k kdsrv:server=@{spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password]},trans=@{ConnectType} [Options] 

Debugger -k kdsrv:server=@{ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password]},trans=@{ConnectType} [Options] 

Debugger -k kdsrv:server=@{ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password]},trans=@{ConnectType} [Options] 

要使用图形界面连接到KD连接服务器,WinDbg必须在静止模式下 — 它必须以没有命令行参数的形式启动,或必须中止已有的调试会话。选择File | Connect to Remote Stub菜单命令。当Connect to Remote Stub Server 对话框出现后,在Connection string 文本框中输入下面的字符串之一:

npipe:server=Server,pipe=PipeName[,password=Password

tcp:server=Server,port=Socket[,password=Password][,ipversion=6

tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6

com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password

spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password

另外,也可以使用Browse 来定位激活的KD连接服务器。查看File | Connect to Remote Stub获取详细信息。

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

Debugger
可以是KD或WinDbg。
Server
这是创建KD连接服务器的计算机的网络名字或IP地址。两个反斜杠(\\) 在命令行中是可选的,但是在WinDbg对话框中不能使用。
pipe=PipeName
如果使用NPIPE或SPIPE,PipeName 是KD连接服务器创建时设定的管道名。
port=Socket
如果使用TCP或SSL协议,Socket 和KD连接服务器创建时指定的套接字端口号一样。
clicon
指定KD连接服务器将试图通过反向连接来连接到灵巧客户端。客户端当且仅当服务器也使用clicon时才能使用clicon。大多数情况下,使用反向连接时,灵巧客户端应比KD连接服务器启动。
port=COMPort
如果使用COM协议,COMPort 指定使用的COM端口。前缀"COM"是可选的 — 例如, "com2" 和"2"都可以使用。
baud=BaudRate
如果使用COM协议,BaudRate 必须和KD连接服务器创建时选择的波特率匹配。
channel=COMChannel
如果使用COM协议,COMChannel 必须和KD连接服务器创建时选择的频道号匹配。
proto=Protocol
如果使用SSL或SPIPE协议,Protocol 必须和KD连接服务器创建时选择的安全协议匹配。
Cert
如果使用SSL或SPIPE协议,必须和KD连接服务器创建时指定一样的certuser=Certmachuser=Cert 参数。
password=Password
如果KD连接服务器创建时使用了密码,创建灵巧客户端时必须使用Password 。它必须和原始密码匹配。密码是大小心敏感的。如果密码错误,会出现"Error 0x80004005." 错误。
ipversion=6

(仅Debugging Tools for Windows 6.6.07 和之前的版本) 强制调试器在使用TCP连接到Internet时使用IP v6而不是v4。在Windows Vista和之后的版本中,调试器尝试默认使用IP v6,所以不再需要该选项。

trans=@{ConnectType}
用于告诉调试器如何连接到目标机。支持下面这些内核连接协议:

com:port=ComPort,baud=BaudRate 
1394:channel=1394Channel[,symlink=1394Protocol
usb2:targetname=String 
com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
com:modem 

关于这些协议的信息,查看选择内核调试设置。可以省略这些协议中任意一个参数——例如,可以设置 trans=@{com:} ——调试器会默认将这些值设置为KdSrv运行的计算机上的环境变量中指定的值。

Options
任何其它命令行参数都可以放在这里。查看命令行选项获得完整列表。

由于KD连接服务器类似于灵巧客户端的网关一样工作,其他的选项和在KdSrv所运行的计算机上启动内核调试器所使用的一样。不同之处在于,任何指定路径或文件名的选项都应该使用灵巧客户端所在计算机上的路径。

Build machine: CAPEBUILD