První seznámení s ladicím programem sady Visual Studio
Toto téma představuje nástroje ladicího programu poskytované sadou Visual Studio. V kontextu sady Visual Studio, když provádíte ladění aplikace, obvykle to znamená, že spouštíte aplikaci s připojeným ladicím programem (to znamená v ladicím režimu). Když to uděláte, ladicí program nabízí mnoho způsobů, jak zjistit, co váš kód dělá během jeho běhu. 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 a podobně. Pokud se jedná o první pokus o ladění kódu, možná budete chtít přečíst ladění pro absolutní začátečníky předtím, než se pustíte do tohoto tématu. Pokud se pokoušíte provést konkrétní úlohu a potřebujete vědět, jakou funkci použít, podívejte se na vyhledávač funkcí ladicího programu. Pokud chcete vyzkoušet ladění s asistencí umělé inteligence, podívejte se na Ladění s Copilotem.
Funkce popsané zde platí pro C#, C++, Visual Basic, JavaScript a další jazyky podporované sadou Visual Studio (s výjimkou případů, kdy je uvedeno).
Nastavení zarážky a spuštění ladicího programu
Zarážky jsou užitečnou funkcí, když znáte řádek kódu nebo oddíl kódu, který chcete podrobně prozkoumat za běhu. Další informace o různých typech zarážek, jako jsou podmíněné zarážky a zarážky funkcí, najdete v tématu Použití zarážek.
K ladění je potřeba spustit aplikaci pomocí ladicího programu připojeného k procesu aplikace. Postup:
- Stiskněte F5 (Debug > Spustit ladění), což je nejběžnější metoda.
V tuto chvíli ale možná nemáte nastavené žádné zarážky k prozkoumání kódu vaší aplikace, proto je nejprve nastavíme a poté spustíme ladění. Breakpointy jsou nejzákladnější a nejdůležitější funkcí spolehlivého ladění. Zarážka označuje, kde má Visual Studio pozastavit spuštěný kód, abyste se mohli podívat na hodnoty proměnných, chování paměti nebo jestli se spouští větev kódu.
Pokud máte otevřený soubor v editoru kódu, můžete nastavit zarážku kliknutím na okraj vlevo od řádku kódu.
Stiskněte F5 (Ladění > Spustit ladění) nebo tlačítko Spustit ladění na panelu nástrojů ladění a ladicí program pokračuje až k první zarážce, na kterou narazí. Pokud aplikace ještě není spuštěná, F5 spustí ladicí program a zastaví se na prvním bodu přerušení.
Navigujte v ladicím programu pomocí jednokrokových příkazů
Pro většinu příkazů poskytujeme klávesové zkratky, protože usnadňují navigaci v kódu vaší aplikace. (Ekvivalentní příkazy, jako jsou příkazy nabídky, se zobrazují v závorkách.) Další podrobnosti o použití příkazů kroku naleznete v tématu Procházení kódu v ladicím programu.
Pokud chcete spustit aplikaci s připojeným ladicím programem, stiskněte F11 (Ladění > krok do). F11 je příkaz Krok do a postupně provede provádění aplikace jedním příkazem. Když spustíte aplikaci pomocí klávesy F11, ladicí program se přeruší u prvního příkazu, který se spustí.
Žlutá šipka představuje příkaz, na kterém se ladicí program zastavil, což také pozastaví provádění aplikace ve stejném okamžiku (tento příkaz dosud nebyl proveden).
F11 je dobrý způsob, jak prozkoumat tok provádění v nejpodrobnějších podrobnostech. (Abychom mohli procházet kód rychleji, ukážeme vám i některé další možnosti.) Ve výchozím nastavení ladicí program přeskočí kód bez uživatele (pokud chcete další podrobnosti, přečtěte si Pouze můj kód).
Poznámka
Ve spravovaném kódu se zobrazí dialogové okno s dotazem, jestli chcete být upozorněni při automatickém procházení vlastností a operátorů (výchozí chování). Pokud chcete nastavení později změnit, zakažte nastavení Krok přes vlastnosti a operátory v nabídce Nástroje > Možnosti v části Ladění.
Krokování kódu pro přeskočení funkcí
Když jste na řádku kódu, který volá funkci nebo metodu, můžete místo F11 stisknout F10 (Debug > Step Over).
F10 posune ladicí program kupředu bez vstupu do funkcí nebo metod v kódu aplikace (kód se stále spouští). Stisknutím klávesy F10 můžete přeskočit kód, který vás nezajímá. Tímto způsobem se můžete rychle dostat k kódu, který vás zajímá více. Další podrobnosti o použití krokovacích příkazů viz téma Procházení kódu v ladicím programu.
Rychlé přecházení na bod v kódu pomocí myši
Použití tlačítka Spustit kliknutím na se podobá nastavení dočasné zarážky. Tento příkaz je také užitečný k rychlému seznámení s viditelnou oblastí kódu aplikace. Pomocí Spustit můžete kliknout na v libovolném otevřeném souboru. Další podrobnosti o této funkci a podobných navigačních funkcích najdete v tématu Spuštění do konkrétního umístění v kódu.
V ladicím programu najeďte myší na řádek kódu, dokud se vlevo nezobrazí tlačítko Spustit na Kliknutí (Spustit provedení sem)
Poznámka
Tlačítko Spustit kliknutím (spustit provádění sem) je k dispozici od verze Visual Studio 2017.
Klikněte na tlačítko Spustit a klikněte na tlačítko (spuštění sem). Ladicí program se posune na řádek kódu, na který jste klikli.
Posunout ladicí program mimo aktuální funkci
Někdy můžete chtít pokračovat v ladicí relaci, ale projet ladicí program celou aktuální funkcí.
Stiskněte Shift + F11 (nebo ladění > Krokovat ven).
Tento příkaz obnoví provádění aplikace (a posune ladicí program), dokud se aktuální funkce nevrátí.
Spustit na kurzor
Při úpravě kódu (místo pozastavení v ladicím programu) klikněte pravým tlačítkem myši na řádek kódu v aplikaci a zvolte Spustit do kurzoru (nebo stiskněte Ctrl + F10). Tento příkaz spustí ladění a nastaví dočasný bod přerušení na aktuálním řádku kódu. Další podrobnosti o této funkci a podobných navigačních funkcích najdete v tématu Spuštění do konkrétního umístění v kódu.
Pokud jste nastavili body přerušení, ladicí program se pozastaví na prvním bodě přerušení, který dosáhne.
Stiskněte F5, dokud se nedostanete na řádek kódu, ve kterém jste vybrali Spustit na kurzor.
Tento příkaz je užitečný při úpravách kódu a chcete rychle nastavit dočasnou zarážku a spustit ladicí program najednou.
Poznámka
Při ladění můžete použít Spustit na kurzor v okně zásobníku volání.
Rychlé restartování aplikace
Klikněte na tlačítko Restartovat na panelu nástrojů Ladění (nebo stiskněte Ctrl + Shift + F5).
Když stisknete Restartovat, ušetříte čas oproti zastavení aplikace a opětovnému spuště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.
Pokud chcete zastavit ladicí program a vrátit se zpět do editoru kódu, můžete stisknout červené tlačítko zastavení místo Restartovat.
Úpravy živého kódu
Visual Studio 2022 podporuje úpravy kódu v reálném čase při ladění. Podrobné informace najdete tady:
Upravte kód a pokračujte v ladění (C#, VB, C++, XAML)
Ve většině jazyků podporovaných sadou Visual Studio můžete upravit kód během ladicí relace a pokračovat v ladění. Pokud chcete tuto funkci použít, klikněte do kódu s kurzorem, když máte ladicí program pozastavený, proveďte úpravy a stiskněte F5, F10nebo F11, abyste pokračovali v ladění. Další informace o používání této funkce a o omezení této funkce najdete v tématu Upravit a pokračovat.
EditAndContinue
Pokud chcete upravit kód XAML během ladicí relace, přečtěte si téma Zápis a ladění spuštěného kódu XAML pomocí Opětovného načítání XAML.
Prohlížení proměnných pomocí datových tipů
Teď, když už se trochu orientujete, máte dobrou příležitost začít zkoumat stav aplikace (proměnné) pomocí ladicího programu. Funkce, které umožňují zkontrolovat proměnné, jsou některé 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, že budou mít v určitém stavu aplikace. Podrobné informace o používání datových tipů najdete v tématu Zobrazení hodnot dat v datových tipech.
Během pozastavení ladicího programu najeďte myší na objekt a uvidíte jeho hodnotu nebo výchozí hodnotu vlastnosti.
Pokud má proměnná vlastnosti, můžete objekt rozbalit, aby se zobrazily všechny jeho vlastnosti.
Při ladění často chcete rychle zkontrolovat hodnoty vlastností u objektů a tipy k datům jsou dobrým způsobem, jak to udělat.
Kontrola proměnných pomocí oken Automatické hodnoty a Místní hodnoty
V okně Autos uvidíte proměnné spolu s jejich aktuální hodnotou a jejich typem. Okno Automatické zobrazuje všechny proměnné použité na aktuálním řádku nebo na předchozím řádku. V jazyce C++ se v okně zobrazují proměnné v předchozích třech řádcích kódu. Podívejte se do dokumentace pro chování specifické pro jednotlivé jazyky. Další informace o použití těchto oken naleznete v tématu Kontrola proměnných v oknech Automatické a Místní proměnné.
Při ladění se podívejte na okno Autos v dolní části editoru kódu.
okno automobilu
okno automobilu
Poznámka
V JavaScriptu je okno Místní podporováno, ale okno Automatické není.
Dále se podívejte na okno Místní hodnoty. V okně Locals se zobrazí proměnné, které jsou právě v dosahu.
V tomto příkladu jsou objekt this
a objekt f
v oboru. Další informace naleznete v tématu Kontrola proměnných v oknech Automatické a Místní.
Zobrazení návratových hodnot volání metody
V kódu .NET a C++ můžete zkoumat návratové hodnoty v okně Automatické při procházení nebo od volání metody, což může být užitečné, když návratová hodnota není uložena v místní proměnné. Další informace naleznete v tématu Zobrazit návratové hodnoty volání metody.
Počínaje verzí Visual Studio 2022 17.12 Preview 3 můžete zobrazit také návratové hodnoty volání metod přímo a nejen v okně Automaticky.
Pokud je funkce Copilot povolená, můžete také získat cílenou pomoc související s vloženou návratovou hodnotou pomocí tlačítka Zeptat se copilotu, které se zobrazí v datovém tipu pro návratovou hodnotu.
Nastavení hodinek
Pomocí okna Kukátko můžete zadat proměnnou (nebo výraz), na kterou chcete mít přehled. Podrobné informace najdete v tématu Nastavení sledování pomocí sledování a rychlého prohlížení oken.
Při ladění klikněte pravým tlačítkem myši na objekt a zvolte Přidat sledování.
V tomto příkladu máte na objektu nastavené hodinky a při pohybu ladicím programem uvidíte změnu jejich hodnoty. Na rozdíl od ostatních oken proměnných okna sledovací vždy zobrazují proměnné, které sledujete (jsou zašedlé, když jsou mimo rozsah).
Prozkoumejte 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. Druhý řádek zobrazuje funkci nebo vlastnost, ze které byla volána, a tak dále. Zásobník volání je dobrý způsob, jak prozkoumat a pochopit tok provádění aplikace. Více informací najdete v části Postupy: Prozkoumání zásobníku volání.
Poznámka
Okno Zásobník volání je podobné perspektivě ladění v některých prostředích ID, jako je Eclipse.
Klikněte na okno Zásobník volání během ladění; ve výchozím nastavení je otevřené v pravém dolním podokně.
Poklikáním na řádek zdrojového kódu se můžete podívat na tento kód a tím se také změní aktuální obor, který je kontrolován ladicím programem. Tím se ladicí program neposouvá vpřed.
V okně Zásobník volání můžete také použít nabídky pravým tlačítkem myši. Můžete například vložit zarážky do konkrétních funkcí, restartovat aplikaci pomocí Spustit na kurzora prozkoumat zdrojový kód.
Kontrola výjimky
Když vaše aplikace vyvolá výjimku, ladicí program vás přenese na řádek kódu, který výjimku vyvolal. Pro více informací, podívejte se na Prohlédnutí výjimky s pomocí nástroje pro správu výjimek.
V tomto příkladu pomocník výjimky zobrazí výjimku System.NullReferenceException
a chybovou zprávu s informací, že odkaz na objekt není nastaven na instanci objektu. A říká nám, že hodnota řetězce byla null, když jste se pokusili volat metodu Trim
.
V tomto příkladu Pomocníka výjimky ukazuje výjimku System.Argument
a chybovou zprávu, která říká, že cesta nemá správný formát. Víme tedy, že k chybě došlo u argumentu metody nebo funkce.
V tomto příkladu volání DirectoryInfo
zobrazilo chybu u prázdného řetězce uloženého v proměnné value
.
Pomocník pro výjimky je skvělá funkce, která vám může pomoci při ladění chyb. Můžete také například zobrazit podrobnosti o chybě a přidat sledování z Pomocníka výjimek. Nebo v případě potřeby můžete změnit podmínky pro vyvolání konkrétní výjimky. Další informace o zpracování výjimek v kódu naleznete v tématu Techniky ladění a nástroje.
Rozbalte uzel Nastavení výjimek, abyste viděli další možnosti, jak tento typ výjimky zpracovat, ale během této prohlídky nemusíte nic měnit.
Spropitné
Pokud máte Copilot , můžete získat pomoc umělé inteligence při ladění výjimek. Jednoduše vyhledejte Zeptat se Copilotu tlačítko. Další informace naleznete v části Ladění s Copilotem.
Získání pomoci s AI
Pokud máte Copilot , můžete získat pomoc umělé inteligence při ladění. Další informace naleznete v části Ladění s Copilotem. Při ladění můžete také vyhledat tlačítko Zeptat se Copilota tlačítko. V těchto scénářích už Copilot zná kontext vašich otázek, takže v chatu Copilot nemusíte zadávat kontext sami.
Konfigurace ladění
Projekt můžete nakonfigurovat tak, aby se sestavil jako konfigurace ladění nebo vydané verze, nakonfigurovat vlastnosti projektu pro ladění nebo nakonfigurovat obecná nastavení pro ladění. Kromě toho můžete ladicí program nakonfigurovat tak, aby zobrazoval vlastní informace pomocí funkcí, jako je DebuggerDisplay atribut nebo, pro C/C++, rozhraní NatVis.
Vlastnosti ladění jsou specifické pro každý typ projektu. Můžete například zadat argument, který se má předat aplikaci při spuštění. K vlastnostem specifickým pro projekt se dostanete tak, že kliknete pravým tlačítkem na projekt v Průzkumníku řešení a vyberete Vlastnosti. Vlastnosti ladění se obvykle zobrazují na kartě Sestavení nebo Ladění v závislosti na konkrétním typu projektu.
Od sady Visual Studio 2022 poskytuje karta Ladění pro projekty .NET odkaz na uživatelské rozhraní spouštěcích profilů ladění, kde můžete nastavit vlastnosti související s laděním.
Ladění živých aplikací ASP.NET ve službě Azure App Service
Ladění ve službě Azure App Service najdete v tématu Ladění aplikací Azure.
Pro Visual Studio Enterprise (pouze) Snapshot Debugger pořídí snímek, když se ve vašich aplikacích v produkčním prostředí spustí kód, který vás zajímá. Chcete-li ladicímu programu dát pokyn, aby pořídil snímek, nastavte v kódu snímkové body a protokolovací body. Debugger vám umožní přesně zjistit, co se nepovedlo, bez dopadu na provoz vaší produkční aplikace. Snapshot Debugger vám může pomoct výrazně zkrátit dobu potřebnou k vyřešení problémů, ke kterým dochází v produkčních prostředích.
Kolekce snímků je dostupná pro ASP.NET aplikace spuštěné ve službě Azure App Service. ASP.NET aplikace musí běžet v rozhraní .NET Framework 4.6.1 nebo novějším a aplikace ASP.NET Core musí běžet v .NET Core 2.0 nebo novějším ve Windows.
Další informace najdete v tématu Ladění živých ASP.NET aplikací pomocí nástroje Snapshot Debugger.
Zobrazit snímky pomocí IntelliTrace krok zpět (Visual Studio Enterprise)
IntelliTrace krok zpět automaticky pořídí snímek aplikace při každé události zarážky a kroku ladicího programu. Zaznamenané snímky vám umožňují vrátit se k předchozím kontrolním bodům nebo krokům a zobrazit stav aplikace, jaký byl v minulosti. Krok zpět IntelliTrace vám může ušetřit čas, když chcete zobrazit předchozí stav aplikace, ale nechcete restartovat ladění nebo znovu vytvořit požadovaný stav aplikace.
Snímky můžete procházet a zobrazovat pomocí tlačítek Krok zpět a Krok vpřed na panelu nástrojů Ladění. Tato tlačítka slouží k navigaci událostí, které se zobrazí na kartě Události v okně Diagnostické nástroje.
tlačítka
Další informace najdete na stránce Kontrola předchozích stavů aplikace pomocí nástroje IntelliTrace.
Ladění problémů s výkonem
Pokud vaše aplikace běží příliš pomalu nebo používá příliš mnoho paměti, možná budete muset otestovat aplikaci pomocí nástrojů pro profilaci v rané fázi. Další informace o nástrojích profilace, jako je nástroj Využití procesoru a Analyzátor paměti, najdete v tématu První seznámení s nástroji profilace.
Související obsah
V tomto tutoriálu jste letmo nahlédli na řadu funkcí ladicího programu. Můžete se podrobněji podívat na jednu z těchto funkcí, jako jsou body přerušení.