使用 WinDbg 進行遠端偵錯
遠端偵錯涉及兩個在兩個不同的位置執行的調試程式。 執行偵錯的調試程式稱為偵 錯伺服器。 第二個調試程式稱為偵 錯用戶端,會從遠端位置控制偵錯會話。 若要建立遠端會話,您必須先設定偵錯伺服器,然後啟動偵錯用戶端。
正在偵錯的程式代碼可以在執行偵錯伺服器的同一部計算機上執行,也可以在另一部計算機上執行。 如果偵錯伺服器正在執行使用者模式偵錯,則偵錯的進程可以在與偵錯伺服器相同的計算機上執行。 如果偵錯伺服器正在執行內核模式偵錯,則偵錯的程式代碼通常會在不同的目標計算機上執行。
下圖說明偵錯伺服器在主計算機上執行的遠端會話,正在對在另一部目標計算機上執行的程式代碼執行內核模式偵錯。
您可以使用數種傳輸通訊協定進行遠端偵錯連線:TCP、NPIPE、SPIPE、SSL 和 COM 埠。 假設您已選擇使用 TCP 做為通訊協定,而且您已選擇使用 WinDbg 做為偵錯客戶端和偵錯伺服器。 您可以使用下列程式來建立遠端內核模式偵錯工作階段:
在主計算機上,開啟 WinDbg,並使用目標電腦建立內核模式偵錯會話。 (請參閱 使用 WinDbg 進行即時內核模式偵錯(傳統版)。)
從 [偵錯] 功能表選擇 [中斷] 或按 CTRL-Break 來中斷。
在 [ 調試程式命令視窗] 中,輸入下列命令。
.server tcp:port=5005
注意 埠號碼 5005 是任意的。 埠號碼是您選擇的。
WinDbg 會回應如下的輸出。
Server started. Client can connect with any of these command lines 0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
在遠端電腦上,開啟 WinDbg,然後從 [檔案] 選單選擇 [連線到遠端會話]。
在 [連接字串] 底下,輸入下列字串。
tcp:Port=5005,Server=YourHostComputer
其中 YourHostComputer 是執行偵錯伺服器的主電腦名稱。
選取 [確定]。
使用命令行
除了上一節所提供的程式,您也可以在命令行設定遠端偵錯會話。 假設您已設定在主計算機與目標計算機之間,透過通道 32 上的 1394 纜線建立內核模式偵錯會話。 您可以使用下列程式來建立遠端偵錯工作階段:
在主計算機上,在 [命令提示字元] 視窗中輸入下列命令。
windbg -server tcp:port=5005 -k 1394:channel=32
在遠端電腦上,在 [命令提示字元] 視窗中輸入下列命令。
windbg -remote tcp:Port=5005,Server=YourHostComputer
其中 YourHostComputer 是執行偵錯伺服器的主電腦名稱。
重要
1394 傳輸可用於 Windows 10 版本 1607 和更早版本。 無法在更新版本的 Windows 中使用。 您應該將項目轉換為其他傳輸,例如使用乙太網路的 KDNET。 如需該傳輸的詳細資訊,請參閱 自動設定 KDNET 網路核心偵錯。
其他資訊
除了本主題所示的偵錯之外,有許多方法可以建立遠端偵錯。 如需在 WinDbg 調試程式命令視窗中設定偵錯伺服器的完整資訊,請參閱 .server (建立偵錯伺服器)。 如需在命令行啟動 WinDbg (並建立遠端偵錯)的完整資訊,請參閱 WinDbg 命令行選項。