Valutare l'espressione la finestra Espressioni di controllo
Quando le pause di esecuzione, Visual Studio chiama il motore di debug (DE) per determinare il valore corrente di ogni espressione nel proprio elenco dell'espressione di controllo. Il DE valuta ogni espressione utilizzando un analizzatore di espressioni (EE) e Visual Studio il valore viene visualizzato nella finestra di espressione di controllo .
Di seguito vengono forniti cenni preliminari su come un'espressione di espressioni di controllo viene valutata:
Visual Studio vengono chiamati i IDebugStackFrame2:: GetExpressionContext DE per ottenere un contesto dell'espressione che può essere utilizzato per valutare le espressioni.
Per ogni espressione nell'elenco espressioni di controllo, chiamate IDebugExpressionContext2:: ParseText di Visual Studio per convertire il testo dell'espressione in un'espressione analizzata.
chiamate IDebugExpressionEvaluator:: Di traccia diIDebugExpressionContext2::ParseText per eseguire il lavoro effettivo di analizzare il testo e per produrre IDebugParsedExpression un oggetto.
IDebugExpressionContext2::ParseText crea IDebugExpression2 un oggetto e inserisce l'oggetto di IDebugParsedExpression in. Questo oggetto diDebugExpression2 viene quindi restituita in Visual Studio.
chiamate di Visual Studio IDebugExpression2:: EvaluateSync per valutare l'espressione analizzata.
IDebugExpression2::EvaluateSync passa la chiamata a IDebugParsedExpression:: EvaluateSync per rendere effettiva valutazione e per produrre IDebugProperty2 un oggetto restituito a Visual Studio.
Chiamate IDebugProperty2:: GetPropertyInfo di Visual Studio per ottenere il valore dell'espressione che viene poi visualizzata nell'elenco dell'espressione di controllo.
Analizzare quindi valutare
Da analizzare un'espressione complesso può richiedere molto più tempo che valutandola, il processo di valutazione di un'espressione viene suddiviso in due passaggi: 1) consente di analizzare l'espressione e 2) valuta l'espressione analizzata. Questa modalità, valutazione può verificarsi più volte ma l'espressione deve essere analizzata una sola volta. L'espressione analizzata intermedi viene restituita dall'EE IDebugParsedExpression in un oggetto che a sua volta è incapsulato e restituito da DE come IDebugExpression2 oggetto. L'oggetto di IDebugExpression un qualsiasi valutazione all'oggetto di IDebugParsedExpression .
Nota
Non è necessario che l'EE sia conforme a questo processo in due fasi anche se Visual Studio si presuppone questo; l'EE possibile analizzare e valutare lo stesso passaggio quando IDebugParsedExpression:: EvaluateSync viene chiamato (questo è il funzionamento dell'esempio di MyCEE, ad esempio.Se il linguaggio possibile creare espressioni complesse, è possibile separare il passaggio di analisi del passaggio di valutazione.Questa caratteristica può aumentare le prestazioni nel debugger di Visual Studio quando molte espressioni espressioni di controllo vengono indicande.
Argomenti della sezione
Implementazione dell'esempio di valutazione di espressioni
Utilizza l'esempio di MyCEE per l'esecuzione del processo di valutazione di un'espressione.Valutazione di un'espressione espressioni di controllo
Gli spieghi cosa si verifica dopo che una corrispondenza espressione di analisi.
Sezioni correlate
- contesto di valutazione
Vengono forniti argomenti passati quando il motore di debug (DE) chiama l'analizzatore di espressioni (EE).
Vedere anche
Altre risorse
Scrittura dell'analizzatore di espressioni di Common Language Runtime