Sdílet prostřednictvím


Kurz: Naučte se ladit kód jazyka C# pomocí sady Visual Studio

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.

  1. Otevřete Visual Studio. Pokud není okno Start otevřené, vyberte Soubor>Okno Start.

  2. V úvodním okně vyberte Vytvořit nový projekt.

  1. 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ší.

    snímek obrazovky se šablonou konzolová aplikace v okně Vytvořit nový projekt v sadě Visual Studio 2022

    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.

  2. V okně Konfigurovat nový projekt zadejte GetStartedDebugging do pole název projektu. Pak vyberte Další.

  3. 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.

  1. 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.

    Snímek obrazovky tlačítka

    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 10
    
  2. Pokud 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í.

    Snímek obrazovky s tlačítkem Zastavit ladění na panelu nástrojů Ladění ve Visual Studio 2022

  3. V okně konzoly vyberte libovolnou klávesu a zavřete okno konzoly.

Nastavení zarážky a spuštění ladicího programu

  1. Ve smyčce for funkce Main nastavte 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.

    snímek obrazovky s bodem přerušení v sadě Visual Studio 2022

    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.

  2. 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í.

    Snímek obrazovky znázorňující přerušení v editoru kódu sady Visual Studio 2022, kde je kód pozastaven na 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.

  1. Zatímco provádění kódu je pozastaveno v příkazu name += letters[i], najeďte myší na proměnnou letters a zobrazte datový tip zobrazující velikost pole a typ prvku char[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.

  2. Rozbalením proměnné letters zobrazíte všechny její prvky pole a jejich hodnoty.

    snímek obrazovky ukazující datový tip ladicího programu v sadě Visual Studio 2022, který zobrazuje hodnoty prvků proměnné pole 'letters'.

  3. Najeďte myší na proměnnou name a zobrazte její aktuální hodnotu, což je prázdný řetězec.

  4. 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.

  5. Pokud chcete iterovat smyčku for několikrát, opakovaně vyberte F10. Během každé iterace smyčky se zastavte na zarážce a najeďte myší na proměnnou name, abyste zkontrolovali její hodnotu v datovém tipu.

    Snímek obrazovky s datovým tipem ladicího nástroje v sadě Visual Studio 2022, který zobrazuje hodnotu řetězce proměnné 'name'.

    Hodnota proměnné se změní s každou iterací smyčky for, která zobrazuje hodnoty f, pak fr, pak freatd. 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.

  6. Zatímco je provádění kódu pozastaveno ve smyčce for metody Main, 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í metody SendMessage.

    Debugger by měl být pozastaven na tomto řádku kódu:

    SendMessage(name, a[i]);

  7. Pokud chcete přejít k metodě SendMessage, znovu vyberte F11.

    Žlutý ukazatel přejde do metody SendMessage.

    Snímek obrazovky s ukazatelem spuštění ladicího programu v metodě 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čky for metody main.

  8. Pokud chcete metodu SendMessage opustit, 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 for metody Main a je pozastaven při volání metody SendMessage. Další informace o různých způsobech procházení kódu najdete v tématu Procházení kódu v ladicím programu.

  1. Pokud chcete přejít na zarážku znovu, vyberte F5.

  2. V editoru kódu najeďte myší na volání metody Console.WriteLine v metodě SendMessage, dokud se nezobrazí tlačítko Spustit kliknutím. Popis tlačítka zobrazuje "Proveď až sem".

    snímek obrazovky s tlačítkem Spustit a kliknout v sadě Visual Studio 2022

  3. Zvolte tlačítko Spustit a klikněte na tlačítko. Případně s kurzorem na příkazu Console.WriteLine vyberte Ctrl+F10. Nebo klikněte pravým tlačítkem myši na volání metody Console.WriteLine a 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.

snímek obrazovky tlačítka Restartovat na panelu nástrojů Ladění sady Visual Studio 2022

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.

  1. 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.

  2. 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.

  3. V okně Locals rozbalte proměnnou letters, aby se zobrazily její prvky pole a jejich hodnoty.

    snímek obrazovky okna Místní ve Visual Studio 2022, s rozbaleným polem 'letters'.

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.

  1. Když je ladicí program pozastaven, klikněte pravým tlačítkem myši na proměnnou name a zvolte Přidat sledování.

    Okno Kukátko se otevře ve výchozím nastavení v dolní části editoru kódu.

  2. Teď, když jste nastavili sledování proměnné name, krokujte kódem, abyste viděli, jak se mění hodnota proměnné name při každé iteraci smyčky for.

    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.

  1. 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.

  2. Vyberte F11 několikrát, dokud se v metodě SendMessage nezobrazí pozastavení ladicího programu.

    Horní řádek okna Zásobník volání zobrazuje aktuální funkci, což je metoda SendMessage. Druhý řádek ukazuje, že metoda SendMessage byla volána z metody Main.

    snímek obrazovky okna Zásobník volání v sadě Visual Studio 2022

    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.