共用方式為


監看式視窗運算式評估

當執行會暫停時,Visual Studio 會呼叫偵錯引擎 (DE),以判斷其監看式] 清單中的每個運算式的目前值。 DE 每個使用評估運算式的運算式評估工具 (EE),並顯示在其值,Visual Studio 監看式視窗。

下面是一個監看清單運算式的評估方式的概觀:

  1. Visual Studio 的呼叫 DE IDebugStackFrame2::GetExpressionContext以取得可以用來評估運算式,運算式內容。

  2. 每個運算式在 [監看式] 清單中,呼叫 Visual Studio IDebugExpressionContext2::ParseText ,將運算式的文字轉換成剖析的運算式。

  3. IDebugExpressionContext2::ParseText呼叫IDebugExpressionEvaluator::Parse要剖析的文字和產生的實際工時IDebugParsedExpression物件。

  4. IDebugExpressionContext2::ParseText會建立IDebugExpression2物件,並將IDebugParsedExpression進去的物件。 這個我DebugExpression2 Visual Studio,然後傳回物件。

  5. Visual Studio 的呼叫IDebugExpression2::EvaluateSync來評估剖析的運算式。

  6. IDebugExpression2::EvaluateSync傳遞至呼叫IDebugParsedExpression::EvaluateSync來執行實際的評估,並產生IDebugProperty2 Visual Studio 傳回的物件。

  7. Visual Studio 的呼叫IDebugProperty2::GetPropertyInfo以取得運算式,接著會顯示在 [監看式] 清單中的值。

剖析,接著評估

因為剖析複雜的運算式可能會花更長的時間比評估,運算式的評估程序分成兩個步驟: 1) 剖析運算式和 2) 評估剖析的運算式。 如此一來,評估可能會執行多次,但需要進行一次剖析的運算式。 中繼剖析的運算式會傳回在 EE IDebugParsedExpression物件,依序封裝且傳回作為 DE IDebugExpression2物件。 IDebugExpression物件會延後所有的評估, IDebugParsedExpression物件。

注意事項注意事項

它不需要為 EE 遵守此二步驟流程,即使 Visual Studio 的假設 ; 得知 ee 給予可以剖析並評估在相同的步驟時IDebugParsedExpression::EvaluateSync呼叫 (亦即 MyCEE 範例如何操作,例如)。如果您的語言可以構成複雜的運算式,您可能要剖析步驟分開的計算步驟。這樣會提高 Visual Studio 的偵錯程式的效能,當許多監看運算式會被顯示。

本章節內容

相關章節

  • 評估內容
    提供偵錯引擎 (DE) 會呼叫運算式評估工具 (EE) 時所傳入的引數。

請參閱

其他資源

撰寫一般的語言執行階段運算式評估工具