Procházení kódu pomocí ladicího programu sady Visual Studio

Ladicí program sady Visual Studio vám může pomoct procházet kód, abyste zkontrolovali stav aplikace a zobrazili její tok provádění, který se označuje také jako krokování kódu. K rychlému získání kódu, který chcete prozkoumat, můžete použít klávesové zkratky, příkazy ladění, zarážky a další funkce. Když se seznámíte s navigačními příkazy a zkratkami ladicího programu, můžete rychleji a snadněji najít a vyřešit problémy s aplikacemi. Seznam nejběžnějších klávesových zkratek týkajících se navigace v kódu a ladění najdete v části Ladění v klávesových zkratkách.

Poznámka:

Pokud s laděním kódu teprve začínáte, možná si budete chtít přečíst ladění pro absolutní začátečníky a techniky a nástroje ladění, než si přečtete tento článek.

Spuštění ladění a přechod do režimu přerušení

Některé navigační příkazy spustí vaši aplikaci a automaticky připojí ladicí program. Aplikace se pozastaví na konkrétním řádku kódu na základě příkazu, který jste použili k zahájení navigace, a přejdete do režimu pozastavení (to znamená, že se aplikace pozastaví v ladicím programu).

V režimu pozastavení se provádění aplikace pozastaví, zatímco funkce, proměnné a objekty zůstanou v paměti. Pokud je ladicí program v režimu přerušení, můžete procházet kód. Existují dva velmi běžné způsoby, jak rychle přejít do režimu přerušení:

Příkazy pro krokování kódu se dají použít ke spuštění aplikace, ale častěji se používají po přechodu do režimu přerušení.

Některé navigační příkazy se většinou používají v režimu pozastavení (to znamená, že jste pozastaveni v ladicím programu).

Ladění a režim přerušení

Když jste v režimu přerušení, můžete k procházení kódu použít různé příkazy. Můžete prozkoumat hodnoty proměnných a vyhledat porušení nebo chyby. U některých typů projektů můžete také upravit aplikaci, když jste v režimu přerušení.

Většina oken ladicího programu, jako jsou moduly a kukátky , jsou k dispozici pouze v případě, že je ladicí program připojený k vaší aplikaci. Některé funkce ladicího programu, jako je zobrazení hodnot proměnných v okně Locals nebo vyhodnocení výrazů v okně Kukátko , jsou k dispozici pouze v případě, že je ladicí program pozastavený (to znamená v režimu pozastavení).

Poznámka:

Pokud rozdělíte kód, který nemá načtené zdrojové nebo symbolové soubory (.pdb), zobrazí ladicí program stránku Zdrojové soubory nenalezeno nebo Nenalezeno symboly, které vám pomůžou soubory najít a načíst. Viz Zadání symbolu (.pdb) a zdrojových souborů. Pokud nemůžete načíst symbol nebo zdrojové soubory, můžete i nadále ladit pokyny k sestavení v okně Zpětné překladu .

Krokování kódu

Krokování kódu odkazuje na spuštění kódu aplikace po jednom příkazu s připojeným ladicím programem. Příkazy kroku ladicího programu vám pomůžou sledovat účinky jednotlivých příkazů a zjistit další informace o jejím toku provádění.

Krokování do kódu

Pokud chcete při ladění zastavit jednotlivé příkazy, použijte krok ladění>nebo vyberte F11.

Ladicí program prochází příkazy kódu, ne fyzické řádky. Klauzuli if lze například zapsat na jeden řádek:

int x = 42;
string s = "Not answered";
if( int x == 42) s = "Answered!";

Když ale přejdete do tohoto řádku, ladicí program považuje podmínku za jeden krok a výsledek jako druhý. V předchozím příkladu je podmínka pravdivá.

Při volání vnořené funkce proveďte krok do kroků do nejhrozsáhlejší vnořené funkce. Pokud například použijete krok do volání, jako Func1(Func2())je , ladicí program provede kroky do funkce Func2.

Tip

Při spouštění jednotlivých řádků kódu můžete najet myší na proměnné, abyste viděli jejich hodnoty, nebo pomocí oken Místní hodnoty a Kukátku sledujte, jak se hodnoty mění. Během kroku do funkcí můžete také vizuálně sledovat zásobník volání. (Pouze pro Visual Studio Enterprise najdete v tématu Mapování metod v zásobníku volání při ladění.)

Krokování kódu a přeskočení některých funkcí

Při ladění vás nemusí zajímat funkce. Nebo můžete vědět, že nějaký kód funguje, například dobře otestovaný kód knihovny. Při krokování kódu můžete přeskočit následující příkazy. Funkce stále běží, ale ladicí program je přeskočí.

Příkaz klávesnice Příkaz nabídky Ladění Popis
F10 Krok za krokem Pokud aktuální řádek obsahuje volání funkce, spustí krok Over kód a po vrácení volané funkce pozastaví provádění na prvním řádku kódu.
Shift+F11 Krok ven Krok ven pokračuje ve spouštění kódu a pozastaví provádění, když se vrátí aktuální funkce. Ladicí program přeskočí aktuální funkci.

Spuštění do konkrétního umístění nebo funkce

Pokud přesně víte, jaký kód chcete zkontrolovat, nebo pokud víte, kde chcete spustit ladění, můžete raději spustit přímo do konkrétního umístění nebo funkce.

  • Nastavení zarážky je nejlepší, pokud si myslíte, že chcete zarážku znovu použít.
  • Jiné metody jsou pro usnadnění a jsou podobné nastavení dočasné zarážky.

Spuštění na zarážku v kódu

Pokud chcete nastavit jednoduchou zarážku v kódu, vyberte úplně levý okraj vedle řádku kódu, ve kterém chcete pozastavit provádění. Můžete také vybrat řádek a pak vybrat F9, vybrat Ladit>přepnout zarážku nebo kliknout pravým tlačítkem myši a vybrat Zarážka>Vložit zarážku. Zarážka se zobrazí jako červená tečka na levém okraji vedle řádku kódu. Ladicí program pozastaví provádění těsně před spuštěním řádku.

Screenshot that shows how to set a breakpoint.

Screenshot that shows how to set a breakpoint.

Zarážky v sadě Visual Studio poskytují bohatou sadu funkcí, jako jsou podmíněné zarážky a tracepointy. Podrobnosti najdete v tématu Použití zarážek.

Spuštění do zarážky funkce

Ladicí program můžete nastavit tak, aby běžel, dokud nedosáhne zadané funkce. Funkci můžete zadat podle názvu nebo ji můžete vybrat ze zásobníku volání.

Určení zarážky funkce podle názvu:

  1. Vyberte Ladit>novou zarážku> funkce.

  2. V dialogovém okně Nová zarážka funkce zadejte název funkce a vyberte její jazyk:

    Screenshot that shows the New Function Breakpoint dialog.

    Screenshot that shows the New Function Breakpoint dialog.

  3. Vyberte OK.

Pokud je funkce přetížená nebo ve více než jednom oboru názvů, můžete zvolit požadovanou funkci v okně Zarážky :

Screenshot that shows breakpoints window.

Screenshot that shows breakpoints window.

Výběr zarážky funkce ze zásobníku volání:

  1. Při ladění otevřete okno Zásobník volání výběrem možnosti Ladění>zásobníku volání systému Windows>.

  2. V okně Zásobník volání klikněte pravým tlačítkem myši na funkci a vyberte Spustit do kurzoru nebo vyberte Ctrl+F10.

Informace o vizuálním trasování zásobníku volání najdete v tématu Mapování metod v zásobníku volání při ladění.

Spuštění do umístění kurzoru

Pokud chcete přejít na umístění kurzoru, vyberte ve zdrojovém kódu nebo v okně Zásobník volání řádek, na který chcete přejít, a potom klikněte pravým tlačítkem myši a vyberte Spustit do kurzoru nebo vyberte Ctrl+F10. Výběr příkazu Spustit do kurzoru se podobá nastavení dočasné zarážky.

Vynucení spuštění na umístění kurzoru

Pokud chcete spustit na umístění kurzoru, vyberte ve zdrojovém kódu nebo v okně Zásobník volání řádek, na který chcete přejít, a potom klikněte pravým tlačítkem myši a vyberte Vynutit spuštění kurzoru. Výběrem možnosti Vynutit spuštění kurzoru se přeskočí všechny zarážky a výjimky první šance, dokud ladicí program nedosáhne řádku kódu, ve kterém se nachází kurzor.

