啟用智慧型手機用戶端
啟動 DbgSrv 行程伺服器之後,您就可以在另一部電腦上建立智慧型手機用戶端,並開始偵錯會話。
有兩種方式可以啟動智慧型手機用戶端:使用 -premote 命令行選項啟動 CDB 或 WinDbg,或使用 WinDbg 圖形化介面。
智慧型手機的通訊協議必須符合進程伺服器的通訊協定。 啟動智慧型手機用戶端的一般語法取決於所使用的通訊協定。 有下列選項:
Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]
Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]
Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]
Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]
Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]
Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]
Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]
若要使用圖形化介面來連線到進程伺服器,WinDbg 必須處於休眠模式,它必須以沒有命令行參數啟動,或者必須已結束先前的偵錯會話。 選取檔案 |線上到遠端 Stub 選單命令。 當 [連線到遠端記憶體根伺服器] 對話框出現時,在 [連接字串] 文字框中輸入下列其中一個字串:
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]
或者,您可以使用 [瀏覽] 按鈕來尋找作用中的進程伺服器。
上述命令中的參數具有下列可能的值:
調試器
這可以是CDB或 WinDbg。
伺服器
這是進程伺服器建立所在的計算機網路名稱或IP位址。 兩個初始反斜杠 (\) 在命令行上是選擇性的,但在 [WinDbg] 對話框中是不允許的。
pipe= PipeName
如果使用 NPIPE 或 SPIPE 通訊協定, PipeName 是建立進程伺服器時提供給管道的名稱。
如果您未使用可存取伺服器電腦的帳戶登入用戶端電腦,您必須提供使用者名稱和密碼。 在用戶端電腦的 [命令提示字元] 視窗中,輸入下列命令。
net use \\Server\ipc$ /user:UserName
其中 Server 是伺服器電腦的名稱,而 UserName 是有權存取伺服器電腦的帳戶名稱。
出現提示時,請輸入UserName的密碼。
此命令成功之後,您可以使用 -premote 命令行選項或使用 WinDbg 圖形化介面來啟用智慧型用戶端。
注意 您可能需要在伺服器電腦上啟用檔案和印表機共用。 在 [控制台] 中,流覽至 [網络和因特網>網络] 和 [共用中心>] [進階共用設定]。 選取 [開啟檔案和印表機共用]。
port= 插座
如果使用 TCP 或 SSL 通訊協定, 套接字 是建立進程伺服器時所使用的相同套接字埠號碼。
clicon
指定行程伺服器會嘗試透過反向連線到智慧型手機連接到智慧型手機。 只有在伺服器使用 clicon 時,用戶端才能使用 clicon。 在大部分情況下,當使用反向連線時,智慧型手機會在進程伺服器之前啟動。
port= COMPort
如果使用 COM 通訊協定, COMPort 會指定要使用的 COM 埠。 前置詞 “COM” 是選擇性的 -- 例如,可以接受 “com2” 和 “2”。
baud= BaudRate
如果使用 COM 通訊協定, BaudRate 應該符合建立進程伺服器時所選擇的包速率。
channel= COMChannel
如果使用 COM 通訊協定, COMChannel 應該符合建立進程伺服器時所選擇的通道號碼。
proto= 協定
如果使用 SSL 或 SPIPE 通訊協定, 通訊協議 應該符合建立進程伺服器時所使用的安全通訊協定。
證書
如果使用 SSL 或 SPIPE 通訊協定,您應該使用建立行程伺服器時所使用的相同 certuser=Cert 或 machuser=Cert 參數。
password= 密碼
如果在建立進程伺服器時使用密碼, 則必須提供密碼 ,才能建立智慧型用戶端。 它必須符合原始密碼。 密碼會區分大小寫。 如果提供錯誤的密碼,錯誤訊息會指定「錯誤0x80004005」。
ipversion=6
(僅限適用於 Windows 6.6.07 和更早版本的偵錯工具)使用 TCP 連線到因特網時,強制調試程式使用 IP 第 6 版,而不是第 4 版。 在 Windows Vista 和更新版本中,調試程式會嘗試自動預設為 IP 版本 6,因此不需要此選項。
選項
您可以在這裡放置任何其他命令行參數。 如需完整清單,請參閱 命令行選項 。 如果您使用CDB,這必須指定您想要偵錯的進程。 如果您使用 WinDbg,您可以在命令行或透過圖形化介面指定進程。
由於進程伺服器只是做為智慧型手機用戶端的閘道,因此如果您在與目標應用程式相同的電腦上啟動使用者模式調試程式,其他 選項 會與您所使用的選項相同。
如果您使用 -premote 選項搭配 .attach(附加至進程)或 .create (Create Process),則參數會與上述參數相同。
疑難排解
如果您看到此訊息: 客戶端並未使用與伺服器 相同的遠端通訊協定版本,這表示您嘗試連線的 DbgSrv 版本使用與 WinDbg 版本不同的通訊協定版本。
通訊協議變更並不常見。 當發生這種情況時,請務必使用最新可用 DbgSrv 和 WinDbg (傳統) 或 WinDbg 的相符版本。 如需下載最新版本的資訊,請參閱 Windows 偵錯工具。