Compartir a través de


Inspección de variables en las ventanas Automático y Variables locales

Las ventanas Automático y Variables locales muestran valores de variables durante la depuración. Las ventanas solo están disponibles durante una sesión de depuración. La ventana Automático muestra las variables usadas alrededor de la declaración actual, donde el depurador se pausa. La ventana Variables locales muestra las variables definidas en el ámbito local, que suele ser la función o el método actuales.

Nota

Si es la primera vez que ha intentado depurar código, es posible que quiera leer Depuración para Principiantes Absolutos y Técnicas y Herramientas de Depuración antes de continuar con este artículo.

La ventana de Autos está disponible para los lenguajes de código C#, Visual Basic, C++, y Python, pero no para JavaScript o F#.

Para abrir la ventana Automático, seleccione Depurar>Ventanas>Automático, o bien presione Ctrl+Alt+V>A durante la depuración.

Para abrir la ventana Variables locales, seleccione Depurar>Ventanas>Variables locales, o bien presione Alt+4 durante la depuración.

Uso de las ventanas Automático y Variables locales

Las matrices y los objetos se muestran en las ventanas Autos y Locales como controles de árbol. Seleccione la flecha situada a la izquierda de un nombre de variable para expandir la vista para mostrar campos y propiedades. Este es un ejemplo de un objeto System.IO.FileStream en la ventana de variables locales:

Captura de pantalla de la ventana de locales, con el archivo establecido en un valor

Captura de pantalla de la ventana Locals, con el archivo establecido en un valor System.IO.FileStream.

Un valor rojo en la ventana Locales o Automático significa que el valor ha cambiado desde la última evaluación. El cambio podría provenir de una sesión de depuración anterior, o podría ser porque usted ha cambiado el valor en la ventana.

El formato numérico predeterminado en las ventanas del depurador es decimal. Para cambiarlo a hexadecimal, haga clic con el botón derecho en la ventana Variables locales o Automático y seleccione Presentación hexadecimal. El cambio afecta a todas las ventanas del depurador.

Editar valores de variable en la ventana Autos o Variables locales

Para editar los valores de la mayoría de las variables en las ventanas de Automático o Variables locales, haga doble clic en el valor y escriba el nuevo valor.

Puede escribir una expresión para un valor, por ejemplo, a + b. El depurador acepta la mayoría de las expresiones de lenguaje válidas.

En el código nativo de C++, es posible que tenga que calificar el contexto de un nombre de variable. Para obtener más información, vea Operador de contexto (C++).

Cautela

Asegúrese de comprender las consecuencias antes de cambiar los valores y expresiones. Algunos problemas posibles son:

  • Evaluar algunas expresiones puede cambiar el valor de una variable o afectar de otro modo al estado del programa. Por ejemplo, evaluar var1 = ++var2 cambia el valor de var1 y var2. Se dice que estas expresiones tienen efectos secundarios. Los efectos secundarios pueden causar resultados inesperados si no los conoce.

  • La edición de valores de punto flotante puede dar lugar a errores menores debido a la conversión decimal a binaria de componentes fraccionarios. Incluso una edición aparentemente inofensiva puede dar lugar a cambios en algunos de los bits de la variable de punto flotante.

Búsqueda en las ventanas Automático o Variables locales

Puede buscar palabras clave en las columnas Nombre, Valor y Tipo de la ventana Autos o de la ventana Locals mediante la barra de búsqueda situada encima de cada ventana. Presione ENTRAR o seleccione una de las flechas para ejecutar una búsqueda. Para cancelar una búsqueda en curso, seleccione el icono "x" en la barra de búsqueda.

Use las flechas izquierda y derecha (Mayús+F3 y F3, respectivamente) para desplazarse por las coincidencias encontradas.

Recorte de pantalla de búsqueda en la ventana Variables locales

Recorte de pantalla de búsqueda en la ventana Variables locales

Para que la búsqueda sea más o menos exhaustiva, use la lista desplegable Búsqueda más profunda en la parte superior de la ventana Automóviles o Locales para seleccionar cuántos niveles de profundidad desea buscar en objetos anidados.

Anclaje de propiedades en la ventana Automático o Variables locales

Nota

Esta característica es compatible con .NET Core 3.0 o superior.

Puede inspeccionar rápidamente objetos por sus propiedades en las ventanas Automático y Variables locales con la herramienta para anclar propiedades. Para usar esta herramienta, mantenga el puntero sobre una propiedad y seleccione el icono Anclar que aparece o haga clic con el botón derecho y seleccione la opción Anclar miembro como favorito en el menú contextual resultante. Esta acción eleva esa propiedad a la parte superior de la lista de propiedades, y el nombre y el valor de la propiedad se muestran en la columna Valor. Para desanclar una propiedad, vuelva a seleccionar el icono para anclar o seleccione la opción Desanclar miembro como favorito en el menú contextual.

