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