Condividi tramite


Valutare le espressioni

Le espressioni vengono create da stringhe passate dalle finestre Auto, Espressione di controllo, Controllo immediato o Controllo immediato . Quando un'espressione viene valutata, genera una stringa stampabile contenente il nome e il tipo di variabile o argomento e il relativo valore. Questa stringa viene visualizzata nella finestra dell'IDE corrispondente.

Implementazione

Le espressioni vengono valutate quando un programma si è arrestato in corrispondenza di un punto di interruzione. L'espressione stessa è rappresentata da un'interfaccia IDebugExpression2 , che rappresenta un'espressione analizzata pronta per l'associazione e la valutazione all'interno del contesto di valutazione dell'espressione specificato. Lo stack frame determina il contesto di valutazione dell'espressione, fornito dal motore di debug (DE) implementando l'interfaccia IDebugExpressionContext2 .

Data una stringa utente e un'interfaccia IDebugExpressionContext2, un motore di debug (DE) può ottenere un'interfaccia IDebugExpression2 passando la stringa utente al metodo IDebugExpressionContext2::P arseText. L'interfaccia IDebugExpression2 restituita contiene l'espressione analizzata pronta per la valutazione.

Con l'interfaccia IDebugExpression2 , DE può ottenere il valore dell'espressione tramite la valutazione sincrona o asincrona dell'espressione, usando IDebugExpression2::EvaluateSync o IDebugExpression2::EvaluateAsync. Questo valore, insieme al nome e al tipo della variabile o dell'argomento, viene inviato all'IDE per la visualizzazione. Il valore, il nome e il tipo sono rappresentati da un'interfaccia IDebugProperty2 .

Per abilitare la valutazione delle espressioni, una de deve implementare le interfacce IDebugExpression2 e IDebugExpressionContext2 . Sia la valutazione sincrona che quella asincrona richiedono l'implementazione del metodo IDebugProperty2::GetPropertyInfo .