Sdílet prostřednictvím


Přehled ladicího programu sady Visual Studio

Tento článek představuje nástroje ladicího programu poskytované sadou Visual Studio. V kontextu sady Visual Studio obvykle při ladění aplikace znamená, že spouštíte aplikaci 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 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 atd. Pokud s laděním teprve začínáte pracovat, můžete si přečíst Ladění pro absolutní začátečníky, než přejdete k tomuto článku. Pokud se pokoušíte provést konkrétní úlohu a potřebujete vědět, jakou funkci použít, podívejte se na vyhledání 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.

Možná ještě nemáte nastavené žádné body přerušení pro zkoumání kódu vaší aplikace. Jakmile nastavíte zarážky, můžete začít s laděním. 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.

Nastav zarážku

Nastav zarážku

Stiskněte F5 (Ladění > Spustit ladění) nebo tlačítko Spustit ladění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ě neběží, klávesou F5 se spustí ladicí program, který se zastaví na prvním breakpointu.

Ú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:

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í krokovacích příkazů 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í > Vstoupit 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í.

F11 vstoupit do

F11 vstoupit do

Žlutá šipka představuje příkaz, na kterém byl ladicí program pozastaven, což také pozastaví provádění aplikace ve stejném okamžiku (tento příkaz ještě není 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.) Ladicí program ve výchozím nastavení přeskočí kód bez uživatele (pokud chcete další podrobnosti viz 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 nad vlastnostmi a operátory v podokně Nástroje > Možnosti v části Všechna nastavení>Ladění>Obecné.

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 nad vlastnostmi a operátory v dialogovém okně 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.

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í.

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. Můžete použít Spustit na 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 vlevo nezobrazí tlačítko Spustit na Kliknutí (Spustit provedení sem) Snímek obrazovky s tlačítkem Spustit na Kliknutí z ladicího programu Visual Studio. Toto tlačítko označuje, že spuštění by mělo proběhnout až na řádek, na kterém je tlačítko umístěno.

Snímek obrazovky ladicího nástroje Visual Studio zobrazující tlačítko Run to Click, které se zobrazuje přímo nalevo od volání funkce.

Snímek obrazovky ladicího nástroje Visual Studio zobrazující tlačítko Run to Click, které se zobrazuje přímo nalevo od volání funkce.

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.

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.

Spustit na kurzor

Spustit na kurzor

Pokud nastavíte zarážky, ladicí program se pozastaví na první zarážce, na kterou narazí.

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

V okně zásobníku volání můžete během ladění použít Run to Cursor.

Rychlé restartování aplikace

Na panelu nástrojů ladění vyberte tlačítko RestartovatRestartovat aplikaci (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í Zastavit ladění místo Restartovat.

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.

Upravit a pokračovat v ladění 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.

Zobrazení datového tipu

Zobrazení datového tipu

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

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.

okno místní

okno místní

V tomto příkladu jsou v oboru jak objekt this, tak i objekt f. Další informace naleznete v tématu Kontrola proměnných v oknech Automatické a Místní.

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í.

sledovací okno

sledovací okno

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 Watch vždy zobrazují proměnné, které sledujete (jsou zobrazeny šedě, 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.

Při ladění vyberte okno Zásobník volání , které je ve výchozím nastavení otevřené v pravém dolním podokně.

Prozkoumání zásobníku volání

Prozkoumání zásobníku volání

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 neposune dál.

V okně Zásobník volání můžete také pravým tlačítkem myši použít nabídky k provádění dalších akcí. 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.

Pomocník 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, když jste se pokusili volat metodu Trim.

Pomocník výjimky

V tomto příkladu Exception Helper zobrazí System.Argument výjimku a chybovou zprávu s informací, že cesta nemá platný 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.

Návod

Pokud máte Copilot , můžete získat pomoc umělé inteligence při ladění výjimek. Jednoduše vyhledejte Zeptat se Copilotusnímek obrazovky s tlačítkem 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 Copilotanebo snímek obrazovky s tlačítkem 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.

vlastnosti aplikace Project

vlastnosti aplikace Project

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.

Pokud používáte Visual Studio Enterprise (pouze), Snapshot Debugger pořídí snímek vašich aplikací v produkčním prostředí, když se 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.

Spuštění ladicího programu snímků

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 vaší aplikace při každém bodu přerušení a události kroku při ladění. 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 Krok zpět a krok vpřed

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 svou aplikaci otestovat 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.

V tomto kurzu jste se rychle podívali na mnoho funkcí ladicího programu. Můžete se podrobněji podívat na některou z těchto funkcí, jako jsou zarážky.