啟動偵錯伺服器

有兩種方式可以啟動偵錯伺服器。 在提升許可權的 [命令提示字元] 視窗中使用 -server 命令列選項啟動偵錯工具時, (以系統管理員身分執行) 即可啟動。 也可以在偵錯工具執行之後啟動。 以較高的權限啟動偵錯工具, (以系統管理員身分執行) ,然後輸入 .server 命令。

注意 您可以啟用偵錯伺服器,而不需要提高許可權,而且偵錯用戶端將能夠連線到伺服器。 不過,用戶端將無法探索偵錯伺服器,除非已以較高的許可權啟用。 如需如何探索偵錯伺服器的資訊,請參閱 搜尋偵錯伺服器

偵錯工具支援數種傳輸通訊協定:具名管道 (NPIPE) 、TCP、COM 埠、安全管道 (SPIPE) ,以及安全通訊端層 (SSL) 。

啟用偵錯伺服器的一般語法取決於所使用的通訊協定。

Debugger -server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [-noio] [Options]

Debugger -server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [-noio] [Options]

Debugger -server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [-noio] [Options]

Debugger -server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [-noio] [Options]

Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [-noio] [Options]

Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [-noio] [Options]

啟動偵錯伺服器的另一種方法是在偵錯工具啟動之後,使用 .server (Create Debugging Server) 命令。

.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] 

.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] 

先前命令中的參數具有下列可能的值:

調試
可以是 KD、CDB、NTSD 或 WinDbg。

pipe=PipeName
使用 NPIPE 或 SPIPE 通訊協定時, PipeName 是將做為管道名稱的字串。 每個管道名稱都應該識別唯一的偵錯伺服器。 如果您嘗試重複使用管道名稱,您會收到錯誤訊息。 PipeName 不得包含空格或引號。 PipeName 可以包含數值 printf樣式格式代碼,例如 %x%d。 偵錯工具會將這個 取代為偵錯工具的進程識別碼。 第二個這類程式碼將會取代為偵錯工具的執行緒識別碼。

注意 您可能需要在執行偵錯伺服器的電腦上啟用檔案和印表機共用。 在 [主控台] 中,流覽至 [網路和網際網路 > 網路] 和 [共用中心 > ] [進階共用設定]。 選取 [開啟檔案和印表機共用]。

port=Socket
使用 TCP 或 SSL 通訊協定時, 通訊端 是通訊端埠號碼。

您也可以指定以冒號分隔的埠範圍。 偵錯工具會檢查此範圍中的每個埠,以查看其是否可用。 如果找到可用埠且未發生錯誤,將會建立偵錯伺服器。 偵錯用戶端必須指定用來連線到伺服器的實際埠。 若要判斷實際埠,請使用搜尋偵錯 伺服器中所述的任何方法;顯示這個偵錯伺服器時,埠後面會接著兩個以冒號分隔的數位。 第一個數位將是使用的實際埠;可以忽略第二個 。 例如,如果埠指定為 port=51:60,且實際使用埠 53,搜尋結果會顯示 「port=53:60」。 (如果您使用 clicon 參數建立反向連線,偵錯用戶端可以以此方式指定埠範圍,而伺服器必須指定使用的實際埠。)

clicon=Client
使用 TCP 或 SSL 通訊協定並指定 clicon 參數時,將會開啟 反向連線 。 這表示偵錯伺服器會嘗試連線到偵錯用戶端,而不是讓用戶端起始連絡人。 如果您有防火牆阻止一般方向的連線,這非常有用。 用戶端 會指定偵錯用戶端存在或將要建立之電腦的網路名稱或 IP 位址。 兩個初始反斜線 (\) 是選擇性的。

由於伺服器正在尋找一個特定的用戶端,因此如果您使用此方法,則無法將多個用戶端連線到伺服器。 如果連線遭到拒絕或中斷,您必須重新開機伺服器連線。 當另一個偵錯工具顯示所有作用中的伺服器時,將不會顯示反向連接伺服器。

