Compartir a través de


Visualización de variables locales

Importante

En Visual Studio 2015, esta forma de implementar evaluadores de expresiones está en desuso. Para obtener información sobre cómo implementar evaluadores de expresiones CLR, vea Evaluadores de expresiones CLR y Ejemplo de evaluador de expresiones administradas.

La ejecución siempre tiene lugar dentro del contexto de un método, también conocido como método contenedor o método actual. Cuando la ejecución se detiene, Visual Studio llama al motor de depuración (DE) para obtener una lista de variables y argumentos locales, denominados en conjunto las variables locales del método. Visual Studio muestra estas variables locales y sus valores en la ventana Variables locales.

Para mostrar las variables locales, el DE llama al método GetMethodProperty que pertenece al EE y le proporciona un contexto de evaluación, es decir, un proveedor de símbolos (SP), la dirección de ejecución actual y un objeto de enlazador. Para más información, consulte Contexto de evaluación. Si la llamada se realiza correctamente, el método IDebugExpressionEvaluator::GetMethodProperty devuelve un objeto IDebugProperty2, que representa el método que contiene la dirección de ejecución actual.

El DE llama a EnumChildren para obtener un objeto IEnumDebugPropertyInfo2, que se filtra para devolver solo variables locales y enumeradas para generar una lista de estructuras de DEBUG_PROPERTY_INFO. Cada estructura contiene el nombre, el tipo y el valor de una variable local. El tipo y el valor se almacenan como cadenas con formato, adecuadas para su visualización. Normalmente, el nombre, el tipo y el valor se muestran juntos en una línea de la ventana Variables locales.

Nota:

Las ventanas Inspección rápida e Inspección también muestran variables con el mismo formato de nombre, valor y tipo. Sin embargo, esos valores se obtienen llamando a GetPropertyInfo en lugar de a IDebugProperty2::EnumChildren.

En esta sección

Implementación de ejemplo de variables locales usa ejemplos para recorrer el proceso de implementación de variables locales.