控制遠端偵錯會話

一旦啟動遠端會話,就可以將命令輸入偵錯伺服器或偵錯用戶端。 如果有多個用戶端,其中任何用戶端都可以輸入命令。 按下 ENTER 之後,命令會傳送至偵錯伺服器並執行。

每當一位使用者輸入命令時,所有使用者都會看到命令本身及其輸出。 如果此命令是從偵錯用戶端發出,則所有其他使用者都會在命令前面看到識別碼,該使用者發出命令。 從偵錯伺服器發出的命令沒有這個前置詞。

一位使用者執行命令之後,透過 KD 或 CDB 連線的其他使用者將不會看到新的命令提示字元。 另一方面,即使偵錯工具引擎正在執行,WinDbg 的使用者仍會在偵錯工具命令視窗的底部面板中看到提示。 這兩者都不應該是警示的原因;任何使用者可以隨時輸入命令,引擎會依照收到的循序執行這些命令。

透過 WinDbg 介面進行的動作也會由偵錯伺服器執行。

使用者之間的通訊

每當新的偵錯用戶端連線到會話時,所有其他使用者都會看到此用戶端已連線的訊息。 用戶端中斷連線時不會顯示任何訊息。

.clients (列出偵錯用戶端) 命令會列出目前連線到偵錯會話的所有用戶端。

.echo (Echo Comment) 命令對於將訊息從一位使用者傳送到另一個使用者很有用。

WinDbg 工作區

當 WinDbg 作為偵錯用戶端使用時,其工作區只會儲存透過圖形化介面設定的值。 不會儲存透過 [偵錯工具命令] 視窗所做的變更。 (這保證只會反映本機用戶端所做的變更,因為 [偵錯工具命令] 視窗會接受來自所有用戶端的輸入,以及偵錯 server.)

檔案路徑

符號路徑、可執行映射路徑和延伸模組 DLL 路徑都會解譯為相對於偵錯伺服器上 Windows 安裝資料夾的偵錯工具的檔案路徑。

當 WinDbg 當做偵錯用戶端使用時,它也有自己的 本機來源路徑 。 所有來源相關的命令都會存取本機電腦上的來源檔案。 因此,必須在將使用來源命令的任何用戶端或伺服器上設定適當的路徑。

這個多重路徑系統可讓偵錯用戶端使用來源相關命令,而不需要實際與其他用戶端或伺服器共用來源檔案。 如果有其中一個使用者可存取的私人或機密來源檔案,這會很有用。

取消偵錯伺服器

.endrv (結束偵錯伺服器) 命令可用來終止偵錯伺服器。 如果偵錯工具已建立多個偵錯伺服器,您可以取消其中一些伺服器,同時讓其他伺服器保持執行狀態。

終止伺服器可防止任何未來的用戶端附加至伺服器。 它不會截斷目前透過伺服器連結的任何用戶端。

結束偵錯工具並終止會話

若要從一個偵錯用戶端結束而不終止伺服器,您必須從該特定用戶端發出命令。 如果此用戶端是 KD 或 CDB,請使用 CTRL+B 鍵結束。 如果您使用腳本來執行 KD 或 CDB,請使用 .remote_exit (結束偵錯用戶端) 。 如果此用戶端是 WinDbg,請從 [檔案] 功能表選擇 [結束] 以結束。

若要終止整個會話並結束偵錯伺服器,請使用 q (Quit) 命令。 此命令可以從任何伺服器或用戶端輸入,並且會終止所有使用者的整個會話。