Condividi tramite


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:

  1. L'amministratore (SDM) di debug della sessione chiama IDebugStackFrame2:: GetExpressionContext per ottenere un'interfaccia di contesto dell'espressione IDebugExpressionContext2.

  2. Lo SDM chiama quindi IDebugExpressionContext2:: ParseText con la stringa da analizzare.

  3. 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.

Vedere anche

Concetti

Eventi chiamante del debugger