Inicio rápido: Depuración con C++ mediante el depurador de Visual Studio

En este inicio rápido, explorará cómo usar el depurador de Visual Studio para depurar el código nativo de C++. En este artículo se proporciona una manera rápida de aprender algunas de las características básicas para trabajar en el depurador.

Si no tiene Visual Studio, puede instalar la versión de prueba gratuita desde la página descargas de Visual Studio.

Creación de un nuevo proyecto

Empiece por crear un nuevo proyecto, para tener algo de código que comprobar en el depurador.

  1. Abra Visual Studio y cree un proyecto.

    • Si la ventana de inicio no está abierta, seleccione Archivo>Ventana de inicio.

    • En la ventana Inicio, seleccione Crear un nuevo proyecto.

  2. En la ventana Crear un nuevo proyecto , establezca los filtros y busque una plantilla de proyecto.

    • En el cuadro Buscar plantillas , escriba vacío.

    • Expanda la lista desplegable Lenguaje y seleccione C++.

  3. En la lista de resultados, seleccione la plantilla Empty Project para C++y, a continuación, seleccione Next.

    Si no ve la plantilla Empty Project para C++, seleccione la opción Continue sin código.

    1. Seleccione Tools>Obtener herramientas y características... , que abre el instalador de Visual Studio.

    2. En la ventana Instalador, active la casilla para la carga de trabajo Desarrollo de escritorio con C++ y, a continuación, seleccione Modificar.

      La instalación de Visual Studio se actualiza para incluir la carga de trabajo de C++ seleccionada.

    3. Una vez completada la actualización, seleccione Archivo>Ventana de inicio y siga las instrucciones anteriores para seleccionar la plantilla necesaria.

  4. Configure el nuevo proyecto:

    1. Escriba un nombre Project y Nombre de solución o use los valores predeterminados.

    2. Use la ubicación predeterminada o seleccione Examinar (...) para crear el proyecto en otra carpeta.

    3. Selecciona Crear.

    Visual Studio crea el nuevo proyecto y agrega los archivos del proyecto en la carpeta especificada.

Agregar un archivo de proyecto

Agregue un archivo de código para que tenga contenido para probarlo en el depurador.

  1. En el panel Explorador de soluciones, Haga clic con el botón derecho en el <project-name> y seleccione Add>Nuevo elemento.

    Si no ve el panel Explorador de soluciones, seleccione View>Explorador de soluciones.

  2. En el cuadro de diálogo Agregar nuevo elemento , escriba el nombre de archivo MyDbgApp.cpp y seleccione Agregar.

    El archivo se abre en el editor de código.

  3. Agregue el código siguiente al nuevo archivo.

    #include <list>
    #include <iostream>
    
    using namespace std;
    
    void doWork() {
        list <int> c1;
    
        c1.push_back(10);
        c1.push_back(20);
    
        const list <int> c2 = c1;
        const int &i = c2.front();
        const int &j = c2.front();
        cout << "The first element is " << i << endl;
        cout << "The second element is " << j << endl;
    }
    
    int main() {
        doWork();
    }
    
  4. Guarde los cambios de archivo con el método abreviado de teclado Ctrl+S .

Establecer un punto de interrupción

Un breakpoint es un marcador que indica dónde Visual Studio debe suspender el código en ejecución. Cuando se establece un punto de interrupción, puede echar un vistazo a los valores actuales de las variables, examinar el comportamiento de la memoria y comprobar si se está ejecutando una rama de código específica. Los puntos de interrupción son la función más básica de la depuración.

  1. Para establecer un punto de interrupción, busque la llamada a la doWork() función en el código y, a continuación, seleccione en el margen izquierdo de la misma línea.

    Cuando se establece el punto de interrupción, se muestra un punto rojo en el margen izquierdo de la línea correspondiente del código.

    Captura de pantalla que muestra cómo establecer un punto de interrupción en el depurador de Visual Studio.

    Captura de pantalla que muestra cómo establecer un punto de interrupción en el depurador de Visual Studio 2022.

  2. Inicie la depuración mediante el método abreviado de teclado F5 (o seleccione Depurar>).

    Captura de pantalla que muestra el depurador detenido en un punto de interrupción definido en Visual Studio.

    Captura de pantalla que muestra el depurador detenido en un punto de interrupción establecido en Visual Studio 2022.

    La ejecución del código se detiene inmediatamente antes de la llamada a la doWork() función.

    El depurador se detiene donde se ha establecido el punto de interrupción. Una flecha amarilla indica la instrucción en la que el depurador detiene la ejecución de la aplicación.

    Sugerencia

    Al depurar errores relacionados con la memoria en el código de C++, también puede usar puntos de interrupción para inspeccionar los valores de dirección (busque NULL) y los recuentos de referencias.

