Debugging Tools for Windows

激活调试客户端

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

有两种方法可以启动调试客户端:使用 -remote 命令行选项,或者使用WinDbg图形界面。

客户端使用的协议必须和服务器匹配。开始调试客户端的一般语法由使用的协议决定。有下面一些选择:

Debugger -remote npipe:server=Server,pipe=PipeName[,password=Password

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

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

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

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

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

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

要使用图形界面连接到远程调试会话,WinDbg必须在静止模式下—它必须以没有命令行参数的形式启动,或必须中止已有的调试会话。选择File | Connect to Remote Session 菜单命令或按下 快捷键。当Connect to Remote Debugger Session对话框出现后,在 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 来定位激活的调试服务器。查看File | Connect to Remote Session获取详细信息。

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

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

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

用于开始新调试会话的命令行选项(如-p)不能用在调试客户端上,而只能由服务器使用。配制选项(如-n)在客户端或服务器上都可以使用。

Build machine: CAPEBUILD