Compartir a través de


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

El depurador de Visual Studio proporciona muchas características eficaces para ayudarle a depurar las aplicaciones. En este tema se proporciona una manera rápida de aprender algunas de las características básicas.

Creación de un nuevo proyecto

  1. Abra Visual Studio y cree un proyecto.

    Si la ventana Inicio aún no está abierta, seleccione Ventana de inicio de archivo>. En la ventana Inicio, seleccione Crear un nuevo proyecto. En el cuadro de búsqueda, escriba "Proyecto vacío" y, a continuación, seleccione la plantilla Proyecto vacío de C++.

    Si no ve la plantilla de proyecto, abra el Instalador de Visual Studio. Elija la carga de trabajo Desarrollo de escritorio con C++ y, a continuación, elija Modificar.

    Visual Studio crea el proyecto.

    Creación de un nuevo archivo de origen denominado MyDbgApp.cpp

  2. En MyDbgApp.cpp, reemplace el código siguiente.

    int main()
    {
        return 0;
    }
    

    con este código (no elimine #include "stdafx.h"):

    #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();
    }
    

Establecer un punto de interrupción

Un punto de interrupción es un marcador que indica dónde debe suspender Visual Studio el código en ejecución para que pueda echar un vistazo a los valores de las variables, o el comportamiento de la memoria, o si se está ejecutando una rama de código o no. Es la característica más básica de la depuración.

  1. Para establecer el punto de interrupción, haga clic en el margen a la izquierda de la doWork llamada de función (o seleccione la línea de código y presione F9).

    Establecer un punto de interrupción

  2. Ahora presione F5 (o elija Depurar Iniciar depuración>).

    Llegar a un punto de interrupción

    El depurador se detiene donde se ha establecido el punto de interrupción. La instrucción donde se ha detenido la ejecución del depurador y la aplicación se indica mediante la flecha amarilla. La línea con la doWork llamada de función aún no se ha ejecutado.

    Sugerencia

    Si tiene 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 para asegurarse de que el código se suspenda SOLO cuando se cumplan condiciones específicas. Un punto de interrupción condicional ahorra tiempo y también puede facilitar la depuración de problemas difíciles de reproducir.

    Al intentar depurar errores relacionados con la memoria en C++, también puede utilizar puntos de ruptura para inspeccionar los valores de dirección (verifique si son NULL) y los recuentos de referencias.

Hay distintos comandos para indicar al depurador que continúe. Se muestra un comando de navegación de código útil que está disponible a partir de Visual Studio 2017.

Mientras estás pausado en el punto de interrupción, coloca el cursor sobre la instrucción c1.push_back(20) hasta que aparezca el botón verde Ejecutar hasta hacer clicEjecutar hasta hacer clic y, a continuación, pulsa el botón Ejecutar hasta hacer clic.

Ejecutar hasta clic

La aplicación continúa la ejecución, llamando a doWork y se detiene en la línea de código donde hizo clic en el botón.

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

Inspeccionar las variables de una información sobre datos

  1. En la línea de código actual (marcada con el puntero de ejecución amarillo), mantenga el puntero sobre el objeto c1 para mostrar una información sobre datos.

    Visualización de información sobre datos

    El datatip muestra el valor actual de la variable c1 y le permite inspeccionar sus propiedades. Al depurar, si ve un valor que no esperaba, probablemente tenga un error en las líneas de código anteriores o de llamada.

  2. Expanda la información sobre datos para ver los valores de propiedad actuales del objeto c1.

  3. Si quiere anclar la información sobre datos para poder seguir viendo el valor de c1 mientras ejecuta el código, haga clic en el icono de anclar pequeño. (Puede mover la información sobre datos anclada a una ubicación que le resulte cómoda).

Editar código y seguir depurando

Si identificas un cambio que quieres probar en tu código mientras estás en una sesión de depuración, también puedes hacerlo.

  1. Haga clic en la segunda instancia de c2.front() y cambie c2.front() a c2.back().

  2. Presione F10 (o Depurar > Saltar) varias veces para que el depurador avance y ejecute el código editado.

    Editar y continuar

    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 el uso de edición y continuación y sobre las limitaciones de esta función, consulte Editar y Continuar.

Pasos siguientes

En este tutorial, ha aprendido a iniciar el depurador, recorrer el código e inspeccionar variables. Es posible que desee obtener una visión general de las características del depurador junto con vínculos a más información.