啟動偵錯伺服器
有兩種方式可以啟動偵錯伺服器。 在提升許可權的 [命令提示字元] 視窗中,使用 [-server 命令行] 選項啟動調試程式時,即可啟動它。 在調試程式執行之後,也可以啟動它。 使用提高的許可權啟動調試程式(以系統管理員身分執行),然後輸入 .server 命令。
注意 您可以啟用偵錯伺服器,而不需要提高許可權,而且偵錯用戶端將能夠連線到伺服器。 不過,除非用戶端以較高的許可權啟用,否則用戶端將無法探索偵錯伺服器。 如需如何探索偵錯伺服器的資訊,請參閱 搜尋偵錯伺服器。
重要
使用遠端偵錯時,還有其他重要的安全性考慮,如需詳細資訊,包括啟用安全模式的資訊,請參閱遠端偵錯期間的安全性 和 windows 偵錯工具 安全性考慮。
調試程式支持數種傳輸通訊協定:命名管道(NPIPE)、TCP、COM 埠、安全管道(SPIPE),以及安全套接字層 (SSL)。
啟用偵錯伺服器的一般語法取決於所使用的通訊協定。
建議的連線方法,以及一些額外的安全性
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]
不安全的連線方法
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]
啟動偵錯伺服器的另一種方法是在調試程式啟動之後,使用 .server (建立偵錯伺服器) 命令。
建議的連線方法,以及一些額外的安全性
.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]
參數
上述命令中的參數具有下列可能的值:
調試程式
可以是 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=用戶端
使用 TCP 或 SSL 通訊協定並指定 clicon 參數時,將會開啟 反向連線。 這表示偵錯伺服器會嘗試連線到偵錯用戶端,而不是讓用戶端起始聯繫人。 如果您的防火牆無法正常進行連線,這非常有用。
用戶端 指定偵錯用戶端存在或建立所在計算機的網路名稱或IP位址。 兩個初始反斜杠 (\) 是選擇性的。
因為伺服器正在尋找一個特定的用戶端,所以如果您使用此方法,就無法將多個用戶端連線到伺服器。 如果連線遭到拒絕或中斷,您必須重新啟動伺服器連線。 當另一個調試程序顯示所有作用中的伺服器時,將不會顯示反向連線伺服器。
注意 使用 clicon 時,最好在建立偵錯伺服器之前啟動偵錯客戶端,不過也允許一般順序(用戶端之前的伺服器)。
port=COMPort
使用 COM 通訊協定時,COMPort 指定要使用的 COM 連接埠。 前置詞 “COM” 是選擇性的 -- 例如,可以接受 “com2” 和 “2”。
baud=BaudRate
使用 COM 通訊協定時,BaudRate 會指定連線執行所在的傳輸速率。 允許硬體支援的任何包速率。
信道=COMChannel
如果使用 COM 通訊協定,COMChannel 指定要用於與偵錯用戶端通訊的 COM 通道。 這可以是介於 0 到 254 之間的任何值,包含。 您可以使用單一 COM 埠搭配不同的通道號碼進行多個連線。 (這與使用 COM 埠進行偵錯纜線的方式不同 -- 在這種情況下,您無法在 COM 埠內使用通道。
proto=通訊協定
如果使用 SSL 或 SPIPE 通訊協定,通訊協定 指定安全通道 (S-Channel) 通訊協定。 這可以是任何一個字串 tls1、pct1、ssl2 或 ssl3。
憑證
如果使用 SSL 或 SPIPE 通訊協定,憑證 指定憑證。 這可以是憑證名稱或憑證指紋(憑證嵌入式管理單元所提供的十六進位數位字串)。 如果使用 certuser=
隱藏
當另一個調試程序顯示所有作用中的伺服器時,防止伺服器出現。
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)。 調試程式不會在連線終止之後關閉這些埠。
選項
您可以在這裡放置任何其他命令行參數。 如需完整清單,請參閱 Command-Line 選項。
您可以使用 .server 命令,使用不同的通訊協定選項啟動多部伺服器。 這可讓不同類型的偵錯用戶端加入會話。