注意 使用 clicon 時,最好先啟動偵錯用戶端,再建立偵錯伺服器,雖然也允許用戶端) 之前的一般順序 (伺服器。

port=COMPort
使用 COM 通訊協定時, COMPort 會指定要使用的 COM 埠。 前置詞 「COM」 是選擇性的 ,例如,「com2」 和 「2」 都是可接受的。

baud=BaudRate
使用 COM 通訊協定時, BaudRate 會指定連接執行時的傳輸速率。 允許硬體支援的任何傳輸速率。

channel=COMChannel
如果使用 COM 通訊協定, COMChannel 會指定要用來與偵錯用戶端通訊的 COM 通道。 這可以是介於 0 到 254 之間的任何值,包含。 您可以使用單一 COM 埠來使用不同的通道號碼進行多個連線。 (這與對偵錯纜線使用 COM 埠不同-- 在此情況下,您無法在 COM 埠內使用通道。)

proto=Protocol
如果使用 SSL 或 SPIPE 通訊協定, Protocol 會指定安全通道 (S 通道) 通訊協定。 這可以是任何一個字串 tls1、pct1、ssl2 或 ssl3。

證書
如果使用 SSL 或 SPIPE 通訊協定, Cert 會指定憑證。 這可以是憑證名稱或憑證指紋, (憑證嵌入式管理單元) 所提供的十六進位數位字串。 如果使用 certuser=Cert 語法,偵錯工具會在系統存放區中查閱憑證, (預設存放區) 。 如果使用 machuser=Cert 語法,偵錯工具會在電腦存放區中查閱憑證。 指定的憑證必須支援伺服器驗證。

隱藏
當另一個偵錯工具顯示所有作用中的伺服器時,防止伺服器出現。

password=Password
需要用戶端提供指定的密碼,才能連線到偵錯會話。 密碼 可以是任何英數位元字串,長度最多 12 個字元。

警告 搭配 TCP、NPIPE 或 COM 通訊協定使用密碼只會提供少量的保護,因為密碼未加密。 當密碼與 SSL 或 SPIPE 通訊協定搭配使用時,即會加密。 如果您想要建立安全的遠端會話,您必須使用 SSL 或 SPIPE 通訊協定。

ipversion=6
(Windows 6.6.07 和更早版本的偵錯工具,只會) 強制偵錯工具在使用 TCP 連線到網際網路時使用 IP 版本 6,而不是第 4 版。 在 Windows Vista 和更新版本中,偵錯工具會嘗試自動預設為 IP 版本 6,因此不需要此選項。

-noio
如果使用 -noio 選項建立偵錯伺服器,則無法透過伺服器本身完成任何輸入或輸出。 偵錯工具只會接受偵錯用戶端的輸入, (加上 -c 命令列選項所指定的任何初始命令或命令腳本) 。 所有輸出都會導向至偵錯用戶端。 -noio選項僅適用于 KD、CDB 和 NTSD。 如果 NTSD 用於伺服器,則完全不會建立任何主控台視窗。

IcfEnable
當網際網路連線防火牆作用中時,偵錯工具會啟用 TCP 或具名管道通訊的必要端口連線。 根據預設,網際網路連線防火牆會停用這些通訊協定所使用的埠。 當 IcfEnable 與 TCP 連線搭配使用時,偵錯工具會讓 Windows 開啟 Socket 參數所指定的埠。 當 IcfEnable 與具名管道連線搭配使用時,偵錯工具會讓 Windows 開啟用於具名管道的埠, (埠 139 和 445) 。 偵錯工具不會在連線終止之後關閉這些埠。

選項
您可以在這裡放置任何其他命令列參數。 如需完整清單,請參閱 命令列選項

您可以使用 .server 命令,使用不同的通訊協定選項啟動多部伺服器。 這可讓不同類型的偵錯用戶端加入會話。

另請參閱

控制遠端偵錯會話

.endrv (結束偵錯伺服器)