Valutazione di espressioni in modalità di interruzione
L'esempio seguente viene descritto il processo che si verifica quando il debugger è in modalità di interruzione e deve effettuare la valutazione di espressioni.
Processo di valutazione di espressioni
Questi sono i passaggi fondamentali relativi alla valutazione di un'espressione:
L'amministratore (SDM) di debug della sessione chiama IDebugStackFrame2:: GetExpressionContext per ottenere un'interfaccia di contesto dell'espressione IDebugExpressionContext2.
Lo SDM chiama quindi IDebugExpressionContext2:: ParseText con la stringa da analizzare.
Se ParseText non restituisce S_OK, il motivo per cui l'errore viene restituito.
- in caso contrario
Se ParseText restituisce S_OK, lo SDM quindi possibile chiamare IDebugExpression2:: EvaluateSync o IDebugExpression2:: EvaluateAsync per ottenere un valore finale dall'espressione analizzata.
Nel caso di utilizzo di IDebugExpression2::EvaluateSync, l'interfaccia di callback specificato viene utilizzata per comunicare il processo corrente di valutazione. Il valore finale viene restituito in un'interfaccia di IDebugProperty2 .
Nel caso di utilizzo di IDebugExpression2::EvaluateAsync, l'interfaccia di callback specificato viene utilizzata per comunicare il processo corrente di valutazione. una volta che la valutazione è completa, EvaluateAsync invia un'interfaccia di IDebugExpressionEvaluationCompleteEvent2 con il callback. Con questa interfaccia eventi, il valore finale può essere ottenuto tramite IDebugExpressionEvaluationCompleteEvent2:: GetResult.