Dela via


Uttrycksutvärderare

Uttrycksevaluatorer (EE) analyserar syntaxen i ett språk för att tolka och utvärdera variabler och uttryck under körning, så att användaren kan se dem när IDE:n är i avbrottsläge.

Använda uttrycksutvärderingar

Uttryck skapas med metoden ParseText enligt följande:

  1. Felsökningsmotorn (DE) implementerar gränssnittet IDebugExpressionContext2 .

  2. Felsökningspaketet hämtar ett IDebugExpressionContext2 objekt från ett IDebugStackFrame2-gränssnitt och anropar IDebugStackFrame2::ParseText sedan metoden på det för att hämta ett IDebugExpression2-objekt .

  3. Felsökningspaketet anropar metoden EvaluateSync eller metoden EvaluateAsync för att hämta uttryckets värde. IDebugExpression2::EvaluateAsync anropas från fönstret Kommando/Omedelbart. Alla andra UI-komponenter anropar IDebugExpression2::EvaluateSync.

  4. Resultatet av uttrycksutvärderingen är ett IDebugProperty2-objekt som innehåller namnet, typen och värdet för resultatet av uttrycksutvärderingen.

    Under uttrycksutvärderingen kräver EE information från symbolproviderkomponenten. Symbolprovidern tillhandahåller den symboliska information som används för att identifiera och förstå det tolkade uttrycket.

    När utvärdering av asynkrona uttryck slutförs skickas en asynkron händelse av DE via sessionsfelsökhanteraren (SDM) för att meddela IDE att uttrycksutvärderingen är klar. Och resultatet av utvärderingen returneras från anropet till metoden IDebugExpression2::EvaluateSync.

Implementeringsanteckningar

Visual Studio-felsökningsmotorerna förväntar sig att kommunicera med uttrycksutvärderingen med hjälp av CLR-gränssnitt (Common Language Runtime). Därför måste en uttrycksutvärdering som fungerar med Visual Studio-felsökningsmotorerna stödja CLR (en fullständig lista över alla CLR-felsökningsgränssnitt finns i debugref.doc, som är en del av Windows Software Development Kit (SDK)).

Se även