運算式評估器 (EE) 會檢查語言的語法,以在執行階段剖析和評估變數和運算式,讓使用者在 IDE 處於中斷模式時檢視它們。
使用運算式評估器
運算式是使用 ParseText 方法建立,如下所示:
偵錯引擎 (DE) 會實作 IDebugExpressionContext2 介面。
偵錯套件
IDebugExpressionContext2會從 IDebugStackFrame2 介面取得物件,然後呼叫IDebugStackFrame2::ParseText其上的方法來取得 IDebugExpression2 物件。偵錯套件會呼叫 EvaluateSync 方法或 EvaluateAsync 方法來取得運算式的值。
IDebugExpression2::EvaluateAsync從 Command/Immediate 視窗呼叫。 所有其他 UI 元件都會呼叫IDebugExpression2::EvaluateSync。運算式評估的結果是 IDebugProperty2 物件,其中包含運算式評估結果的名稱、類型和值。
在運算式評估期間,EE 需要來自符號提供者元件的資訊。 符號提供者提供用來識別和理解剖解析運算式的符號資訊。
當非同步運算式評估完成時,DE 會透過工作階段偵錯管理員 (SDM) 傳送非同步事件,以通知 IDE 運算式評估已完成。 而且,評估的結果接著會從對
IDebugExpression2::EvaluateSync方法的呼叫中傳回。
實作注意事項
Visual Studio 偵錯引擎預期會透過公用語言執行階段(CLR)介面與運算式評估器進行互動。 因此,與 Visual Studio 偵錯引擎搭配使用的運算式評估器必須支援 CLR (您可以在 debugref.doc 中找到所有 CLR 偵錯介面的完整清單,這是 Windows 軟體開發套件 (SDK) 的一部分)。