控制遠端偵錯會話
啟動遠端會話之後,就可以將命令輸入偵錯伺服器或偵錯用戶端。 如果有多個用戶端,其中任何一個用戶端都可以輸入命令。 按下 ENTER 之後,命令就會傳輸至偵錯伺服器並執行。
每當一位使用者輸入命令時,所有用戶都會看到命令本身及其輸出。 如果此命令是從偵錯客戶端發出的,所有其他用戶都會在命令前看到一個識別,顯示是哪個使用者發出命令的。 從除錯伺服器發出的指令沒有這個字首。
一位使用者執行命令之後,透過 KD 或 CDB 連線的其他使用者將不會看到新的命令提示字元。 另一方面,即使調試程式引擎正在執行,WinDbg 的使用者仍會在調試程式命令視窗的底部面板中看到提示。 這兩者都不應該引起警報:任何使用者可以隨時輸入命令,而且引擎會依照接收的順序執行這些命令。
透過 WinDbg 介面執行的動作也會由偵錯伺服器執行。
用戶之間的通訊
每當新的偵錯用戶端連線到會話時,所有其他用戶都會看到此用戶端已連線的訊息。 當用戶端中斷連線時,不會顯示任何訊息。
.clients (列出偵錯用戶端) 命令會列出目前連線到偵錯會話的所有用戶端。
.echo (Echo Comment) 命令對於將訊息從一個使用者傳送到另一個使用者很有用。
WinDbg 工作區
當 WinDbg 當做偵錯用戶端使用時,其工作區只會儲存透過圖形化介面設定的值。 不會儲存透過 [調試程式命令] 視窗所做的變更。 (這可確保只會反映本機用戶端所做的變更,因為 [調試程式命令] 視窗會接受來自所有用戶端以及偵錯伺服器的輸入。
檔案路徑
符號路徑、可執行映射路徑和延伸模組 DLL 路徑全都會解譯為與偵錯伺服器上 Windows 安裝資料夾的偵錯工具相對的檔案路徑。
當 WinDbg 作為除錯客戶端使用時,它也有自己專屬的 本機來源路徑。 所有來源相關命令都會存取本機計算機上的來源檔案。 因此,必須在將使用來源命令的任何用戶端或伺服器上設定適當的路徑。
這個多路徑系統可讓偵錯用戶端使用來源相關命令,而不需要實際與其他用戶端或伺服器共用來源檔案。 如果有其中一個使用者可以存取的私人或機密來源檔案,這會很有用。
取消偵錯伺服器
.endrv (End Debugging Server) 命令可用來終止偵錯伺服器。 如果調試程式已建立多個偵錯伺服器,您可以取消其中一些偵錯伺服器,同時讓其他伺服器執行。
終止伺服器會防止任何用戶端連接至伺服器。 它不會切斷目前透過伺服器連結的任何用戶端。
結束調試程序和終止會話
若要結束一個偵錯用戶端而不終止伺服器,您必須從該特定客戶端發出命令。 如果此用戶端是 KD 或 CDB,請使用 CTRL+B 鍵結束。 如果您使用腳本執行 KD 或 CDB,請使用 .remote_exit(結束偵錯用戶端)。 如果此用戶端是 WinDbg,請從 [檔案] 選單選擇 [結束] 來結束。
若要終止整個會話並結束偵錯伺服器,請使用 q (Quit) 命令。 此命令可以從任何伺服器或用戶端輸入,而且會終止所有用戶的整個會話。
重要
使用遠端偵錯時,還有其他重要的安全性考慮,如需詳細資訊,包括啟用安全模式的資訊,請參閱遠端偵錯期間的安全性 和 windows 偵錯工具 安全性考慮。