會話偵錯管理員 (SDM) 會管理任意數目的偵錯引擎 (DE),這些引擎會針對任意數目的機器的多個進程中偵錯任意數目的程式。 除了是偵錯引擎多工器之外,SDM 還提供 IDE 偵錯會話的統一檢視。
會話除錯管理器操作
會話偵錯管理員 (SDM) 會管理 DE。 一台機器上可以同時執行多個偵錯引擎。 若要多工處理 DE,SDM 會包裝來自 DE 的多個介面,並將它們公開給 IDE 做為單一介面。
為了提高效能,某些介面不會多路復用。 相反地,它們會直接從 DE 使用,而且對這些介面的呼叫不會經過 SDM。 例如,與記憶體、程式碼和文件上下文搭配使用的介面不會進行多工處理,因為它們會參照由特定 DE 偵錯的特定程式中的特定指令、記憶體或文件。 沒有其他 DE 需要參與該級別的通信。
並非所有情況都是如此。 表達式評估上下文介面的調用是透過 SDM 進行的。 在運算式評估期間,SDM 會包裝它提供給 IDE 的 IDebugExpression2 介面,因為評估該運算式時,它可能會牽涉到多個 DE,這些 DE 正在偵錯可能在相同執行緒上執行的相同進程中的程式。
SDM 通常充當委派機制,但它可能充當廣播機制。 例如,在運算式評估期間,SDM 會做為廣播機制,以通知所有 DE 可以在指定的執行緒上執行程式代碼。 同樣地,當 SDM 收到停止事件時,它會廣播給程式,說明它們應該停止執行。 呼叫步驟時,SDM 會廣播給程式,讓程式可以繼續執行。 中斷點也會廣播至每個 DE。
SDM 不會追蹤目前的程式、執行緒或堆疊框架。 進程、程式和執行緒資訊會與特定偵錯事件一起傳送至 SDM。