幾乎所有與 偵錯工具引擎 的互動都是透過 用戶端物件,通常簡稱為 用戶端。 每個用戶端都提供最上層引擎介面的實作。 每個介面都提供一組不同的方法,可用來與引擎互動,並透過引擎與目標互動。 引擎的實例可以有許多用戶端,每個用戶端都有自己的狀態。
主要客戶
主要用戶端是已加入目前偵錯會話的用戶端。 一開始,建立新的用戶端物件時,它不是主要用戶端。 當用戶端用來取得目標 (例如,呼叫 CreateProcess2) 或使用 ConnectSession 連線到偵錯會話時,用戶端會成為主要用戶端。 偵錯工具命令 .clients 只會列出主要用戶端。
回呼物件
回呼物件可以向每個用戶端註冊。 回呼物件有三種類型:
輸入回呼物件 (或 輸入回呼):引擎呼叫輸入回呼來請求輸入。 例如,具有主控台視窗的偵錯工具可以註冊輸入回呼,以提供來自使用者的輸入給引擎,或者偵錯工具可能會註冊輸入回呼,為引擎提供來自檔案的輸入。
輸出回呼物件 (或 輸出回呼):引擎呼叫輸出回呼來顯示輸出。 例如,具有主控台視窗的偵錯工具可以註冊輸出回呼,以將偵錯工具的輸出呈現給使用者,或者偵錯工具可能會註冊輸出回呼,將輸出傳送至記錄檔。
事件回呼物件 (或 事件回呼):每當目標發生事件(或引擎狀態發生變化)時,引擎就會呼叫事件回呼。 例如,偵錯工具延伸模組程式庫可以註冊事件回呼,以監視特定事件,或在發生特定事件時執行自動化動作。
遠端偵錯
用戶端物件可協助與主機引擎的遠端執行個體進行通訊。 DebugConnect 函式會建立連線到遠端引擎實例的用戶端物件;在此用戶端上呼叫的方法會由遠端引擎執行,而當遠端引擎進行回呼呼叫時,將會呼叫本機向用戶端註冊的回呼物件。
其他資訊
如需有關建立和使用用戶端物件的詳細資訊,請參閱 使用回呼物件。 如需有關註冊回呼物件的詳細資訊,請參閱使用回呼物件。