Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los evaluadores de expresiones (EE) examinan la sintaxis de un lenguaje para analizar y evaluar variables y expresiones en tiempo de ejecución, lo que permite que sean vistos por el usuario cuando el IDE está en modo de pausa.
Uso de evaluadores de expresiones
Las expresiones se crean mediante el método ParseText , como se indica a continuación:
El motor de depuración (DE) implementa la interfaz IDebugExpressionContext2 .
El paquete de depuración obtiene un
IDebugExpressionContext2objeto de una interfaz IDebugStackFrame2 y luego llama al métodoIDebugStackFrame2::ParseTexten él para obtener un objeto IDebugExpression2.El paquete de depuración llama al método EvaluateSync o al método EvaluateAsync para obtener el valor de la expresión.
IDebugExpression2::EvaluateAsyncse llama desde la ventana Comando/Inmediato. Todos los demás componentes de la interfaz de usuario llaman aIDebugExpression2::EvaluateSync.El resultado de la evaluación de expresiones es un objeto IDebugProperty2 , que contiene el nombre, el tipo y el valor del resultado de la evaluación de expresiones.
Durante la evaluación de expresiones, el EE requiere información del componente de proveedor de símbolos. El proveedor de símbolos proporciona la información simbólica utilizada para identificar y comprender la expresión analizada.
Cuando se completa la evaluación de expresiones asincrónicas, el DE envía un evento asincrónico a través del administrador de depuración de sesión (SDM) para notificar al IDE que se ha completado la evaluación de expresiones. Además, el resultado de la evaluación se devuelve de la llamada al método
IDebugExpression2::EvaluateSync.
Notas de implementación
Los motores de depuración de Visual Studio esperan comunicarse con el evaluador de expresiones mediante interfaces de Common Language Runtime (CLR). Como resultado, un evaluador de expresiones que funciona con los motores de depuración de Visual Studio debe admitir CLR (se puede encontrar una lista completa de todas las interfaces de depuración clR en debugref.doc, que forma parte del Kit de desarrollo de software (SDK) de Windows).