共用方式為


啟動進程伺服器

Windows 偵錯工具中包含的進程伺服器稱為 DbgSrv (dbgsrv.exe)。 若要啟動進程伺服器,請開啟提升許可權的命令提示字元視窗(以系統管理員身分執行),然後輸入 dbgsrv 命令。

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

DbgSrv 支援數種傳輸通訊協定:命名管道 (NPIPE)、TCP、COM 埠、安全管道 (SPIPE) 和安全套接字層 (SSL)。

dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc] 

上述命令中的參數具有下列可能的值:

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

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

port= 插座
使用 TCP 或 SSL 通訊協定時, Socket 是套接字埠號碼。

您也可以指定以冒號分隔的埠範圍。 DbgSrv 會檢查此範圍中的每個埠,以查看其是否可用。 如果找到免費埠且不會發生錯誤,則會建立進程伺服器。 智慧型手機到伺服器的實際埠。 若要判斷實際埠,請使用搜尋進程伺服器中所述 的任何方法;當顯示此進程伺服器時,埠後面會接著兩個數位,並以冒號分隔。 第一個數位將是實際使用的埠;可以忽略第二個 。 例如,如果埠指定為 port=51:60,且實際使用埠 53,搜尋結果會顯示 “port=53:60”。 (如果您使用 clicon 參數來建立反向連線,智慧型用戶端可以透過這種方式指定埠範圍,而進程伺服器必須指定所使用的實際埠。

clicon= 客戶
使用 TCP 或 SSL 通訊協定並 指定 clicon 參數時, 將會開啟反向連線 。 這表示進程伺服器會嘗試連線到智慧型手機到智慧型手機用戶端,而不是讓用戶端起始聯繫人。 如果您的防火牆無法正常進行連線,這非常有用。 用戶端 會指定智慧型手機用戶端存在或將要建立之電腦的網路名稱或IP位址。 兩個初始反斜杠 (\) 是選擇性的。

因為進程伺服器正在尋找一個特定的用戶端,所以如果您使用此方法,就無法將多個用戶端連線到伺服器。 如果連線遭到拒絕或中斷,您必須重新啟動進程伺服器。 當有人使用 -QR 命令列選項顯示所有作用中的伺服器時,將不會顯示反向連線進程伺服器。

注意 使用 clicon,最好先啟動智慧型手機用戶端,再建立進程伺服器,不過也允許一般順序(用戶端之前的伺服器)。

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

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

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

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

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

隱藏
當有人使用 -QR 命令列選項顯示所有作用中的伺服器時,防止進程伺服器出現。

password= 密碼
需要智慧型手機用戶端提供指定的密碼,才能連線到進程伺服器。 密碼 可以是任何英數位元字串,長度最多 12 個字元。

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

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

IcfEnable
讓調試程式在因特網連線防火牆作用中時啟用 TCP 或命名管道通訊的必要埠連線。 根據預設,因特網連線防火牆會停用這些通訊協定所使用的埠。 當 IcfEnable 與 TCP 連線搭配使用時,調試程式會讓 Windows 開啟 Socket 參數所指定的埠。 當 IcfEnable 與命名管道連接搭配使用時,調試程式會讓 Windows 開啟用於命名管道的埠(埠 139 和 445)。 調試程式不會在連線終止之後關閉這些埠。

-sifeo 可執行檔
暫止指定映像的映像檔執行選項 (IFEO) 值。 可執行檔 應包含可執行檔映像的檔名,包括擴展名。 -sifeo 選項可讓 DbgSrv 設定為 -c 選項所建立映射的 IFEO 調試程式,而不會因為 IFEO 設定而造成遞歸調用。 只有在使用 -c,才能使用此選項。

-c
讓 DbgSrv 建立新的進程。 您可以使用此專案來建立您想要偵錯的進程。 這類似於從調試程式繁衍新進程,不同之處在於建立此進程時不會進行偵錯。 若要偵錯此進程,請在啟動智慧型手機客戶端以偵錯此進程時,判斷其 PID 並使用 -p 選項。

s
導致新建立的進程立即暫停。 如果您使用此選項,建議您使用CDB作為智慧型手機用戶端,並使用 -pb 命令行選項來啟動智慧型手機用戶端,並搭配 -p PID。 如果您在命令列中包含 -pb 選項,當調試程式附加至該選項時,進程將會繼續;否則您可以使用 ~*m 命令繼續進程

AppCmdLine
指定要建立之進程的完整命令行。 AppCmdLine 可以是 Unicode 或 ASCII 字串串,而且可以包含任何可列印的字元。 所有出現在 -c[s] 參數之後的文字都會採用,以形成字串 AppCmdLine

-x
導致忽略命令行的其餘部分。 如果您要從可能會將垃圾文字附加至其命令行的應用程式啟動 DbgSrv,這個選項會很有用。

-個人電腦
導致忽略命令行的其餘部分。 如果您要從可能會將垃圾文字附加至其命令行的應用程式啟動 DbgSrv,這個選項會很有用。 如果 -pc 是 DbgSrv 命令行上的最後一個專案,則語法錯誤會產生。 除了這項限制之外, -pc-x 相同。

您可以在一部電腦上啟動任意數目的進程伺服器。 不過,這通常是不必要的,因為一個進程伺服器可供任意數目的智慧型手機用戶端使用(每個用戶端都參與不同的偵錯會話)。