Delen via


Expressie-evaluator

Expressie-evaluators (EE) onderzoeken de syntaxis van een taal om variabelen en expressies tijdens runtime te parseren en evalueren, zodat ze door de gebruiker kunnen worden weergegeven wanneer de IDE in de onderbrekingsmodus is.

Expressie-evaluators gebruiken

Expressies worden als volgt gemaakt met behulp van de methode ParseText :

  1. De foutopsporingsengine (DE) implementeert de IDebugExpressionContext2-interface .

  2. Het foutopsporingspakket haalt een IDebugExpressionContext2 object op van een IDebugStackFrame2-interface en roept vervolgens de IDebugStackFrame2::ParseText methode hierop aan om een IDebugExpression2-object op te halen.

  3. Het foutopsporingspakket roept de methode EvaluateSync of de EvaluateAsync-methode aan om de waarde van de expressie op te halen. IDebugExpression2::EvaluateAsync wordt aangeroepen vanuit het venster Command/Direct. Alle andere UI-componenten doen een beroep op IDebugExpression2::EvaluateSync.

  4. Het resultaat van de expressie-evaluatie is een IDebugProperty2-object dat de naam, het type en de waarde van het resultaat van de expressie-evaluatie bevat.

    Tijdens de evaluatie van de expressie vereist de EE informatie van het onderdeel van de symboolprovider. De symboolprovider levert de symbolische informatie die wordt gebruikt voor het identificeren en begrijpen van de geparseerde expressie.

    Wanneer de evaluatie van asynchrone expressies is voltooid, wordt een asynchrone gebeurtenis verzonden door de DE via de sessiedebugbeheer (SDM) om de IDE op de hoogte te stellen dat de expressie-evaluatie is voltooid. En het resultaat van de evaluatie wordt vervolgens geretourneerd van de aanroep naar de IDebugExpression2::EvaluateSync methode.

Opmerkingen bij de implementatie

De Visual Studio-foutopsporingsengines verwachten te praten met de expressie-evaluator met behulp van CLR-interfaces (Common Language Runtime). Als gevolg hiervan moet een expressie-evaluator die werkt met de Visual Studio-foutopsporingsengines de CLR ondersteunen (een volledige lijst met alle CLR-foutopsporingsinterfaces vindt u in debugref.doc, die deel uitmaakt van de Windows Software Development Kit (SDK)).

Zie ook