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
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.
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í.
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).Teď stiskněte klávesu F5 (nebo zvolte > Spustit ladění).
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ů.
Navigace v kódu
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 Spustit, na které kliknete, a pak stiskněte tlačítko Spustit.
Aplikace pokračuje v provádění, volání doWork
a 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
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.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.Rozbalte popis dat, abyste se podívali na aktuální hodnoty vlastností objektu
c1
.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é.
Klikněte na druhou instanci
c2.front()
a změňtec2.front()
nac2.back()
.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.
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.