Rychlý start: Ladění pomocí jazyka C++ pomocí ladicího programu sady Visual Studio

Ladicí program sady Visual Studio nabízí mnoho výkonných funkcí, které vám pomůžou ladit aplikace. Toto téma nabízí rychlý způsob, jak se seznámit s některými základními funkcemi.

Vytvoření nového projektu

  1. Otevřete Visual Studio a vytvořte projekt.

    Stisknutím klávesy Esc zavřete úvodní okno. Pokud chcete otevřít vyhledávací pole, zadejte c++, zvolte Šablony a pak zvolte Vytvořit nový projekt konzolové aplikace. V zobrazeném dialogovém okně zvolte Vytvořit.

    Pokud šablonu projektu konzolové aplikace systému Windows nevidíte, přejděte do části Nástroje Získat nástroje>a funkce..., čímž se otevře Instalační program pro Visual Studio. Spustí se instalační program pro Visual Studio. Zvolte vývoj desktopových aplikací pomocí úlohy C++ a pak zvolte Upravit.

    Visual Studio vytvoří projekt.

  2. V souboru MyDbgApp.cpp nahraďte následující kód.

    int main()
    {
        return 0;
    }
    

    s tímto kódem (neodebírejte #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();
    }
    

Nastavení zarážky

Zarážka je značka, která označuje, kde má Visual Studio pozastavit spuštěný kód, abyste se mohli podívat na hodnoty proměnných nebo na chování paměti nebo jestli se spouští větev kódu. Jedná se o nejzásadnější funkci ladění.

  1. Pokud chcete nastavit zarážku, klikněte do hřbetu vlevo od doWork volání funkce (nebo vyberte řádek kódu a stiskněte klávesu F9).

    Set a breakpoint

  2. Teď stiskněte klávesu F5 (nebo zvolte > Spustit ladění).

    Hit a breakpoint

    Ladicí program pozastaví místo, kde nastavíte zarážku. Příkaz, ve kterém je ladicí program a spuštění aplikace pozastavené, je označen žlutou šipkou. Řádek s voláním doWork funkce se ještě nespustila.

    Tip

    Pokud máte zarážku ve smyčce nebo rekurzi nebo pokud máte mnoho zarážek, kterými často procházíte, použijte podmíněnou zarážku a ujistěte se, že je váš kód pozastaven pouze v případě splnění určitých podmínek. Podmíněná zarážka šetří čas a může také usnadnit ladění problémů, které se obtížně reprodukují.

    Při pokusu o ladění chyb souvisejících s pamětí v jazyce C++ můžete také použít zarážky ke kontrole hodnot adres (vyhledání hodnoty NULL) a počtu odkazů.

Ladicí program má pokračovat různými příkazy. Zobrazujeme užitečný příkaz pro navigaci v kódu, který je k dispozici od sady Visual Studio 2017.

Když je zarážka pozastavená, najeďte myší na příkazc1.push_back(20), dokud se nezobrazí zelené tlačítko Run to Click Spustit, na které kliknete, a pak stiskněte tlačítko Spustit.

Run to click

Aplikace pokračuje v provádění, volání doWorka pozastaví se na řádku kódu, na kterém jste klikli na tlačítko.

Mezi běžné klávesové příkazy používané k procházení kódu patří F10 a F11. Podrobnější pokyny najdete v tématu První seznámení s ladicím programem.

Kontrola proměnných v datovém popisu

  1. Na aktuálním řádku kódu (označeném žlutým ukazatelem spuštění) najeďte myší na c1 objekt a zobrazte popis dat.

    View a datatip

    Tento popis ukazuje aktuální hodnotu c1 proměnné a umožňuje zkontrolovat její vlastnosti. Pokud při ladění uvidíte hodnotu, kterou neočekáváte, pravděpodobně dojde k chybě v předchozích nebo volajících řádcích kódu.

  2. Rozbalte popis dat, abyste se podívali na aktuální hodnoty vlastností objektu c1 .

  3. Pokud chcete připnout popis dat, abyste mohli pokračovat v zobrazení hodnoty c1 při provádění kódu, klikněte na malou ikonu špendlíku. (Připnutý popis dat můžete přesunout do vhodného umístění.)

Úprava kódu a pokračování ladění

Pokud identifikujete změnu, kterou chcete otestovat ve svém kódu v průběhu ladicí relace, můžete to udělat také.

  1. Klikněte na druhou instanci c2.front() a změňte c2.front() na c2.back().

  2. Stiskněte několikrát klávesu F10 (nebo Debug > Step Over) a přejděte k ladicímu programu a spusťte upravený kód.

    Edit and continue

    F10 posune ladicí program postupně o jeden příkaz, ale kroky nad funkcemi místo krokování do nich (kód, který přeskočíte, se stále provádí).

Další informace o používání omezení funkcí pro úpravy a pokračování a o funkcích najdete v tématu Upravit a pokračovat.

Další kroky

V tomto kurzu jste se naučili, jak spustit ladicí program, procházet kód a kontrolovat proměnné. Možná se budete chtít podívat na funkce ladicího programu a odkazy na další informace.