.server (创建调试服务器)

.server 命令启动调试服务器,允许远程连接到当前调试会话。

重要

使用远程调试时,有一些重要的安全注意事项。 有关详细信息,包括有关启用安全模式的信息,请参阅 windows 调试工具安全注意事项。

建议的连接方法,并提供了一些额外的安全性

.server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] 
.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] 
.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] 

不安全的连接方法

.server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 
.server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 
.server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 
.server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

参数

PipeName
使用 NPIPE 或 SPIPE 协议时,PipeName 是将用作管道名称的字符串。 每个管道名称应标识唯一的调试服务器。 如果尝试重复使用管道名称,将收到错误消息。 PipeName 不得包含空格或引号。 PipeName 可以包含数字 printf样式格式代码,例如 %x 或 %d。 调试器将替换为调试器的进程 ID。 第二个此类代码将替换为调试器的线程 ID。

套接字
使用 TCP 或 SSL 协议时,套接字 是套接字端口号。

还可以指定用冒号分隔的端口范围。 调试器将检查此范围中的每个端口,以查看它是否可用。 如果找到免费端口且未发生错误,将创建调试服务器。 调试客户端必须指定用于连接到服务器的实际端口。 若要确定实际端口,请使用 搜索调试服务器中所述的任何方法;显示此调试服务器时,端口后跟两个数字,用冒号分隔。 第一个数字将是使用的实际端口;可以忽略第二个。 例如,如果端口指定为 port=51:60,并且实际使用了端口 53,则搜索结果将显示“port=53:60”。 (如果使用 clicon 参数建立反向连接,则调试客户端可以采用这种方式指定端口范围,而服务器必须指定使用的实际端口。

clicon=客户端
使用 TCP 或 SSL 协议并指定 clicon 参数时,将打开 反向连接。 这意味着调试服务器将尝试连接到调试客户端,而不是让客户端启动联系人。 如果你的防火墙阻止了往常的连接,这非常有用。 客户端 指定调试客户端所在的计算机的网络名称或将创建。 两个初始反斜杠(\\)是可选的。

使用 clicon 时,最好在创建调试服务器之前启动调试客户端,尽管也允许通常的顺序(客户端之前服务器)。 当另一个调试器显示所有活动服务器时,不会显示反向连接服务器。

COMPort
使用 COM 协议时,COMPort 指定要使用的 COM 端口。 前缀 COM 是可选的(例如,“com2”和“2”都是可接受的)。

BaudRate
使用 COM 协议时,BaudRate 指定连接将运行时的波特率。 允许硬件支持的任何波特率。

COMChannel
如果使用 COM 协议,COMChannel 指定要用于与调试客户端通信的 COM 通道。 此值可以是介于 0 和 254 之间的任意值(包括 0 和 254)。

协议
如果使用 SSL 或 SPIPE 协议,协议 指定安全通道(S 通道)协议。 这可以是任一字符串 tls1、pct1、ssl2 或 ssl3。

证书
如果使用 SSL 或 SPIPE 协议,证书 指定证书。 这可以是证书名称或证书的指纹(证书管理单元提供的十六进制数字字符串)。 如果使用语法 certuser=证书,调试器将在系统存储(默认存储)中查找证书。 如果使用语法 machuser=证书,调试器将在计算机存储中查找证书。 指定的证书必须支持服务器身份验证。

隐藏
当另一个调试器显示所有活动服务器时,阻止服务器出现。

password=密码
需要调试客户端提供指定的密码才能连接到调试会话。 密码 可以是任意字母数字字符串,长度最多为 12 个字符。

ipversion=6
(仅适用于 Windows 6.6.07 和更早版本的调试工具)使用 TCP 连接到 Internet 时,强制调试器使用 IP 版本 6 而不是版本 4。 在 Windows Vista 和更高版本中,调试器会尝试自动默认为 IP 版本 6,因此不需要此选项。

IcfEnable
使调试器在 Internet 连接防火墙处于活动状态时为 TCP 或命名管道通信启用必要的端口连接。 默认情况下,Internet 连接防火墙会禁用这些协议使用的端口。 当 IcfEnable 与 TCP 连接一起使用时,调试器会导致 Windows 打开 Socket 参数指定的端口。 当 IcfEnable 与命名管道连接一起使用时,调试器会导致 Windows 打开用于命名管道的端口(端口 139 和 445)。 连接终止后,调试器不会关闭这些端口。

环境

项目 描述
模式 用户模式、内核模式
目标 实时故障转储
平台

其他信息

有关如何启动调试服务器的完整详细信息,请参阅 激活调试服务器。 有关示例,请参阅 客户端和服务器示例

言论

此命令将当前调试器转换为调试服务器。 这允许在调试器运行后启动服务器,而 -server 命令行选项 只能在调试器启动时发出。

这允许调试客户端连接到当前调试会话。 请注意,可以使用不同的选项启动多个服务器,从而允许不同类型的调试客户端加入会话。

重要

将密码与 TCP、NPIPE 或 COM 协议配合使用仅提供少量的保护,因为密码未加密。 将密码与 SSL 或 SPIPE 协议一起使用时,密码将加密。 如果要建立安全的远程会话,必须使用 SSL 或 SPIPE 协议。