共用方式為


監看式] 視窗中的運算式評估

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

重要

在 Visual Studio 2015,這種實作運算式評估工具已被取代。 如需實作 CLR 運算式評估工具的資訊,請參閱CLR 運算式評估工具Managed 運算式評估工具範例

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

以下是如何評估監看清單運算式的概觀︰

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

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

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

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

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

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

  7. Visual Studio 呼叫GetPropertyInfo取得即會顯示在 [監看清單的運算式值。

剖析,然後評估

由於剖析複雜的運算式需要遠比進行評估,運算式的評估程序會分成兩個步驟︰ 1) 剖析運算式和 2) 評估剖析的運算式。 如此一來,評估可能會發生許多次,但必須一次剖析運算式。 中繼剖析的運算式會傳回從中 EE IDebugParsedExpression物件,接著封裝並傳回做為 DE IDebugExpression2物件。 IDebugExpression物件會延後所有評估IDebugParsedExpression物件。

注意

不需要遵守此兩步驟程序,即使 Visual Studio 會假設; EEEE 可以剖析和評估相同的步驟時EvaluateSync稱為 (這是 MyCEE 範例的運作方式,例如)。 如果您的語言可以構成複雜的運算式,您可能想要剖析步驟分開評估步驟。 許多監看運算式時,這樣會增加效能,在 Visual Studio 偵錯工具會顯示。

本章節內容

運算式評估的實作範例
您可以使用 MyCEE 範例來逐步完成運算式評估的程序。

監看式運算式評估
說明成功的運算式剖析之後發生的情況。

相關章節

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

另請參閱

撰寫 CLR 運算式評估工具