使用 KD 進行即時內核模式偵錯
在命令提示字元視窗中,您可以在啟動 KD 時起始即時內核模式偵錯工作階段。 輸入下列其中一個命令。
kd [-y SymbolPath] -k net:port=PortNumber,key=Key[,target=TargetIPAddress|TargetHostName]
kd [-y SymbolPath] -k usb:targetname=USBString
kd [-y SymbolPath] -k com:port=ComPort,baud=BaudRate
kd [-y SymbolPath] -k com:ipport=SerialTcpIpPort,port=SerialIPAddress
kd [-y SymbolPath] -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]
kd [-y SymbolPath] -k com:調製解調器
kd [-y SymbolPath] -kl
kd [-y SymbolPath] -k
如需詳細資訊,請參閱 KD 命令行選項。
環境變數
若要透過序列 (COM 埠) 連線進行偵錯,您可以使用環境變數來指定連線設定。
使用下列變數來指定序列連接。
set _NT_DEBUG_PORT = ComPort
set _NT_DEBUG_BAUD_RATE = BaudRate
如需詳細資訊,請參閱 內核模式環境變數。
參數
SymbolPath
符號檔所在的目錄清單。 清單中的目錄會以分號分隔。 如需詳細資訊,請參閱 符號路徑。
PortNumber
要用於網路偵錯的埠號碼。 您可以選擇 49152 到 65535 的任何數位。 如需詳細資訊,請參閱 手動設定網路連線。
鑰匙
要用於網路偵錯的加密金鑰。 我們建議您使用自動產生的金鑰,當您設定目標計算機時,bcdedit 會提供此金鑰。 如需詳細資訊,請參閱 手動設定網路連線。
TargetIPAddress
目標計算機的 IPv4 位址。
指定 target= IP 位址時,這會導致調試程式藉由將特殊封包傳送至目標,以起始與指定目標計算機的連線,而導致它嘗試與該調試程序連線。 調試程式會每隔半秒重複將封包傳送至目標,並嘗試連線。 如果連線成功,目標會卸除任何現有的連線,並只與調試程式的這個實例通訊。 這可讓您從現有的偵錯連線中控制偵錯會話。
當目標設定為主機 IP 位址,且調試程式正在具有已設定主機 IP 位址的計算機上執行時,就不需要指定 target= IP 位址參數。 當目標設定為主機 IP 位址時,它會每隔三秒將 OFFER 封包傳送給主機。 未指定 target= IP 位址時,OFFER 封包可讓調試程式連線到主機。
如需在目標上設定主機 IP 位址的詳細資訊,請參閱 設定 KDNET 網路核心偵錯自動 和 手動設定 KDNET 網路核心偵錯。
TargetMachineName
目標計算機的機器名稱。 若要使用計算機名稱,網路上的 DNS 系統必須具有與目標電腦的 IP 位址相關聯的電腦名稱。
USBString
USB 連接字串。 這必須符合以 /targetname 開機選項指定的字串。 如需詳細資訊,請參閱 設定 USB 3.0 xHCI-DBC 內核模式偵錯 (KDUSB) 。
ComPort
COM 埠的名稱。 這可以是格式 「com2」 或格式為 「\.\com2」,但不應該只是數位。 如需詳細資訊,請參閱 手動設定序列連線。
BaudRate
傳輸速率。 這可以是 9600、19200、38400、57600 或 115200。
VMHost
偵錯虛擬機時, VMHost 會指定虛擬機執行所在的實體計算機名稱。 如果虛擬機在與核心調試程式本身相同的計算機上執行,請針對 VMHost 使用單一期間 (.)。 如需詳細資訊,請參閱 設定虛擬機的連線。
PipeName
虛擬機為偵錯連線建立的管道名稱。
resets=0
指定當主機和目標正在同步處理時,可以傳送無限數量的重設封包到目標。 只有在偵錯特定類型的虛擬機時,才需要此參數。
重新
如果發生讀取/寫入失敗,調試程式會自動中斷連線,並重新連接管道。 此外,如果在啟動調試程式時找不到命名管道,重新連接參數將會導致它等候此名稱的管道出現。 只有在偵錯特定類型的虛擬機時,才需要此參數。
-kl
讓調試程式執行本機內核模式偵錯。 如需詳細資訊,請參閱 本機內核模式偵錯。
SerialTcpIpPort
模擬序列 COM 埠的目標 TCP IP 埠。
SerialIPAddress
模擬序列 COM 埠的目標 TCP IP 位址。
例子
下列批處理檔可用來設定和啟動透過 COM 埠連線的偵錯會話。
set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=115200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
kd
下列命令行可用來啟動 WinDbg,而不需要任何環境變數。
kd -y d:\mysymbols -k com:port=com2,baud=57600
kd -y d:\mysymbols -k com:port=\.\com2,baud=115200
kd -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey