Cvičení – nastavení zarážek
Zarážky se používají během provádění pozastavení procesu ladění. To vám umožní sledovat proměnné a zkoumat posloupnost, ve které se kód spouští. Zarážky představují skvělý způsob, jak spustit proces ladění.
Nastavte zarážku
Dříve v tomto modulu jste dokončili cvičení, ve kterém jste spustili aplikaci v prostředí ladicího programu. Aplikace na panelu KONZOLY LADĚNÍ zobrazila pozdravné zprávy. Na konci cvičení jste si všimli, že kód opakuje Andrewovo pozdrav neočekávaným způsobem.
V tomto cvičení použijete bod přerušení, který vám pomůže identifikovat problém.
Ujistěte se, že soubor Program.cs obsahuje následující vzorový kód:
/* This code uses a names array and corresponding methods to display greeting messages */ string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" }; string messageText = ""; foreach (string name in names) { if (name == "Sophia") messageText = SophiaMessage(); else if (name == "Andrew") messageText = AndrewMessage(); else if (name == "AllGreetings") messageText = SophiaMessage(); messageText = messageText + "\n\r" + AndrewMessage(); Console.WriteLine(messageText + "\n\r"); } bool pauseCode = true; while (pauseCode == true); static string SophiaMessage() { return "Hello, my name is Sophia."; } static string AndrewMessage() { return "Hi, my name is Andrew. Good to meet you."; }Pomocí ladicích nástrojů Visual Studio Code nastavte bod přerušení na prvním řádku kódu uvnitř smyčky
foreach.
Návod
Jednou ze snadných možností, jak zapnout nebo vypnout zarážku, je levým kliknutím vybrat oblast vlevo od čísla řádku. Přerušovací body lze nastavit také pomocí nabídky
Runa klávesových zkratek.V nabídce Spustit vyberte Spustit ladění.
Všimněte si, že spuštění kódu se pozastaví na bodu přerušení a že aktuální řádek kódu je zvýrazněný v editoru.
Na panelu nástrojů Ovládací prvky ladění vyberte Krok do.
Najetím ukazatele myši na tlačítka na panelu nástrojů Ovládací prvky ladění můžete zobrazit popisky tlačítek.
Všimněte si, že provádění kódu přejde na následující řádek kódu a pozastaví se:
messageText = SophiaMessage();Řádek kódu přiřadí návratovou hodnotu metody
SophiaMessageřetězcové proměnnémessageText.Chvíli zvažte, proč výběr Step Into způsobil tento výsledek.
- Tlačítko Krok do slouží k přechod na další spustitelný příkaz.
- Vzhledem k tomu, že první prvek v
namespoli jeSophiaaifpříkaz kontroluje názevSophia, výraz se vyhodnotí jakotruea provádění kódu se přesune do blokuifkódu příkazu.
Na panelu nástrojů Ovládací prvky ladění vyberte Krok do.
Všimněte si, že provádění kódu přejde na metodu
SophiaMessagea pozastaví se.Tlačítko Krok do je rozšířené na další řádek spustitelného kódu. Další řádek spustitelného kódu není číslo dalšího řádku v souboru, jedná se o další příkaz v cestě spuštění. V tomto případě je další spustitelný příkaz vstupním bodem metody
SophiaMessage.Na panelu nástrojů Ovládací prvky ladění vyberte Krok ven.
Všimněte si, že provádění kódu se vrátí na řádek kódu, který volal metodu
SophiaMessagea pozastaví se.Chvíli zvažte, proč výběr Step Out způsobil tento výsledek.
Pokud se nacházíte v metodě, tlačítko Krok ven dokončí provedení zbývajících řádků aktuální metody a poté se vrátí do kontextu provádění, který metodu vyvolal.
Na panelu nástrojů Ovládací prvky ladění vyberte Krok do.
Všimněte si, že provádění kódu přejde na následující řádek kódu a pozastaví se:
messageText = messageText + "\n\r" + AndrewMessage();Věnujte chvíli zamyšlení nad tím, proč se provádění dostalo k tomuto řádku kódu.
Ačkoli odsazení kódu naznačuje, že tento řádek kódu je součástí bloku kódu pro
else ifpříkaz, není tomu tak. Použití složených závorek{}k definování bloků kódu pro tutoif - else ifstrukturu by pomohlo vyhnout se této chybě. Jakmile je kód napsán, Andrewova zpráva bude přidána domessageTextpokaždé, když smyčka iteruje.
Ověření aktualizací kódu
Jakmile v kódu izolujete problém, měli byste kód aktualizovat a ověřit, že je problém opravený.
Na panelu nástrojů Ovládací prvky ladění klikněte na Zastavit.
Oprava logiky kódu chvíli trvá.
Máte několik možností pro opravu zjištěného problému v kódu. Například:
Můžete zachovat existující řádky kódu a přidat složené závorky
{}doifstruktury pro každý blok kódu.Můžete sloučit dva řádky kódu, které následují za posledním
else ifpříkazem, a vytvořit jeden příkaz následujícím způsobem:else if (name == "AllGreetings") messageText = SophiaMessage() + "\n\r" + AndrewMessage();
V každém případě musí aktualizovaný kód obsahovat volání
AndrewMessagev bloku kódu, kdyžname == "AllGreetings".V nabídce Soubor vyberte Uložit.
Pomocí nástrojů uživatelského rozhraní ladicího programu vymažte zarážku, kterou jste nastavili dříve.
V nabídce Spustit vyberte Spustit ladění.
Ověřte, že váš kód teď generuje očekávané výsledky.
Hello, my name is Sophia. Hi, my name is Andrew. Good to meet you. Hello, my name is Sophia. Hi, my name is Andrew. Good to meet you.Na panelu nástrojů Ovládací prvky ladění klikněte na Zastavit.
Gratulujeme! Úspěšně jste použili ladicí program v editoru Visual Studio Code, který vám pomohl izolovat a opravit problém s logikou.
Rekapitulace
Tady je několik důležitých věcí, které je potřeba si z této lekce zapamatovat:
- Body přerušení slouží k pozastavení provádění kódu během ladicí relace.
- Pomocí Krokovat dovnitř na panelu nástrojů Ovládací prvky ladění můžete sledovat další řádek spustitelného kódu.
- Použijte Krok ven z panelu nástrojů Ovládací prvky ladění k postupování aktuální metodou a návratu na řádek kódu, který volal metodu.