Recorte de pantalla de las propiedades de Anclar en la ventana Variables locales.

También puede alternar los nombres de propiedades y filtrar las no ancladas al consultar la lista de propiedades del objeto en las ventanas Automático o Variables locales. Puede acceder a cada opción seleccionando los botones de la barra de herramientas encima de las ventanas de Autos o Locales.

Captura de pantalla de las propiedades favoritas de filtro.

Recorte de pantalla de los nombres de propiedad Alternancia.

Cambio del contexto de la ventana Automático o Variables locales

Puede usar la barra de herramientas Ubicación de depuración para seleccionar la función, el subproceso o el proceso que quiera, lo que cambia el contexto de las ventanas Automático y Variables locales.

Para habilitar la barra de herramientas Ubicación de depuración, haga clic en una parte vacía del área de la barra de herramientas y seleccione Ubicación de depuración en la lista desplegable, o bien seleccione Ver>Barras de herramientas>Ubicación de depuración.

Establezca un punto de interrupción e inicie la depuración. Cuando se alcanza el punto de interrupción, la ejecución se pausa y puede verse la ubicación en la barra de herramientas Ubicación de depuración.

Recorte de pantalla de la barra de herramientas Ubicación de Depuración.

Recorte de pantalla de la barra de herramientas Ubicación de Depuración.

Obtención de ayuda para la inteligencia artificial

Si tiene Copilot, puede obtener asistencia de IA mientras examina las variables en las ventanas Automático o Variables locales, o en indicadores de datos. Haga clic con el botón derecho en una variable y use el botón Preguntar a CopilotCaptura de pantalla del botón Preguntar a Copilot.. En este escenario, Copilot ya conoce el contexto de su pregunta, por lo que no es necesario proporcionar contexto en el chat. Para obtener más información, consulte Depurar con Copilot.

Variables en la ventana Autos (C#, C++, Visual Basic, Python)

Los distintos lenguajes de código muestran diferentes variables en la ventana de Autos.

  • En C# y Visual Basic, la ventana Autos muestra cualquier variable utilizada en la línea actual o en la línea anterior. Por ejemplo, en código de C# o Visual Basic, declare las cuatro variables siguientes:

         public static void Main()
         {
            int a, b, c, d;
            a = 1;
            b = 2;
            c = 3;
            d = 4;
         }
    

    Configura un punto de interrupción en la línea c = 3;e inicia el depurador. Cuando se pausa la ejecución, la ventana Autos se mostrará:

    Captura de pantalla de la ventana Autos, con el valor de c establecido en 0.

    Captura de pantalla de la ventana Autos, con el valor de c establecido en 0.

    El valor de c es 0, porque la línea c = 3 aún no se ha ejecutado.

  • En C++, la ventana Autos muestra las variables usadas en al menos tres líneas antes de la línea actual donde se detiene la ejecución. Por ejemplo, en el código de C++, declare seis variables:

         void main() {
             int a, b, c, d, e, f;
             a = 1;
             b = 2;
             c = 3;
             d = 4;
             e = 5;
             f = 6;
         }
    

    Establezca un punto de interrupción en la línea e = 5; y ejecute el depurador. Cuando la ejecución se detenga, se mostrará la ventana Automático:

    Captura de pantalla de la ventana Autos, con la línea resaltada que muestra el int c con un valor de 3.

    Captura de pantalla de la ventana Autos, con la línea resaltada que muestra el int c con un valor de 3.

    La variable e no está inicializada, porque la línea e = 5 aún no se ha ejecutado.

Visualización de valores devueltos de llamadas de método

En el código .NET y C++ se pueden examinar los valores en la ventana Automático cuando una llamada al método se ejecuta paso a paso por procedimientos o paso a paso para salir. La visualización de los valores devueltos de llamadas de método puede ser útil cuando no se almacenan en variables locales. Un método se puede usar como parámetro o como valor devuelto de otro método.

Nota

A partir de Visual Studio 2022, versión 17.12 versión preliminar 3, también puede ver valores devueltos en línea y no solo en la ventana Automático.

Por ejemplo, el siguiente código de C# agrega los valores devueltos de dos funciones:

static void Main(string[] args)
{
    int a, b, c, d;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    int x = sumVars(a, b) + subtractVars(c, d);
}

private static int sumVars(int i, int j)
{
    return i + j;
}

private static int subtractVars(int i, int j)
{
    return j - i;
}

Para ver los valores devueltos de las llamadas de método sumVars() y subtractVars() en la ventana Automático:

  1. Establezca un punto de interrupción en la línea int x = sumVars(a, b) + subtractVars(c, d);.

  2. Inicie la depuración y, cuando la ejecución se pause en el punto de interrupción, seleccione Paso a paso por procedimientos o presione F10. Deberían mostrarse los siguientes valores devueltos en la ventana Automático:

    Recorte de pantalla del valor devuelto Automático de C#.

    Recorte de pantalla del valor devuelto Automático de C#.