Establecimiento de puntos de interrupción condicionales

Si establece un punto de interrupción en un bucle o recursividad, o si tiene muchos puntos de interrupción que recorre con frecuencia, use un punto de interrupción condicional.

Este enfoque ayuda a garantizar que el código se suspenda solo cuando se cumplen condiciones específicas. Un punto de interrupción condicional puede ahorrar tiempo y también facilitar la depuración de problemas que son difíciles de reproducir.

Recorre tu código paso a paso

Visual Studio proporciona varias maneras diferentes de indicar al depurador que continúe con la ejecución de la aplicación. En el ejemplo siguiente se muestra un comando útil para recorrer el código.

Mientras el código está en pausa en el punto de interrupción, mantenga el puntero sobre la instrucción c1.push_back(20) hasta que vea el icono verde Ejecutar para hacer clic (Ejecutar hasta aquí). Seleccione el icono.

Captura de pantalla que muestra cómo usar la acción Ejecutar hasta hacer clic en el depurador de Visual Studio.

Mientras el código está en pausa en el punto de interrupción, mantenga el puntero sobre la instrucción c1.AddLast(20) hasta que vea el icono verde Ejecutar para hacer clic (Ejecutar hasta aquí). Seleccione el icono.

Captura de pantalla que muestra cómo usar la acción Ejecutar hasta hacer clic en el depurador de Visual Studio 2022.

La aplicación continúa la ejecución, llamando a doWorky se detiene en la línea de código donde seleccionó Ejecutar para hacer clic.

Los comandos de teclado comunes que se usan para recorrer el código incluyen F10 y F11. Para obtener instrucciones más detalladas, consulte Introducción al depurador de Visual Studio.

Inspección de variables en una sugerencia de datos

Puede inspeccionar el estado de las variables con la función sugerencia de datos.

  1. En la línea de código actual (marcada por el puntero de ejecución amarillo), mantenga el puntero sobre el c1 objeto para ver la sugerencia de datos.

    Screenshot que muestra cómo ver sugerencias de datos para variables de código en el depurador de Visual Studio.

    Screenshot que muestra cómo ver sugerencias de datos para variables de código en el depurador de Visual Studio 2022.

    La sugerencia de datos muestra el valor actual de la c1 variable y le permite inspeccionar sus propiedades.

    Al depurar, si ve un valor inesperado para una variable, es probable que tenga un error. El error podría estar en el código que realiza la llamada a la variable o en la línea anterior.

  2. Expanda la sugerencia de datos para ver los valores de propiedad actuales del c1 objeto.

  3. Para continuar comprobando el valor de c1 a medida que se ejecuta el código, seleccione el icono de anclaje en la sugerencia de datos.

    La acción de anclaje mantiene abierta la sugerencia de datos. A medida que se ejecuta el código, el valor de la sugerencia anclada cambia para mostrar el estado actual del objeto observado.

    Puede mover la indicación fijada a cualquier lugar del IDE para que no le impida consultar otros elementos durante la depuración.

Activar la recarga en caliente durante la depuración

Durante la depuración, si ve un cambio que desea probar en su código, puede usar la función Recarga activa (anteriormente denominada Edit and Continue).

  1. Seleccione la segunda instancia de la c2.front() instrucción y cambie el código a c2.back().

  2. Seleccione F10 varias veces (o seleccione Depurar>Saltar varias veces) para hacer avanzar el depurador y ejecutar el código editado.

    Animación que muestra cómo editar y continuar con la función

    Animación que muestra cómo editar y continuar en el depurador de Visual Studio 2022.

    F10 hace que el depurador avance de instrucción en instrucción, pero que se salte las funciones en lugar de depurarlas (el código que se omite se sigue ejecutando).

Para obtener más información sobre la característica y las limitaciones, consulte Configure Recarga activa.

Paso siguiente