Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek představuje funkce ladicího programu sady Visual Studio v podrobném návodu. Pokud chcete zobrazit funkce ladicího programu na vyšší úrovni, podívejte se na Nejprve se podívejte na ladicí program. Když ladíte svou aplikaci, to obvykle znamená, že aplikaci spouštíte s připojeným debuggerem. Při provádění této úlohy poskytuje ladicí program mnoho způsobů, jak zjistit, co váš kód dělá během jeho spuštění. Můžete procházet kód a podívat se na hodnoty uložené v proměnných, můžete nastavit kukátky na proměnných, abyste viděli, kdy se hodnoty mění, můžete prozkoumat cestu provádění kódu, zjistit, jestli je spuštěná větev kódu atd. Pokud je toto cvičení poprvé, kdy se pokoušíte ladit kód, možná si budete chtít přečíst Ladění pro absolutní začátečníky předtím, než si projdete tento článek.
I když je ukázková aplikace C#, většina funkcí platí pro C++, Visual Basic, F#, Python, JavaScript a další jazyky podporované sadou Visual Studio (jazyk F# nepodporuje úpravy a pokračování. F# a JavaScript nepodporují okno automatické). Snímky obrazovky jsou v jazyce C#.
V tomto kurzu:
- Spusťte ladicí program a stiskněte zarážky.
- Naučte se příkazy pro procházení kódu v ladicím programu.
- Kontrola proměnných v datových tipech a oknech ladicího programu
- Prozkoumejte zásobník volání
Požadavky
Musíte mít nainstalované Visual Studio 2022 a pracovní zátěž vývoje desktopových aplikací .NET .
Pokud jste ještě nenainstalovali Visual Studio, přejděte na stránku ke stažení sady Visual Studio a nainstalujte ji zdarma.
Pokud už máte sadu Visual Studio, ale není nainstalovaná pracovní zátěž pro vývoj desktopových aplikací .NET, přejděte na Tools>Získat nástroje a funkce..., čímž se otevře instalační program sady Visual Studio. V instalačním programu sady Visual Studio zvolte úlohu vývoj desktopových aplikací .NET a pak zvolte Upravit.
Vytvoření projektu
Nejprve vytvoříte projekt konzolové aplikace .NET Core. Typ projektu obsahuje všechny soubory šablony, které potřebujete, ještě předtím, než něco přidáte.
Otevřete Visual Studio. Pokud není okno Start otevřené, vyberte Soubor>Okno Start.
V úvodním okně vyberte Vytvořit nový projekt.
V okně Vytvořit nový projekt zadejte do vyhledávacího pole konzolu. Potom v seznamu Jazyků zvolte jazyka C# a pak v seznamu Platformy zvolte Windows.
Po použití filtrů jazyka a platformy zvolte šablonu konzolové aplikace a pak vyberte Další.
Poznámka
Pokud šablonu konzolové aplikace nevidíte, můžete ji nainstalovat z okna Vytvořit nový projekt. V zprávě Nenašli jste, co hledáte? zvolte odkaz Nainstalovat další nástroje a funkce. Potom v instalačním programu sady Visual Studio zvolte úlohu vývoje desktopových aplikací .NET.
V okně Konfigurovat nový projekt zadejte GetStartedDebugging do pole název projektu. Pak vyberte Další.
V okně Další informace zkontrolujte, zda je v rozevírací nabídce Framework vybrán .NET 8.0 a poté vyberte Vytvořit.
Visual Studio otevře nový projekt.
Vytvoření aplikace
V Program.csnahraďte veškerý výchozí kód následujícím kódem:
using System;
class ArrayExample
{
static void Main()
{
char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
string name = "";
int[] a = new int[10];
for (int i = 0; i < letters.Length; i++)
{
name += letters[i];
a[i] = i + 1;
SendMessage(name, a[i]);
}
Console.ReadKey();
}
static void SendMessage(string name, int msg)
{
Console.WriteLine("Hello, " + name + "! Count to " + msg);
}
}
Spusťte ladicí program!
Většinou tady používáme klávesové zkratky, protože je to rychlý způsob, jak spouštět příkazy ladicího programu. Jsou také zaznamenány ekvivalentní příkazy, jako příkazy na panelu nástrojů nebo v nabídce.
Chcete-li spustit ladicí program, vyberte F5, nebo zvolte tlačítko Cíl ladění na standardním panelu nástrojů, nebo zvolte tlačítko Spustit ladění na panelu nástrojů pro ladění, nebo zvolte Ladění>Spustit ladění z panelu nabídek.
F5 spustí aplikaci s ladicím programem připojeným k procesu aplikace. Vzhledem k tomu, že jsme neprovedli nic zvláštního ke zkoumání kódu, aplikace se spustí k dokončení a zobrazí se výstup konzoly.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10Pokud chcete ladicí program zastavit, vyberte Shift+F5nebo na panelu ladění zvolte Zastavit ladění nebo na řádku nabídek zvolte Ladění>Zastavit ladění.
V okně konzoly vyberte libovolnou klávesu a zavřete okno konzoly.
Nastavení zarážky a spuštění ladicího programu
Ve smyčce
forfunkceMainnastavte bod přerušení kliknutím do levého okraje u následujícího řádku kódu.name += letters[i];Tam, kde nastavíte zarážku, se zobrazí červené kolečko.
Body přerušení jsou základní funkcí spolehlivého ladění. Můžete nastavit zarážky, ve kterých má Visual Studio pozastavit spuštěný kód, abyste se mohli podívat na hodnoty proměnných nebo chování paměti nebo zjistit, jestli se spouští větev kódu.
Ladění spustíte tak, že vyberete F5nebo na panelu nástrojů Standardní zvolíte tlačítko Cíl ladění, nebo na panelu nástrojů Debug zvolíte tlačítko Spustit ladění, nebo v menu vyberete Ladění>Spustit ladění. Aplikace se zahájí a ladicí program běží k řádku kódu, kde jste nastavili bod přerušení.
Žlutá šipka odkazuje na příkaz, na kterém byl ladicí program pozastaven. Spuštění aplikace je pozastaveno ve stejném okamžiku a příkaz se ještě nespustí.
Když aplikace není spuštěná, F5 aktivuje ladicí program, který běží, dokud aplikace nedosáhne prvního přerušení. Pokud je aplikace pozastavená na zarážce, F5 bude aplikaci dál spouštět, dokud nedosáhne další zarážky.
Zarážky jsou užitečnou funkcí, když znáte řádek nebo oddíl kódu, který chcete podrobně prozkoumat. Další informace o různých typech zarážek, které můžete nastavit, například podmíněné zarážky, najdete v tématu Použití zarážek.
Navigace v kódu a kontrola dat pomocí tipů k datům
Zatímco provádění kódu je pozastaveno v příkazu
name += letters[i], najeďte myší na proměnnoulettersa zobrazte datový tip zobrazující velikost pole a typ prvkuchar[10].Poznámka
Jednou z nejužitečnějších funkcí ladicího programu je jeho schopnost kontrolovat proměnnou. Při pokusu o ladění problému se často pokoušíte zjistit, jestli proměnné mají hodnoty, které očekáváte v určitém čase. Zobrazení datových tipů je dobrý způsob, jak to zkontrolovat.
Rozbalením proměnné
letterszobrazíte všechny její prvky pole a jejich hodnoty.
Najeďte myší na proměnnou
namea zobrazte její aktuální hodnotu, což je prázdný řetězec.Pokud chcete ladicí program přejít na další příkaz, vyberte F10, nebo zvolte tlačítko Krok přes v panelu nástrojů ladění, nebo vyberte Ladit>Krok přes v řádku nabídky. Vyberte F10 ještě dvakrát pro přechod přes volání metody
SendMessage.F10 posune ladicí program bez krokování do funkcí nebo metod, i když se jejich kód stále spouští. Tímto způsobem jsme přeskočili ladění kódu v metodě
SendMessage, o kterou teď momentálně nemáme zájem.Pokud chcete iterovat smyčku
forněkolikrát, opakovaně vyberte F10. Během každé iterace smyčky se zastavte na zarážce a najeďte myší na proměnnouname, abyste zkontrolovali její hodnotu v datovém tipu.
Hodnota proměnné se změní s každou iterací smyčky
for, která zobrazuje hodnotyf, pakfr, pakfreatd. Pro zrychlení ladicího programu při průchodu smyčkou vyberte F5, což přejde na zarážku namísto provedení dalšího příkazu.Zatímco je provádění kódu pozastaveno ve smyčce
formetodyMain, stiskněte F11, nebo zvolte tlačítko Krok do na panelu nástrojů Ladění, nebo zvolte položku Ladit>Krok do z nabídky menu, dokud se nedostanete na volání metodySendMessage.Debugger by měl být pozastaven na tomto řádku kódu:
SendMessage(name, a[i]);Pokud chcete přejít k metodě
SendMessage, znovu vyberte F11.Žlutý ukazatel přejde do metody
SendMessage.
F11 vám pomůže podrobněji prozkoumat tok provádění kódu. Pokud chcete přejít k metodě z volání metody, vyberte F11. Ve výchozím nastavení ladicí program přeskočí vstupování do neuživatelských metod. Pokud se chcete dozvědět více o ladění cizího kódu, podívejte se na Just My Code.
Jakmile dokončíte ladění metody
SendMessage, můžete se vrátit do smyčkyformetodymain.Pokud chcete metodu
SendMessageopustit, vyberte Shift+F11nebo zvolte na panelu ladicího nástrojového tlačítko Krok ven, nebo zvolte z panelu nabídek Ladit>Krok ven.Krok ven obnoví provádění aplikace a posune ladicí program, dokud se aktuální metoda nebo funkce nedokončí.
Vidíte, jak se žlutý ukazatel vrací ve smyčce
formetodyMaina je pozastaven při volání metodySendMessage. Další informace o různých způsobech procházení kódu najdete v tématu Procházení kódu v ladicím programu.
Navigace v kódu pomocí příkazu Spustit a kliknutí
Pokud chcete přejít na zarážku znovu, vyberte F5.
V editoru kódu najeďte myší na volání metody
Console.WriteLinev metoděSendMessage, dokud se nezobrazí tlačítko Spustit kliknutím. Popis tlačítka zobrazuje "Proveď až sem".
Zvolte tlačítko Spustit a klikněte na tlačítko. Případně s kurzorem na příkazu
Console.WriteLinevyberte Ctrl+F10. Nebo klikněte pravým tlačítkem myši na volání metodyConsole.WriteLinea v místní nabídce zvolte Spustit do kurzoru.Ladicí program se posune k volání metody
Console.WriteLine.Použití tlačítka Run to Click je podobné nastavení dočasné zarážky a je užitečné pro rychlý pohyb ve viditelné oblasti kódu aplikace v otevřeném souboru.
Rychlé restartování aplikace
Pokud chcete aplikaci spustit znovu od začátku v režimu ladění, vyberte Ctrl+Shift+F5, nebo zvolte tlačítko Restart na panelu nástrojů Ladění, nebo zvolte Ladění>Restart na panelu nabídek.
Restart zastaví ladicí program a pak ho restartuje jedním krokem. Když se ladicí program restartuje, spustí se na první zarážku, což je zarážka, kterou jste předtím nastavili uvnitř smyčky for, a poté se pozastaví.
Kontrola proměnných pomocí oken Automatické hodnoty a Místní hodnoty
Automatická a Místní Windows zobrazují hodnoty proměnných při ladění. Okna jsou k dispozici pouze během ladicí relace. Okno Automatické zobrazuje proměnné použité na aktuálním řádku, na kterém je ladicí program a na předchozím řádku. Okno Locals zobrazuje proměnné definované v místním oboru, což je obvykle aktuální funkce nebo metoda.
Když je ladicí program pozastavený, podívejte se na okno Automatická okna v dolní části editoru kódu.
Pokud je okno Autos zavřené, vyberte Ctrl+D,nebo vyberte v řádku nabídek Debug>Windows>Autos.
Ladicí program je stále pozastavený, zobrazte okno Místní na kartě vedle okna Automatické.
Pokud je okno místní zavřené, vyberte Ctrl+D, Lnebo zvolte Ladit>Místní>Windows.
V okně Locals rozbalte proměnnou
letters, aby se zobrazily její prvky pole a jejich hodnoty.
Další informace o oknech Autos a Locals najdete v tématu Kontrola proměnných v oknechAutos a Locals.
Ustanovit hlídku
Můžete zadat proměnnou nebo výraz, který chcete sledovat při procházení kódu, tak, že jej přidáte do okna Watch.
Když je ladicí program pozastaven, klikněte pravým tlačítkem myši na proměnnou
namea zvolte Přidat sledování.Okno Kukátko se otevře ve výchozím nastavení v dolní části editoru kódu.
Teď, když jste nastavili sledování proměnné
name, krokujte kódem, abyste viděli, jak se mění hodnota proměnnénamepři každé iteraci smyčkyfor.Na rozdíl od ostatních oken proměnných kukátko vždy zobrazuje proměnné, které sledujete. Proměnné, které jsou mimo rozsah, se zobrazují jako nedostupné.
Další informace o okně kukátka najdete v tématu Proměnné kukátka skukátka .
Prozkoumejte zásobník volání
Zásobník volání vám může pomoct pochopit tok provádění vaší aplikace zobrazením pořadí, ve kterém se volají metody a funkce.
Zatímco ladicí program je pozastavený ve smyčce
for, zobrazte okno Zásobník volání, které se ve výchozím nastavení otevře v pravém dolním podokně editoru kódu.Pokud je okno Zásobník volání zavřené, vyberte Ctrl+D, Cnebo z nabídky zvolte Ladit>Windows>Zásobník volání.
V okně Zásobník volání uvidíte žlutý ukazatel v aktuální metodě
Main.Vyberte F11 několikrát, dokud se v metodě
SendMessagenezobrazí pozastavení ladicího programu.Horní řádek okna Zásobník volání zobrazuje aktuální funkci, což je metoda
SendMessage. Druhý řádek ukazuje, že metodaSendMessagebyla volána z metodyMain.
Poznámka
Okno Zásobník volání se podobá perspektivě ladění v některých prostředích ID, jako je Eclipse.
V okně Zásobník volání můžete dvojklikem na řádek kódu přejít na příslušný zdrojový kód, což změní aktuální obor zkoumání ladicím programem. Tato akce neposouvá ladicí program.
V okně Zásobník volání můžete také použít nabídky pravým tlačítkem myši. Do zadaných funkcí můžete například vložit zarážky (breakpointy), pokračovat v ladicím programu pomocí Spustit na kurzornebo přejít do zdrojového kódu.
Další informace o zásobníku volánínajdete v tématu Postupy: Prozkoumání zásobníku volání.
Další kroky
V tomto kurzu jste se naučili, jak spustit ladicí program, procházet kód a kontrolovat proměnné. Možná budete chtít získat základní přehled o funkcích ladicího programu spolu s odkazy na další informace.