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 první pohled na ladicí program. 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í. 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 se toto cvičení poprvé pokusíte ladit kód, můžete si před přechodem do tohoto článku přečíst ladění pro absolutní začátečníky .
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ého vytváření . Snímky obrazovky jsou v jazyce C#.
V tomto kurzu:
- Spusťte ladicí program a stiskněte zarážky.
- Naučte se procházet kód v ladicím programu.
- Kontrola proměnných v datových tipech a oknech ladicího programu
- Prozkoumání zásobníku volání
Požadavky
Musíte mít nainstalovanou sadu Visual Studio 2022 a úlohu vývoje desktopových aplikací .NET.
Musíte mít nainstalovanou sadu Visual Studio 2019 a úlohu vývoje pro různé platformy .NET Core.
Pokud jste visual Studio ještě nenainstalovali, přejděte na stránku pro stažení sady Visual Studio a nainstalujte ji zdarma.
Pokud potřebujete nainstalovat úlohu, ale sadu Visual Studio už máte, přejděte na 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 úlohu vývoje pro různé platformy .NET Core a pak zvolte Upravit.
Pokud už sadu Visual Studio máte, ale úloha vývoje desktopových aplikací .NET není nainstalovaná, přejděte do části Nástroje Get Tools>and Features..., který spustí Instalační program pro Visual Studio. V Instalační program pro 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ě předtím, než něco přidáte.
Otevřete sadu Visual Studio. Pokud úvodní okno není otevřené, vyberte Okno Spustit soubor>.
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 C# 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í program pro Visual Studio zvolte úlohu vývoje pro různé platformy .NET Core.
V okně Konfigurovat nový projekt zadejte getStartedDebugging do pole Název projektu. Pak vyberte Další.
Vyberte doporučenou cílovou architekturu (.NET 8.0 nebo dlouhodobou podporu) a pak vyberte Vytvořit.
V okně Vytvořit nový projekt zadejte do vyhledávacího pole konzolu . Potom v seznamu Jazyků zvolte jazyk C# a pak ze 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. Ve zprávě Nenajděte, co hledáte? Zvolte odkaz Instalovat další nástroje a funkce. Potom v Instalační program pro 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 se ujistěte, že je v rozevírací nabídce rozhraní .NET 8.0 vybrána a pak vyberte Vytvořit.
Visual Studio otevře nový projekt.
Vytvoření aplikace
V souboru Program.cs nahraď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!
Stiskněte klávesu F5 (>Ladění spustit ladění) nebo tlačítko Spustit ladění na panelu nástrojů Ladění.
F5 spustí aplikaci s ladicím programem připojeným k procesu aplikace, ale právě teď jsme neprovedli nic zvláštního, abychom kód prozkoumali. Aplikace se tedy právě načte a zobrazí se tento 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
V 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 červeného tlačítka zarážky (Shift + F5).
V okně konzoly zavřete stisknutím klávesy okno konzoly.
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 je panel nástrojů nebo příkazy nabídky.
Ladicí program spustíte tak, že vyberete klávesu F5 nebo na panelu nástrojů Standardní vyberetetlačítko Cíl ladění, nebo na panelu nástrojů Ladění zvolíte tlačítko Spustit ladění nebo v řádku nabídek zvolíte >Tlačítko Spustit ladění.
F5 spustí aplikaci pomocí ladicího programu připojeného 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
Pokud chcete ladicí program zastavit, vyberte Shift+F5 nebo na panelu nástrojů Ladění zvolte tlačítko Zastavit ladění nebo v řádku nabídek zvolte Ladění>zastavit.
V okně konzoly vyberte libovolnou klávesu a zavřete okno konzoly.
Nastavení zarážky a spuštění ladicího programu
for
Ve smyčceMain
funkce nastavte zarážku kliknutím na levý okraj na následujícím řádku kódu:name += letters[i];
Tam, kde nastavíte zarážku, se zobrazí červené kolečko .
Zarážky jsou jednou z nejzásadnějších a základních funkcí spolehlivého ladění. Zarážka určuje, kde má Visual Studio spuštěný kód pozastavit, abyste mohli zkontrolovat hodnoty proměnných či chování paměti, nebo abyste zjistili, jestli se nějaká větev kódu spouští.
Stiskněte klávesu F5 nebo tlačítko Spustit ladění. Aplikace se spustí a ladicí program se spustí na řádek kódu, kde nastavíte zarážku.
Žlutá šipka představuje příkaz, na kterém ladicí program pozastavil, což také pozastaví provádění aplikace ve stejném okamžiku (tento příkaz ještě nebyl spuštěn).
Pokud aplikace ještě není spuštěná, F5 spustí ladicí program a zastaví se na prvním 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, které můžete nastavit, například podmíněné zarážky, najdete v tématu Použití zarážek.
for
Ve smyčceMain
funkce nastavte zarážku kliknutím na levý okraj na následujícím řádku kódu:name += letters[i];
Tam, kde nastavíte zarážku, se zobrazí červené kolečko.
Zarážky 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 klávesu F5 nebo na panelu nástrojů Standardní zvolíte tlačítko Ladit cíl, nebo na panelu nástrojů Ladění zvolíte tlačítko Spustit ladění nebo v řádku nabídek zvolíte> Tlačítko Spustit ladění. Aplikace se spustí a ladicí program se spustí na řádek kódu, kde nastavíte zarážku.
Ž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 spustí ladicí program, který aplikaci spustí, dokud nedosáhne první zarážky. 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
Většinou tady používáme klávesové zkratky, protože je to dobrý způsob, jak rychle spustit aplikaci v ladicím programu (ekvivalentní příkazy, jako jsou příkazy nabídky, se zobrazují v závorkách).
Zatímco provádění kódu je pozastaveno v
name += letters[i]
příkazu, najeďte myší naletters
proměnnou a uvidíte její výchozí hodnotu, hodnotu prvního prvku v poli,char[10]
.Funkce, které umožňují kontrolovat proměnné, jsou jednou z nejužitečnějších funkcí ladicího programu a existují různé způsoby, jak to udělat. 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.
letters
Rozbalením proměnné zobrazíte její vlastnosti, které zahrnují všechny prvky, které proměnná obsahuje.Dále najeďte myší na
name
proměnnou a zobrazí se její aktuální hodnota, prázdný řetězec.Dvakrát stiskněte klávesu F10 (nebo zvolte Krok ladění>) a přejděte na
SendMessage
volání metody a pak stiskněte F10 ještě jednou.F10 přepíná ladicí program na další příkaz bez krokování do funkcí nebo metod v kódu aplikace (kód se stále spouští). Stisknutím klávesy F10 na
SendMessage
volání metody jsme přeskočili kódSendMessage
implementace (což nás teď možná nezajímá).Několikrát stiskněte klávesu F10 (nebo Krok pro ladění>), abyste několikrát iterovala smyčkou
for
, znovu se přerušila na zarážce a pokaždé najeďte myší naname
proměnnou, abyste zkontrolovali její hodnotu.Hodnota proměnné se změní s každou iterací smyčky
for
, zobrazující hodnotyf
, pakfr
, a takfre
dále. Pokud chcete ladicí program v tomto scénáři urychlit, můžete místo dalšího příkazu stisknout klávesu F5 (nebo zvolit Pokračovat v ladění>). Tím přejdete na zarážku místo dalšího příkazu.Při ladění často chcete rychle zkontrolovat hodnoty vlastností u proměnných, abyste zjistili, jestli ukládají hodnoty, které očekáváte, že se mají ukládat, a tipy pro data jsou dobrým způsobem, jak to udělat.
Zatímco provádění kódu zůstane pozastaveno ve
for
smyčce vMain
metodě, stiskněte klávesu F11 (nebo zvolte Ladit > krok do), dokud se nepřesunete naSendMessage
volání metody.Měli byste být na tomto řádku kódu:
SendMessage(name, a[i]);
Stisknutím klávesy F11 postupně přejděte k
SendMessage
metodě.Žlutý ukazatel přejde do
SendMessage
metody.F11 je příkaz Krok do a postupně provede provádění aplikace jedním příkazem. F11 je dobrý způsob, jak prozkoumat tok provádění v nejpodrobnějších podrobnostech. Ladicí program ve výchozím nastavení přeskočí kód bez uživatele (pokud chcete další podrobnosti viz Pouze můj kód).
Řekněme, že jste dokončili zkoumání
SendMessage
metody a chcete se z metody dostat, ale zůstat v ladicím programu. Můžete to provést pomocí příkazu Krok ven .Stiskněte klávesu Shift + F11 (nebo krok odladit).>
Tento příkaz obnoví provádění aplikace (a posune ladicí program) až do vrácení aktuální metody nebo funkce.
Měli byste být zpět ve
for
smyčce vMain
metodě, pozastaveni přiSendMessage
volání metody. Další informace o různých způsobech procházení kódu najdete v tématu Navigace v ladicím programu.
Zatímco provádění kódu je pozastaveno v
name += letters[i]
příkazu, najeďte myší naletters
proměnnou, aby se zobrazil 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.
letters
Rozbalením proměnné zobrazíte všechny její prvky pole a jejich hodnoty.Najeďte myší na
name
proměnnou, aby se zobrazila její aktuální hodnota, což je prázdný řetězec.Pokud chcete ladicí program přejít na další příkaz, vyberte F10 nebo na panelu nástrojů Ladění zvolte tlačítko Krok přes nebo v řádku nabídek zvolte Krok pro ladění>. Výběrem klávesy F10 dvakrát více přesunete volání metody.
SendMessage
F10 přepíná ladicí program bez krokování do funkce 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
SendMessage
metodě, což nás teď nezajímá.Pokud chcete iterovat smyčku
for
několikrát, opakovaně vyberte klávesu F10 . Během každé iterace smyčky nastavte zarážku a najeďte myší naname
proměnnou, abyste zkontrolovali její hodnotu v datovém tipu.Hodnota proměnné se změní s každou iterací smyčky
for
, zobrazující hodnotyf
, pakfr
, a takfre
dále. Pokud chcete ladicí program urychlit, vyberte místo toho klávesu F5 , která místo dalšího příkazu přejde na zarážku.Zatímco provádění kódu je pozastaveno ve
for
smyčceMain
metody, vyberte F11 nebo zvolte tlačítko Krok do z panelu nástrojů Ladění nebo zvolte Ladit>krok do z řádku nabídek, dokud se nedostanete naSendMessage
volání metody.Ladicí program by se měl pozastavit na tomto řádku kódu:
SendMessage(name, a[i]);
Pokud chcete přejít k metodě, vyberte znovu klávesu
SendMessage
F11.Žlutý ukazatel přejde do
SendMessage
metody.F11 vám pomůže prozkoumat tok provádění kódu podrobněji. Pokud chcete přejít k metodě z volání metody, vyberte F11. Ve výchozím nastavení ladicí program přeskočí krokování do neuživatelových metod. Další informace o ladění neuživatele najdete v tématu Jen můj kód.
Jakmile dokončíte ladění
SendMessage
metody, můžete se vrátit kefor
smyčcemain
metody.Pokud chcete metodu
SendMessage
opustit, vyberte Shift+F11 nebo zvolte tlačítko Krok ven na panelu nástrojů Ladění nebo v řádku nabídek zvolte Ladit>krok ven.Krok Out obnoví provádění aplikace a posune ladicí program, dokud aktuální metoda nebo funkce nevrátí.
Ve smyčce
Main
metody se zobrazífor
žlutý ukazatel, pozastavený přiSendMessage
volání metody. Další informace o různých způsobech procházení kódu najdete v tématu Navigace v ladicím programu.
Navigace v kódu pomocí příkazu Spustit a kliknutí
Dalším přechodem na zarážku vyberte klávesu F5 .
V editoru kódu se posuňte dolů a najeďte myší na metodu
Console.WriteLine
SendMessage
v metodě, dokud se nezobrazí zelené tlačítkoSpustit na kliknutí. Popis tlačítka zobrazuje "Spustit spuštění sem".Poznámka:
Tlačítko Spustit po kliknutí je v sadě Visual Studio 2017 nové. (Pokud se tlačítko se zelenou šipkou nezobrazuje, použijte F11 v tomto příkladu místo toho, abyste ladicí program přešli na správné místo.)
Vyberte tlačítko Spustit a klikněte na tlačítko.
Ladicí program přejde na metodu
Console.WriteLine
.Použití tohoto tlačítka se podobá nastavení dočasné zarážky. Spustit a kliknout je užitečné, když se rychle dostanete do viditelné oblasti kódu aplikace (můžete vybrat v libovolném otevřeném souboru).
Dalším přechodem na zarážku vyberte klávesu F5 .
V editoru kódu najeďte myší na
Console.WriteLine
volání metody vSendMessage
metodě, dokud se nezobrazí tlačítko Spustit do kliknutí . Popis tlačítka zobrazuje "Spustit spuštění sem".Zvolte tlačítko Spustit pro kliknutí. Případně můžete stisknutím kurzoru
Console.WriteLine
na příkaz vybrat Kombinaci kláves Ctrl+F10. Nebo klikněte pravým tlačítkem myši naConsole.WriteLine
volání metody a v místní nabídce zvolte Spustit do kurzoru .Ladicí program přejde na
Console.WriteLine
volání metody.Použití tlačítka Spustit ke kliknutí se podobá nastavení dočasné zarážky a je užitečné se rychle pohybovat v viditelné oblasti kódu aplikace v otevřeném souboru.
Rychlé restartování aplikace
Na panelu nástrojů Ladění vyberte tlačítkoRestartovat (Ctrl + Shift + F5).
Když stisknete tlačítko Restartovat, ušetří se čas a zastaví se aplikace a restartuje ladicí program. Ladicí program se pozastaví na první zarážce, na které dojde spuštěním kódu.
Ladicí program se znovu zastaví na zarážce, kterou jste předtím nastavili uvnitř smyčky for
.
Pokud chcete aplikaci spustit znovu od začátku ladicího programu, vyberte Kombinaci kláves Ctrl+Shift+F5 nebo na panelu nástrojů Ladění zvolte tlačítko Restartovat nebo v řádku nabídek zvolte Restartovat ladění>.
Restartujte ladicí program a restartuje ho v jednom kroku. Když se ladicí program restartuje, spustí se na první zarážku, což je zarážka, kterou jste předtím nastavili uvnitř for
smyčky, a pak se pozastaví.
Kontrola proměnných pomocí oken Automatické hodnoty a Místní hodnoty
Podívejte se do okna Automatické položky v dolní části editoru kódu.
Pokud je zavřený, otevřete ho při pozastavení v ladicím programu tak, že zvolíte Ladit>>automatické windows.
V okně Automatické položky se zobrazí proměnné a jejich aktuální hodnota. V okně Automatické položky se zobrazí všechny proměnné použité na aktuálním řádku nebo na předchozím řádku (zkontrolujte chování specifické pro jazyk).
V dalším kroku se podívejte na okno Místní hodnoty na kartě vedle okna Automatické hodnoty.
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 oboru, tj. aktuální kontext spuštění.
Okna Automatické hodnoty a místní hodnoty zobrazují hodnoty proměnných při ladění. Okna jsou k dispozici pouze během ladicí relace. V okně Automatické položky se zobrazují 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.
Zatímco je ladicí program pozastavený, podívejte se do okna Automatické položky v dolní části editoru kódu.
Pokud je okno Automatické položky zavřené, vyberte Kombinaci kláves Ctrl+D, A nebo v řádku nabídek zvolte Ladit>>automatické okna.
Pokud je ladicí program stále pozastavený, zobrazte okno Místní hodnoty na kartě vedle okna Automatické.
Pokud je okno Místní hodnoty zavřené, vyberte Ctrl+D, L nebo zvolte Ladit>místní prostředí Windows.>
V okně Místní hodnoty rozbalte
letters
proměnnou, aby se zobrazily její prvky pole a jejich hodnoty.
Nastavení hodinek
V hlavním okně editoru kódu klikněte pravým tlačítkem myši na proměnnou name
a zvolte Přidat kukátko.
Okno Kukátko se otevře v dolní části editoru kódu. Okno Kukátko můžete použít k určení proměnné (nebo výrazu), na kterou chcete mít přehled.
Teď máte pro proměnnou nastavenou kukátku name
a při procházení ladicím programem uvidíte její změnu hodnoty. Na rozdíl od ostatních oken proměnných okno Kukátko vždy zobrazuje proměnné, které sledujete (jsou neaktivní, když jsou mimo rozsah).
Můžete zadat proměnnou nebo výraz, na který chcete při procházení kódu sledovat – přidáním do okna Kukátko .
Když je ladicí program pozastavený, klikněte pravým tlačítkem myši na
name
proměnnou a zvolte Přidat kukátku.Ve výchozím nastavení se otevře okno Kukátko v dolní části editoru kódu.
Teď, když jste nastavili sledování
name
proměnné, projděte si kód, abyste viděli hodnotuname
změny proměnné s každoufor
iterací smyčky.Na rozdíl od ostatních oken proměnných se v okně Kukátko vždy zobrazují proměnné, které sledujete. Proměnné, které jsou mimo rozsah, se zobrazují jako nedostupné.
Další informace o okně Kukátko najdete v tématu Sledování proměnných s okny kukátka.
Prozkoumání zásobníku volání
Zatímco provádění kódu je pozastaveno ve
for
smyčce, vyberte okno Zásobník volání, které je ve výchozím nastavení otevřené v pravém dolním podokně.Pokud je zavřený, otevřete ho při pozastavení v ladicím programu tak, že zvolíte Ladění>zásobníku volání systému Windows.>
Několikrát vyberte klávesu F11 , dokud se v
SendMessage
metodě nezobrazí pozastavení ladicího programu. Podívejte se do okna Zásobník volání.Okno Zásobník volání zobrazuje pořadí, ve kterém se volají metody a funkce. Horní řádek zobrazuje aktuální funkci (metodu
SendMessage
v této aplikaci). Druhý řádek ukazuje, žeSendMessage
byl volána zMain
metody atd.Poznámka:
Okno Zásobník volání je podobné perspektivě ladění v některých prostředích ID, 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, který také změní aktuální obor při kontrole ladicím programem. Tato akce nepřevádí ladicí program.
K dalším věcem můžete také použít nabídky po kliknutí pravým tlačítkem myši z okna Zásobník volání. Do zadaných funkcí můžete například vložit zarážky, přejít ladicí program pomocí příkazu Run to Cursor a prozkoumat zdrojový kód. Další informace naleznete v tématu Postupy: Prozkoumání zásobníku 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
for
smyčce, 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, C nebo zvolte Ladit>zásobník volání systému Windows>z řádku nabídek.
V okně Zásobník volání se u aktuální
Main
metody zobrazí žlutý ukazatel.Několikrát vyberte klávesu F11 , dokud se v
SendMessage
metodě nezobrazí pozastavení ladicího programu.Horní řádek okna Zásobník volání zobrazuje aktuální funkci, což je
SendMessage
metoda. Druhý řádek ukazuje, žeSendMessage
metoda byla volána zMain
metody.Poznámka:
Okno Zásobník volání je podobné perspektivě ladění v některých prostředích ID, jako je Eclipse.
V okně Zásobník volání můžete poklikáním na řádek kódu přejít do tohoto zdrojového kódu, který změní aktuální obor v rámci kontroly ladicím programem. Tato akce nepřevádí ladicí program.
K dalším věcem můžete také použít nabídky po kliknutí pravým tlačítkem myši z okna Zásobník volání. Do zadaných funkcí můžete například vložit zarážky, převést ladicí program pomocí příkazu Spustit na kurzor nebo 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í.
Změna toku provádění
Stisknutím klávesy F11 spusťte metodu
Console.WriteLine
dvakrát.S ladicí program pozastavený ve
SendMessage
volání metody, pomocí myši uchopte žlutou šipku nebo ukazatel provádění (v levém okraji) a přetáhněte ukazatel nahoru o jeden řádek naConsole.WriteLine
příkaz.Stiskněte klávesu F11.
Ladicí program znovu spustí metodu
Console.WriteLine
(tuto akci uvidíte ve výstupu okna konzoly).Změnou toku provádění můžete provádět například testování různých cest spuštění kódu nebo opětovné spuštění kódu bez restartování ladicího programu.
Upozorňující
U této funkce často musíte být opatrní a v popisu se zobrazí 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!
Ukazatel provádění můžete při ladění přesunout a změnit tok aplikace.
Když je ladicí program pozastavený při
SendMessage
volání metody vefor
smyčce, vyberte F11 třikrát, aby se krok doSendMessage
metody a po jeho provedení přesunula za metoduConsole.WriteLine
.Ladicí program je nyní pozastavený na poslední pravou složenou závorku
SendMessage
metody.Pomocí myši uchopte žlutou šipku nebo ukazatel provádění (na levém okraji) a přetáhněte ukazatel nahoru o jeden řádek.
Ladicí program je teď zpátky v
Console.WriteLine
příkazu.Vyberte F11.
Ladicí program znovu spustí metodu
Console.WriteLine
a ve výstupu okna konzoly se zobrazí duplicitní řádek.Výběrem klávesy F5 pokračujte ve spuštění aplikace.
Změnou toku provádění můžete provádět například testování různých cest spuštění kódu nebo opětovné spuštění kódu bez restartování ladicího programu.
Upozorňující
Tuto funkci používejte opatrně. V popisu ukazatele provádění se zobrazí upozornění na možnost nezamýšlených důsledků. Může se zobrazit i další upozornění. Přesunutí ukazatele provádění nemůže vrátit aplikaci do dřívějšího stavu.
Další informace o změně toku provádění najdete v tématu Přesunutí ukazatele na změnu toku provádění.
Blahopřejeme k dokončení tohoto kurzu!
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.