Condividi tramite


Valutazione delle espressioni in modalità di interruzione

Nella sezione seguente viene descritto il processo che si verifica quando il debugger è in modalità di interruzione e deve eseguire la valutazione delle espressioni.

Processo di valutazione delle espressioni

Di seguito sono riportati i passaggi di base necessari per valutare un'espressione:

  1. Il gestore di debug della sessione chiama IDebugStackFrame2::GetExpressionContext per ottenere un'interfaccia di contesto dell'espressione, IDebugExpressionContext2.

  2. SDM chiama quindi IDebugExpressionContext2::P arseText con la stringa da analizzare.

  3. Se ParseText non restituisce S_OK, viene restituito il motivo dell'errore.

    -Altrimenti-

    Se ParseText restituisce S_OK, SDM può quindi chiamare IDebugExpression2::EvaluateSync o IDebugExpression2::EvaluateAsync per ottenere un valore finale dall'espressione analizzata.

    • Quando si usa IDebugExpression2::EvaluateSync, l'interfaccia di callback specificata comunica il processo di valutazione in corso. Il valore finale viene restituito in un'interfaccia IDebugProperty2 .

    • Quando si usa IDebugExpression2::EvaluateAsync, l'interfaccia di callback specificata comunica il processo di valutazione in corso. Al termine della valutazione, EvaluateAsync invia un'interfaccia IDebugExpressionEvaluationCompleteEvent2 tramite il callback. Con questa interfaccia evento, il valore finale restituisce GetResult.