První seznámení s ladicím programem sady Visual Studio
Toto téma představuje nástroje ladicího programu poskytované sadou Visual Studio. Při ladění aplikace v kontextu sady Visual Studio obvykle znamená, že aplikaci spouštíte s připojeným ladicím programem (to znamená v režimu ladicího programu). Když to uděláte, ladicí program nabízí 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 a podobně. Pokud se jedná o první pokus o ladění kódu, můžete si před procházením tohoto tématu přečíst ladění pro absolutní začátečníky . Pokud se pokoušíte provést konkrétní úlohu a potřebujete vědět, jakou funkci použít, přečtěte si téma Vyhledávání funkcí ladicího programu. Pokud chcete vyzkoušet ladění s asistencí umělé inteligence, přečtěte si téma Ladění pomocí Copilotu.
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. Akce:
- Stiskněte klávesu F5 (>Ladění spustit ladění), což je nejběžnější metoda.
V tuto chvíli ale možná nemáte nastavené žádné zarážky pro prozkoumání kódu aplikace, takže to nejprve provedeme a pak spustíme ladění. Zarážky jsou nejzákladnějším rysem 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í.
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 klávesu F5 (>Spustit ladění) nebo tlačítko Spustit ladění na panelu nástrojů Ladění a ladicí program se spustí na první zarážce, na kterou narazí. Pokud aplikace ještě není spuštěná, F5 spustí ladicí program a zastaví se na první zarážce.
Navigace v ladicím programu pomocí příkazů kroku
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 najdete v tématu Navigace v ladicím programu.
Pokud chcete spustit aplikaci s připojeným ladicím programem, stiskněte klávesu F11 (Krok ladění>). 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 ladicí program pozastavil, což také pozastaví provádění aplikace ve stejném okamžiku (tento příkaz ještě nebyl spuštěn).
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, který není uživatelem (pokud chcete další podrobnosti, viz Jen 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, v nabídce Možnosti nástrojů v části Ladění zakažte nastavení Krok přes vlastnosti a operátory.>
Krokování kódu pro přeskočení funkcí
Pokud jste na řádku kódu, který je volání funkce nebo metody, můžete místo F11 stisknout klávesu F10 (Debug > Step Over).
F10 přejde do ladicího programu bez krokování 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í příkazů kroku najdete v tématu Navigace v ladicím programu.
Rychlé spuštění do bodu v kódu pomocí myši
Použití tlačítka Spustit ke kliknutí 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. Příkaz Spustit můžete použít k kliknutí 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 na levé straně nezobrazí tlačítko Spustit a kliknout na tlačítko Spustit a kliknout (spustit sem).
Poznámka:
Tlačítko Spustit do kliknutí (spustit odsud) je k dispozici od sady Visual Studio 2017.
Klikněte na tlačítko Spustit a klikněte na tlačítko (Spustit spuštění sem). Ladicí program přejde na řádek kódu, na který jste klikli.
Využít ladicí program mimo aktuální funkci
Někdy můžete chtít pokračovat v ladicím relaci, ale pokračovat v ladicím programu až po aktuální funkci.
Stiskněte Shift+F11 (nebo krok odladit>).
Tento příkaz obnoví provádění aplikace (a posune ladicí program), dokud 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časnou zarážku 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 zarážky, ladicí program se pozastaví na první zarážce, kterou dosáhne.
Opakovaně stiskněte klávesu 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 v okně zásobníku volání použít příkaz Spustit k kurzoru.
Rychlé restartování aplikace
Klikněte na tlačítko Restartovat na panelu nástrojů Ladění (nebo stiskněte kombinaci kláves 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.
Pokud chcete ladicí program zastavit a vrátit se zpět do editoru kódu, můžete místo restartování stisknout červené tlačítko zastavení.
Úpravy živého kódu
Visual Studio 2022 podporuje úpravy živého kódu při ladění. Další informace najdete zde:
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 uprostřed ladicí relace a pokračovat v ladění. Pokud chcete tuto funkci použít, klikněte na svůj kód s kurzorem, když je v ladicím programu pozastavený, upravte ho, stiskněte klávesu F5, F10 nebo F11 a pokračujte v ladění. Další informace o používání této funkce a omezení funkcí najdete v tématu Upravit a pokračovat.
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é načítání za provozu XAML.
Kontrola proměnných pomocí tipů pro data
Teď, když už trochu víte, máte dobrou příležitost začít kontrolovat 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.
Při pozastavení v ladicím 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ě Automatické položky uvidíte proměnné spolu s jejich aktuální hodnotou a jejich typem. V okně Automatické položky se zobrazí všechny proměnné použité na aktuálním řádku nebo na předchozím řádku (V jazyce C++se v okně zobrazí proměnné v předchozích třech řádcích kódu. Projděte si dokumentaci k chování specifickému pro jazyk. Další informace o používání těchto oken najdete v tématu Kontrola proměnných v oknech Automatické hodnoty a Místní hodnoty.
Při ladění se podívejte na okno Automatické položky v dolní části editoru kódu.
Poznámka:
V JavaScriptu se okno Místní hodnoty podporuje, ale ne okno Automatické hodnoty .
Pak se podívejte do okna Místní hodnoty . V okně Místní hodnoty se zobrazí proměnné, které jsou aktuálně v oboru.
V tomto příkladu this
je objekt a objekt f
v oboru. Další informace najdete v tématu Kontrola proměnných v systému Windows automatické a místní hodnoty.
Zobrazení návratových hodnot volání metody
V kódu .NET a C++ můžete zkontrolovat návratové hodnoty v okně Automatické položky při procházení nebo z 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 Zobrazení návratových hodnot volání metody.
Počínaje sadou Visual Studio 2022 verze 17.12 Preview 3 můžete zobrazit také návratové hodnoty volání metody vložené a ne jenom v okně Automatické.
Nastavení hodinek
Okno Kukátko můžete použít k určení proměnné (nebo výrazu), na kterou chcete mít přehled. Podrobné informace naleznete v tématu Nastavení kukátku pomocí kukátku a rychlého kukátku Windows.
Při ladění klikněte pravým tlačítkem na objekt a zvolte Přidat kukátku.
V tomto příkladu máte na objektu nastavenou kukátku a při procházení ladicím programem uvidíte její změnu hodnoty. Na rozdíl od ostatních oken proměnných okna kukátku vždy zobrazují proměnné, které sledujete (jsou neaktivní, když jsou mimo rozsah).
Prozkoumání zásobníku volání
Okno Zásobník volání zobrazuje pořadí, ve kterém se volají metody a funkce. 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. Podrobné informace najdete v tématu 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.
Při ladění klikněte na okno Zásobník volání, které je ve výchozím nastavení otevřené v pravém dolním podokně.
Poklikáním na řádek kódu se můžete podívat na tento zdrojový kód a změnit také aktuální obor, který ladicí program kontroluje. Tím neprovádíte 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í. Můžete například vložit zarážky do konkrétních funkcí, restartovat aplikaci pomocí příkazu Spustit do kurzoru a prozkoumat zdrojový kód.
Kontrola výjimky
Když aplikace vyvolá výjimku, ladicí program vás přenese na řádek kódu, který výjimku vyvolal. Podrobné informace naleznete v tématu Kontrola výjimky pomocí pomocníka výjimky.
V tomto příkladu pomocník výjimky zobrazí System.NullReferenceException
výjimku a chybovou zprávu, že odkaz na objekt není nastaven na instanci objektu. A říká nám, že hodnota řetězce byla null při pokusu Trim
o volání metody.
V tomto příkladu pomocník výjimky zobrazí System.Argument
výjimku a chybovou zprávu s informací, že cesta není právní forma. Víme tedy, že k chybě došlo u argumentu metody nebo funkce.
V tomto příkladu DirectoryInfo
volání zobrazilo chybu u prázdného řetězce uloženého value
v proměnné.
Pomocník výjimky je skvělá funkce, která vám může pomoct s laděním chyb. Můžete také dělat věci, jako je zobrazení podrobností o chybě a přidání kukátku z pomocníka výjimky. 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 a podívejte se na další možnosti, jak tento typ výjimky zpracovat, ale pro tuto prohlídku nemusíte nic měnit!
Tip
Pokud máte Copilot, můžete získat pomoc s AI při ladění výjimek. Stačí vyhledat tlačítko Zeptat se zkopírovaného objektu. Další informace naleznete v tématu Ladění pomocí Copilotu.
Získání pomoci s AI
Pokud máte Copilot, můžete získat pomoc s AI při ladění. Další informace naleznete v tématu Ladění pomocí Copilotu. Při ladění můžete také vyhledat tlačítko Zeptat se zkopírovaného objektu. 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, nakonfigurovali vlastnosti projektu pro ladění nebo nakonfigurovali obecná nastavení pro ladění. Kromě toho můžete ladicí program nakonfigurovat tak, aby zobrazoval vlastní informace pomocí funkcí, jako je atribut DebuggerDisplay, nebo pro architekturu NatVis pro C/C++.
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ík ř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í profilů spouštění ladění, kde můžete nastavit vlastnosti související s laděním.
Ladění živých aplikací ASP.NET ve službě Aplikace Azure Service
Ladění ve službě Aplikace Azure Service najdete v tématu Ladění aplikací Azure.
V případě sady Visual Studio Enterprise (pouze) pořídí Snapshot Debugger snímek vašich v produkčních aplikacích, když se spustí kód, který vás zajímá. Pokud chcete ladicímu programu dát pokyn, aby pořídil snímek, nastavte v kódu snímky a protokolovací body. Ladicí program vám umožní přesně zjistit, co se nepovedlo, aniž by to mělo vliv na provoz 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ě Aplikace Azure 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 naleznete v tématu Ladění živých ASP.NET aplikací pomocí nástroje Snapshot Debugger.
Zobrazenísnímkůch
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 umožňují vrátit se k předchozím zarážkách nebo krokům a zobrazit stav aplikace 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 vpřed a Krok vpřed na panelu nástrojů Ladění. Tato tlačítka procházejí události, které se zobrazí na kartě Události v okně Diagnostické nástroje .
Další informace najdete v části Kontrola předchozích stavů aplikace pomocí stránky 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 pro profilaci.
Související obsah
V tomto kurzu jste se rychle podívali na mnoho funkcí ladicího programu. Můžete se podrobněji podívat na jednu z těchto funkcí, jako jsou zarážky.