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. 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í. Cestu spuštění kódu můžete prozkoumat a zjistit, jestli je spuštěná větev kódu.
Pokud se tento článek poprvé pokusíte ladit kód, přečtěte si téma Ladění pro absolutní začátečníky. Pokud chcete zobrazit funkce ladicího programu na vyšší úrovni, podívejte se na přehled ladicího programu sady Visual Studio.
I když je ukázková aplikace C#, většina funkcí se vztahuje na 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 Autos. 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 nainstalovanou sadu Visual Studio a úlohu vývoje desktopových aplikací .NET .
Pokud potřebujete nainstalovat Visual Studio, získejte ho zdarma při stahování sady Visual Studio.
Pokud už sadu Visual Studio máte, ale úloha vývoje desktopových aplikací .NET není nainstalovaná, přejděte do části Nástroje>Získat nástroje a funkce.... V instalačním programu sady Visual Studio zvolte úlohu vývoje desktopových aplikací .NET a pak zvolte Upravit.
Vytvoření projektu
Nejprve vytvořte projekt konzolové aplikace C#/.NET. Šablona projektu obsahuje všechny soubory, které potřebujete, 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 se ujistěte, že je v rozevírací nabídce Rozhranívybraná možnost .NET 10.0 a pak vyberte Vytvořit.
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 tento článek používá klávesové zkratky. Je to rychlý způsob, jak spouštět příkazy ladicího programu. K dispozici jsou také ekvivalentní příkazy, například 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. Od té doby, co jste začali ladit, aplikace běží až do 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. Můžete se 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 se pozastaví ve stejném bodě 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 pokračuje ve spuštění aplikace, 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í správného typu zarážky.
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 jste vynechali ladění kódu v
SendMessagemetodě, což teď není relevantní.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čkyforv metoděmain.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 Spustit kliknutím na se podobá nastavení dočasné zarážky. Tento přístup je užitečný pro rychlé seznámení s viditelnou oblastí kódu vaší 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, L nebo zvolte Ladit>Windows>Locals.
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 a návratových hodnot.
Ustanovit hlídku
Můžete zadat proměnnou nebo výraz, který chcete sledovat při procházení kódem, přidáním 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í.Ve výchozím nastavení se otevře okno Kukátko v dolní části editoru kódu.
Jakmile nastavíte sledování na
nameproměnné, projděte si kód, abyste viděli, jak se hodnotanameproměnné mění s každouforiterací smyčky.Na rozdíl od ostatních oken proměnných okno 'Watch' vždy zobrazuje proměnné, které sledujete. Proměnné, které jsou mimo rozsah, se zobrazují jako nedostupné.
Další informace o okně sledování najdete v tématu Sledování proměnných pomocí oken sledování.
Prozkoumejte zásobník volání
Zásobník volání vám může pomoct pochopit tok provádění vaší aplikace. Zobrazuje 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 pomocí pravého tlačítka myši použít nabídky k dalším činnostem. 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 Zobrazení zásobníku volání.
Další krok
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.