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 přehled ladicího programu sady Visual Studio. Při ladění aplikace to obvykle znamená, že aplikaci spouštíte s připojeným ladicím programem. 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í.
- Projděte si kód a prohlédněte si hodnoty uložené v proměnných.
- Nastavte hodinky na proměnných, abyste viděli, kdy se hodnoty mění.
- Prozkoumejte cestu spuštění kódu a zjistěte, jestli je spuštěná větev kódu.
Pokud je toto cvičení poprvé, kdy jste se pokusili ladit kód, můžete si přečíst ladění pro absolutní začátečníky.
I když ukázková aplikace v tomto článku používá Visual Basic, většina funkcí se vztahuje na C#, C++, F#, Python, JavaScript a další jazyky podporované sadou Visual Studio. Jazyk F# nepodporuje úpravy a pokračování. F# a JavaScript nepodporují okno Autos. Snímky obrazovky jsou v jazyce Visual Basic.
V tomto kurzu se naučíte:
- Spusťte ladicí program a stiskněte zarážky.
- Naučte se příkazy pro krokování 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 nainstalovanou sadu Visual Studio, včetně pracovní zátěže vývoje na více platformách .NET Core.
- Pokud potřebujete nainstalovat Visual Studio, podívejte se na stažení sady Visual Studio pro bezplatnou verzi.
- Pokud potřebujete nainstalovat úlohu, ale sadu Visual Studio už máte, přejděte do části Nástroje>Získat nástroje a funkce..., čímž se otevře instalační program sady Visual Studio. Zvolte úlohu vývoje 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ě než něco přidáte!
Otevřete Visual Studio. Pokud úvodní okno není otevřené, vyberte Soubor>Úvodní okno.
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 Jazyk Visual Basic a pak ze seznamu Platformy zvolte Windows .
Po použití filtrů jazyka a platformy zvolte šablonu konzolové aplikace pro .NET Core a pak vyberte Další.
Poznámka:
Pokud šablonu konzolové aplikace nevidíte, můžete ji nainstalovat z okna Vytvořit nový projekt. Ve zprávě Nenajděte, co hledáte? Zvolte odkaz Instalovat 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 název projektuget-started-debugging. Pak vyberte Další.
V okně Další informace se ujistěte, že je pro architekturuvybraná možnost .NET 10.0, a pak vyberte Vytvořit.
Otevřete Visual Studio. Pokud úvodní okno není otevřené, vyberte Soubor>Úvodní okno.
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 Jazyk Visual Basic a pak ze seznamu Platformy zvolte Windows .
Po použití filtrů jazyka a platformy zvolte šablonu konzolové aplikace pro .NET Core a pak vyberte Další.
Poznámka:
Pokud šablonu konzolové aplikace nevidíte, můžete ji nainstalovat z okna Vytvořit nový projekt. Ve zprávě Nenajděte, co hledáte? Zvolte odkaz Instalovat 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 název projektuget-started-debugging. Pak vyberte Další.
V okně Další informace se ujistěte, že je pro architekturuvybraná platforma .NET 8.0, a pak vyberte Vytvořit.
Visual Studio otevře nový projekt.
Vytvoření aplikace
V Program.vb nahraďte veškerý výchozí kód následujícím kódem:
Imports System
Class ArrayExample
Public Shared Sub Main()
Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
Dim name As String = ""
Dim a As Integer() = New Integer(9) {}
For i As Integer = 0 To letters.Length - 1
name += letters(i)
a(i) = i + 1
SendMessage(name, a(i))
Next
Console.ReadKey()
End Sub
Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
Console.WriteLine("Hello, " & name & "! Count to " & msg)
End Sub
End Class
Spusťte ladicí program!
Stiskněte klávesu F5 (Debug >Spustit ladění) nebo zvolte zelené tlačítko Spustit ladění na panelu nástrojů Ladění.
F5 spustí aplikaci s ladicím programem připojeným k procesu aplikace. Zatím jste neprovedli nic zvláštního, abyste kód prozkoumali. Aplikace se právě načte 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 10V tomto kurzu se podrobněji podíváte na tuto aplikaci pomocí ladicího programu a podíváte se na funkce ladicího programu.
Zastavte ladicí program stisknutím klávesy (Shift + F5) nebo vyberte červené tlačítko Zastavit ladění na panelu nástrojů Ladění.
V okně konzoly zavřete stisknutím klávesy okno konzoly.
Nastavení zarážky a spuštění ladicího programu
ForVe smyčce funkceMainnastavte bod přerušení kliknutím na levý okraj 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 jednou z nejzákladnějších a nejzásadnějších funkcí spolehlivého ladění. Zarážka označuje, kde Visual Studio pozastaví spuštěný kód. Během pozastavení se můžete podívat na hodnoty proměnných nebo na chování paměti. Uvidíte, jestli se spouští větev kódu.
Stiskněte klávesu F5 (Spustit ladění) nebo tlačítko Spustit ladění na panelu nástrojů ladění. Aplikace se spustí a debugger přejde na řádek kódu, kde jste nastavili bod přerušení.
Žlutá šipka představuje příkaz, u kterého ladicí program pozastavil, což také pozastaví vykonávání aplikace ve stejném bodě. Tento příkaz ještě nebyl proveden.
Pokud aplikace ještě není spuštěná, F5 spustí ladicí program a zastaví se na první zarážce. Jinak F5 pokračuje ve spuštění aplikace na další zarážku.
Zarážky jsou užitečnou funkcí, když znáte řádek kódu nebo oddíl kódu, který chcete podrobně prozkoumat. Informace o různých typech zarážek najdete v tématu Použití zarážek.
Navigujte v ladicím programu pomocí jednokrokových příkazů
Tento článek používá klávesové zkratky, protože je to dobrý způsob, jak rychle provádět aplikaci během ladění. Zobrazuje ekvivalentní příkazy, například příkazy nabídky, v závorkách.
Zatímco provádění kódu je pozastaveno ve
Forsmyčce vMainmetodě, stiskněte klávesu F11 (nebo zvolte Ladit > Krok dovnitř) a dvakrát stiskněte klávesu, abyste přešli naSendMessagevolání metody.Po stisknutí klávesy F11 byste měli být na tomto řádku kódu:
SendMessage(name, a(i))Stisknutím klávesy F11 postupně přejděte k
SendMessagemetodě.Žlutý ukazatel přejde do
SendMessagemetody.
F11 je příkaz Krok do . Postoupí spuštění aplikace po jednom příkazu. F11 je dobrý způsob, jak prozkoumat tok provádění v nejpodrobnějších podrobnostech. Ve výchozím nastavení ladicí program přeskočí neuživatelský kód. Další informace naleznete v tématu Just My Code.
Předpokládejme, že jste dokončili zkoumání
SendMessagemetody a chcete se z ní dostat, ale zůstat v režimu ladění. Můžete to provést pomocí příkazu Krok ven .Stiskněte klávesu Shift + F11 (nebo Krokovat ven z ladění>).
Tento příkaz obnoví provádění aplikace a přejde do ladicího programu, dokud aktuální metoda nebo funkce nevrátí.
Měli byste být zpět ve
Forsmyčce vMainmetodě, pozastaveni při volání metodySendMessage.Opakovaně stiskněte klávesu
SendMessage, dokud se znovu nedostanete k volání metody.Zatímco provádění kódu je pozastaveno při volání metody, stiskněte F10 (nebo zvolte Krok ladění>) jednou.
Tentokrát ladicí program nezakročí do
SendMessagemetody. F10 posunuje ladicí program bez krokování do funkcí nebo metod v kódu aplikace. Kód se stále spustí. Stisknutím klávesy F10 naSendMessagevolání metody místo F11 jste přeskočili kód implementace proSendMessage. 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í funkce Spustit na kliknutí
Dalším stisknutím klávesy F5 přejděte na zarážku.
V editoru kódu se posuňte dolů a najeďte myší na metodu
Console.WriteLineumístěnou v metoděSendMessage, dokud se nezobrazí zelené tlačítko Spustit na kliknutí. Popis tlačítka zobrazuje Spustit provedení do tohoto bodu.
Vyberte tlačítko Spustit kliknutím.
Ladicí program se posune k metodě
Console.WriteLine.Použití tohoto tlačítka se podobá nastavení dočasného bodu zlomu. Možnost Spustit na kliknutí je praktická k rychlému seznámení s viditelnou oblastí kódu aplikace, kterou můžete vybrat v libovolném otevřeném souboru.
Rychlé restartování aplikace
Pokud chcete aplikaci restartovat, stiskněte kombinaci kláves Ctrl + Shift + F5 . Šetří čas oproti zastavení aplikace a restartování ladicího programu. Ladicí program se pozastaví na prvním bodu přerušení, ke kterému dojde při spuštění kódu.
Ladicí program se znovu zastaví na bodu přerušení, který jste předtím nastavili uvnitř smyčky For.
Prozkoumejte proměnné pomocí datových tipů
Ladicí program obsahuje funkce, které umožňují inspektovat proměnné. Existují různé způsoby kontroly proměnných. Při pokusu o ladění problému se často pokoušíte zjistit, jestli proměnné ukládají hodnoty, které očekáváte, v určitém okamžiku.
Zatímco je provádění kódu pozastaveno na příkazu
name += letters[i], umístěte kurzor myši na proměnnouletters. Zobrazí se výchozí hodnota, hodnota prvního prvku v poli,"f"c.Dále najeďte myší na
nameproměnnou, aby se zobrazila její aktuální hodnota, prázdný řetězec.Několikrát stiskněte klávesu F5 (nebo Ladit>pokračovat), abyste několikrát provedli iterace smyčkou
For, znovu se přerušíte na zarážce a pokaždé najeďte myší na proměnnouname, abyste zkontrolovali její hodnotu.
Hodnota proměnné se změní s každou iterací smyčky
For, která zobrazuje hodnotyf, pakfr, pakfreatd.Při ladění kódu často chcete rychle zkontrolovat hodnoty vlastností u proměnných a zjistit, jestli ukládají hodnoty, které očekáváte, že se mají uložit. Datové tipy jsou dobrým způsobem, jak to udělat.
Prohlížení proměnných pomocí oken Autos a Locals
Podívejte se do okna Autos v dolní části editoru kódu.
Pokud je zavřený, otevřete ho, když se v ladicím programu pozastaví provádění kódu, a to tak, že zvolíte Ladit>>automatické windows.
V okně Autos vidíte proměnné a jejich aktuální hodnotu. V okně Autos se zobrazí všechny proměnné použité na aktuálním řádku nebo na předchozím řádku. Projděte si dokumentaci k chování specifickému pro jazyk.
Podívejte se na okno Místní v záložce vedle okna Automatické.
Rozbalte proměnnou
letters, aby se zobrazily prvky, které obsahuje.
V okně Místní hodnoty se zobrazí proměnné, které jsou v aktuálním rozsahu , tj. aktuální kontext spuštění.
Nastavení hodinek
Můžete zadat proměnnou nebo výraz, který chcete sledovat při procházení kódu, přidáním do okna Sledování.
Když je ladicí program pozastavený, klikněte pravým tlačítkem myši na proměnnou
namea zvolte Přidat sledování.Výchozí nastavení editoru kódu je, že se okno Watch otevře v jeho dolní části.
Teď, když jste nastavili sledování
nameproměnné, projděte si kód, abyste viděli hodnotunamezměny proměnné s každouforiterací smyčky.Na rozdíl od ostatních oken proměnných Okno sledování vždy zobrazuje proměnné, které sledujete. Proměnné, které jsou mimo rozsah, se zobrazují jako nedostupné.
Další informace o okně Watch najdete v tématu Sledování proměnných s okny Watch.
Prozkoumejte zásobník volání
Zatímco je provádění kódu ve smyčce
Forpozastaveno, vyberte okno Zásobník volání, které se nachází ve výchozím nastavení otevřené v pravém dolním podokně.Pokud je zavřený, otevřete ho, když se v ladicím programu pozastaví provádění kódu, a to tak, že zvolíte Ladění>zásobníku volání>.
Několikrát vyberte klávesu F11 , dokud se v
SendMessagemetodě nezobrazí pozastavení ladicího programu. Podívejte se na okno Zásobník volání.
Okno Zásobník volání zobrazuje pořadí volání metod a funkcí. Horní čára zobrazuje aktuální funkci. V tomto příkladu je to metoda
SendMessage. Druhý řádek ukazuje, žeSendMessagebyla volána z metodyMainatd.Poznámka:
Okno Zásobník volání je podobné perspektivě ladění v některých programovacích nástrojích, jako je Eclipse.
Zásobník volání je dobrý způsob, jak prozkoumat a pochopit tok provádění aplikace.
Poklikáním na řádek kódu se můžete podívat na tento zdrojový kód, což také změní aktuální kontext zkoumaný debuggerem. Tato akce neposouvá ladicí program dál.
V okně Zásobník volání můžete také pravým tlačítkem myši použít nabídky k provádění dalších akcí. Do zadaných funkcí můžete například vložit zarážky, pokročit v ladicím programu pomocí Run to Cursor a prozkoumat zdrojový kód. Další informace naleznete v tématu Jak na to: Prozkoumání zásobníku volání.
Změna toku provádění
Stisknutím klávesy F11 spusťte metodu
Console.WriteLinedvakrát.Když je ladicí program pozastaven ve
SendMessagevolání metody, pomocí myši uchopte žlutou šipku nebo vykonávací ukazatel v levém okraji a přetáhněte ho o jeden řádek nahoru kConsole.WriteLinepříkazu.Stiskněte klávesu F11.
Ladicí program znovu spustí metodu
Console.WriteLine. Tato akce se zobrazí ve výstupu okna konzoly.Změnou toku provádění můžete otestovat různé cesty spuštění kódu nebo znovu spustit kód bez restartování ladicího programu.
Výstraha
U této funkce často musíte být opatrní. V popisu je upozornění. Může se zobrazit i další upozornění. Přesunutí ukazatele nemůže vrátit aplikaci do dřívějšího stavu aplikace.
Stisknutím klávesy F5 pokračujte ve spuštění aplikace.
Blahopřejeme k dokončení tohoto kurzu!
Související obsah
V tomto kurzu jste zjistili, 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.