Spustit a kliknout na

Zatímco je ladicí program pozastavený, můžete najet myší na příkaz ve zdrojovém kódu nebo v okně Zpětného překladu a vybrat spuštění sem zelenou šipku. Použití příkazu Spustit ke kliknutí se podobá nastavení dočasné zarážky.

Screenshot that shows Run to Click and the green arrow.

Poznámka:

Spuštění po kliknutí je k dispozici od sady Visual Studio 2017.

Vynucení kliknutí na tlačítko Spustit

Zatímco je ladicí program pozastavený, můžete při stisknutí klávesy Shift najet myší na příkaz ve zdrojovém kódu a pak sem vybrat Vynucené spuštění spuštění (dvojitá zelená šipka). Když zvolíte tuto možnost, aplikace připojí ladicí program sady Visual Studio a pozastaví se v umístění kurzoru. Všechny zarážky a výjimky první šance zjištěné během provádění jsou dočasně zakázány.

Screenshot that shows Force Run to Click.

Poznámka:

V sadě Visual Studio 2022 je k dispozici vynucení spuštění kliknutím .

Ruční rozdělení kódu

Pokud chcete rozdělit na další dostupný řádek kódu ve spuštěné aplikaci, vyberte Možnost Ladit>vše nebo stiskněte klávesu Ctrl+Alt+Break.

Ladění neuživatelového kódu

Ve výchozím nastavení se ladicí program pokusí ladit pouze kód aplikace povolením nastavení s názvem Jen můj kód. Podrobnosti o tom, jak tato funkce funguje pro různé typy projektů a jazyky a jak ji můžete přizpůsobit, najdete v tématu Jen můj kód.

Pokud se chcete podívat na kód architektury, kód knihovny třetích stran nebo systémová volání při ladění, můžete zakázat pouze můj kód. V nástrojích (nebo ladění)> Možnosti>Ladění zrušte zaškrtnutí políčka Povolit pouze můj kód. Když je zakázán pouze můj kód, zobrazí se v oknech ladicího programu kód bez uživatele a ladicí program může krokovat do kódu bez uživatele.

Poznámka:

Projekty zařízení nepodporují jenom můj kód.

Ladění systémového kódu

Pokud jste načetli symboly ladění pro systémový kód Microsoftu a zakázali funkci Jen můj kód, můžete se do systémového volání připojit stejně jako jakékoli jiné volání.

Počínaje sadou Visual Studio 2022 verze 17.7 můžete kód .NET automaticky zkompilovat při krokování do externího kódu bez nutnosti ručního načtení symbolů ladění. Další informace naleznete v tématu Generování zdrojového kódu ze sestavení .NET při ladění.

Další informace o načítání symbolů Microsoftu najdete v tématu Konfigurace umístění souborů symbolů a možností načítání.

Načtení symbolů pro konkrétní systémovou komponentu:

  1. Při ladění otevřete okno Moduly výběrem možnosti Ladit>moduly systému Windows>nebo stisknutím kláves Ctrl+Alt+U.

  2. V okně Moduly můžete zjistit, které moduly mají symboly načtené ve sloupci Stav symbolu. Klikněte pravým tlačítkem myši na modul, pro který chcete načíst symboly, a pak vyberte Načíst symboly.

Krokování do vlastností a operátorů ve spravovaném kódu

Ladicí program ve výchozím nastavení provede kroky nad vlastnostmi a operátory ve spravovaném kódu. Ve většině případů toto chování poskytuje lepší možnosti ladění. Pokud chcete zakázat krokování do vlastností nebo operátorů, vyberte Možnosti ladění>. Na stránce Ladění>obecné zrušte zaškrtnutí políčka Krok nad vlastnostmi a operátory (pouze spravované).

Přesunutí ukazatele na změnu toku provádění

Můžete změnit další příkaz, který se spustí přesunutím žlutého ukazatele na spuštění. Tuto funkci můžete použít v režimu pozastavení.

Toto je pokročilá funkce ladicího programu. Další informace naleznete v tématu Přesunutí ukazatele provádění.