Použití zarážek v ladicím Visual Studio ladění
Zarážky jsou jednou z nejdůležitějších technik ladění v sadě nástrojů pro vývojáře. Zarážky nastavíte všude, kde chcete pozastavit provádění ladicího programu. Můžete například chtít zobrazit stav proměnných kódu nebo se podívat na zásobník volání na určité zarážce. Pokud se pokoušíte vyřešit upozornění nebo problém při používání zarážek, podívejte se na téma Řešení potíží se zarážkami v Visual Studio ladicím programu.
Poznámka
Pokud znáte úlohu nebo problém, který se pokoušíte vyřešit,ale potřebujete vědět, jaký typ zarážky použít, podívejte se na nejčastější dotazy – vyhledání funkce ladění .
Nastavení zarážek ve zdrojovém kódu
Zarážku můžete nastavit na libovolném řádku spustitelného kódu. Například v následujícím kódu jazyka C# můžete nastavit zarážku na řádku kódu s přiřazením proměnné ( ), smyčkou nebo libovolným kódem uvnitř int testInt = 1 for for smyčky. Nelze nastavit zarážku u podpisů metod, deklarací pro obor názvů nebo třídu nebo deklarací proměnných, pokud neexistuje žádné přiřazení a žádné metody getter/setter.
Pokud chcete nastavit zarážku ve zdrojovém kódu, klikněte na levý okraj vedle řádku kódu. Můžete také vybrat řádek a stisknout F9, vybrat Ladit Přepnout zarážku nebo kliknout pravým tlačítkem a > vybrat Zarážka > Vložit zarážku. Zarážka se na levém okraji zobrazí jako červená tečka.
U většiny jazyků, včetně jazyka C#, jsou zarážky a aktuální řádky spuštění automaticky zvýrazněny. U kódu jazyka C++ můžete zapnout zvýraznění zarážek a aktuálních řádků tak, že vyberete Nástroje (nebo Ladit) > Možnosti Ladění Zvýraznit celý zdrojový řádek pro zarážky a aktuální příkaz > > (pouze C++).

Při ladění se provádění pozastaví na zarážce před provedením kódu na tomto řádku. Symbol zarážky zobrazuje žlutou šipku.
Na zarážce v následujícím příkladu je hodnota stále testInt 1. Hodnota se proto od inicializace proměnné (nastavená na hodnotu 1) nezměnila, protože příkaz žlutá ještě nebyl proveden.

Když se ladicí program zastaví na zarážce, můžete se podívat na aktuální stav aplikace, včetně hodnot proměnných a zásobníku volání.
Tady je několik obecných pokynů pro práci se zarážkami.
Zarážka je přepínač. Můžete na něj kliknout, stisknout klávesu F9 nebo ji odstranit nebo znovu vložit pomocí přepínače > ladění zarážky.
Pokud chcete zarážku zakázat bez odstranění, najeďte myší na zarážku nebo na ní klikněte pravým tlačítkem myši a vyberte Zakázat zarážku. Zakázané zarážky se zobrazují jako prázdné tečky na levém okraji nebo v okně Breakpoints (Zarážky). Pokud chcete zarážku znovu povolit, najeďte myší na zarážku nebo na ní klikněte pravým tlačítkem a vyberte Povolit zarážku.
Nastavte podmínky a akce, přidejte a upravte popisky nebo exportujte zarážku tak, že na něj kliknete pravým tlačítkem a vyberete příslušný příkaz nebo na něj najedete myší a vyberete ikonu Nastavení.
Akce zarážek a tracepointy
Tracepoint je zarážka, která vytiskne zprávu do okna Výstup. Trasovací bod může v programovacím jazyce fungovat jako dočasný příkaz trasování a nepozastaví provádění kódu. Trasovací bod vytvoříte nastavením speciální akce v okně Nastavení zarážky. Podrobné pokyny najdete v tématu Použití trasovacích bodů v Visual Studio ladicím programu.
Podmínky zarážek
Nastavením podmínek můžete řídit, kdy a kde se zarážka provádí. Podmínka může být libovolný platný výraz, který ladicí program rozpozná. Další informace o platných výrazech najdete v tématu Výrazy v ladicím programu.
Nastavení podmínky zarážky:
- Klikněte pravým tlačítkem na symbol zarážky a vyberte Podmínky (nebo stiskněte Alt + F9, C). Nebo najeďte myší na symbol zarážky, vyberte ikonu Nastavení a pak vyberte Podmínky v okně Nastavení zarážky.
Můžete také kliknout pravým tlačítkem na levý okraj vedle řádku kódu a vybrat Vložit podmíněnou zarážku z místní nabídky a nastavit novou podmíněnou zarážku.
Podmínky můžete nastavit také v okně Zarážky tak, že kliknete pravým tlačítkem na zarážku, vyberete Nastavení a pak vyberete Podmínky.

V rozevíracím seznamu vyberte Podmíněný výraz, Počet přístupů nebo Filtr a nastavte hodnotu odpovídajícím způsobem.
Stisknutím Klávesy Ctrl Enter zavřete okno zarážky + Nastavení stisknutím klávesy . Nebo v okně Breakpoints (Zarážky) zavřete dialogové okno výběrem OK.
Zarážky s nastavenými podmínkami se zobrazí se symbolem ve zdrojovém kódu a + v oknech Zarážek.
Vytvoření podmíněného výrazu
Když vyberete Podmíněný výraz, můžete si vybrat mezi dvěma podmínkami: Is true (Pravda) nebo When changed (Při změně). Zvolte Is true (Je true), pokud chcete výraz po jeho vyhoření přerušit, nebo když se změní hodnota výrazu, aby se po změně hodnoty přerušil.
V následujícím příkladu je zarážka uvedená pouze v případě, že je testInt hodnota 4:

V následujícím příkladu je zarážka uvedená pouze v případě, že se hodnota testInt změní:

Pokud nastavíte podmínku zarážky s neplatnou syntaxí, zobrazí se zpráva upozornění. Pokud zadáte podmínku zarážky s platnou syntaxí, ale neplatnou sémantikou, zobrazí se při prvním použití zarážky zpráva upozornění. V obou případech se ladicí program při použití neplatné zarážky přeruší. Zarážka se přeskočí jenom v případě, že je podmínka platná a vyhodnotí se jako false .
Poznámka
Pro pole Při změně ladicí program nepřizná první vyhodnocení podmínky za změnu, takže se při prvním vyhodnocení nenarazí na zarážku.
Použití ID objektů v podmíněných výrazech (pouze C# a F#)
Existují případy, kdy chcete sledovat chování konkrétního objektu. Můžete například chtít zjistit, proč byl objekt vložen do kolekce více než jednou. V jazyce C# a F# můžete vytvořit ID objektů pro konkrétní instance odkazových typů a použít je v podmínkách zarážky. ID objektu je generováno ladicími službami modulu CLR (Common Language Runtime) a přidruženo k objektu .
Vytvoření ID objektu:
Po vytvoření objektu nastavte zarážku v kódu na nějaké místo.
Spusťte ladění a když se provádění na zarážce pozastaví, vyberte Ladit > Windows > Místní hodnoty (nebo stiskněte Ctrl + Alt + V, L) a otevřete okno Místní hodnoty.
Vyhledejte konkrétní instanci objektu v okně Místní hodnoty, klikněte na něj pravým tlačítkem a vyberte Vytvořit ID objektu.
V okně Místní hodnoty by se mělo zobrazit plus $ číslo. Toto je ID objektu.
Do bodu, který chcete prozkoumat, přidejte novou zarážku. Například když má být objekt přidán do kolekce. Klikněte pravým tlačítkem na zarážku a vyberte Podmínky.
V poli Podmíněný výraz použijte ID objektu. Pokud je proměnná například objekt, který se má přidat do kolekce, vyberte Je true a zadejte
itemitem == $ <n>, kde je číslo ID <n> objektu.Provádění se přeruší v okamžiku, kdy má být tento objekt přidán do kolekce.
Pokud chcete odstranit ID objektu, klikněte pravým tlačítkem na proměnnou v okně Místní hodnoty a vyberte Odstranit ID objektu.
Poznámka
ID objektů vytvářejí slabé odkazy a nezabraňují uvolnění paměti objektu. Jsou platné pouze pro aktuální ladicí relaci.
Nastavení podmínky počtu přístupů
Pokud máte podezření, že se smyčka ve vašem kódu po určitém počtu iterací začne chovat špatně, můžete nastavit zarážku tak, aby po tomto počtu přístupů zastavila provádění, místo abyste k dosažení této iterace museli opakovaně stisknout klávesu F5.
V části Podmínky v okně Nastavení zarážky vyberte Počet přístupů a pak zadejte počet iterací. V následujícím příkladu je zarážka nastavená tak, aby při každé druhé iteraci narazila na :

Nastavení podmínky filtru
Zarážku můžete omezit tak, aby se s rušilo jenom na zadaných zařízeních nebo v určených procesech a vláknech.
V části Podmínky v okně Nastavení vyberte Filtr a pak zadejte jeden nebo více následujících výrazů:
- MachineName = "name"
- ProcessId = hodnota
- ProcessName = "name"
- ThreadId = hodnota
- ThreadName = "name"
Řetězcové hodnoty uzavřete do dvojitých uvozovek. Klauzule můžete kombinovat pomocí & (AND), || (OR), ! (NOT) a závorek.
Nastavení zarážek funkcí
Při volání funkce můžete provádění přerušit. To je užitečné například v případě, že znáte název funkce, ale ne její umístění. Je také užitečné, pokud máte funkce se stejným názvem a chcete je rozdělit na všechny (například přetížené funkce nebo funkce v různých projektech).
Nastavení zarážky funkce:
Vyberte možnost ladit novou zarážku funkce zarážky > > nebo stiskněte klávesy CTRL + K, B.
V okně zarážky můžete také vybrat novou zarážku funkce .
V dialogovém okně Nová zarážka funkce zadejte do pole název funkce název funkce.
Zúžení specifikace funkce:
Použijte plně kvalifikovaný název funkce.
Případě
Namespace1.ClassX.MethodA()Přidejte typy parametrů přetížené funkce.
Případě
MethodA(int, string)K určení modulu použijte symbol '! '.
Příklad:
App1.dll!MethodAPoužijte operátor kontextu v nativním jazyce C++.
{function, , [module]} [+<line offset from start of method>]Příklad:
{MethodA, , App1.dll}+2
V rozevíracím seznamu jazyk vyberte jazyk funkce.
Vyberte OK.
Nastavení zarážky funkce pomocí adresy paměti (pouze nativní C++)
Můžete použít adresu objektu pro nastavení zarážky funkce pro metodu volanou určitou instancí třídy. Například vzhledem k adresovatelné objektu typu my_class můžete nastavit zarážku funkce na my_method metodu, kterou instance volá.
Nastavte zarážku někam po vytvoření instance třídy.
Vyhledejte adresu instance (například
0xcccccccc).Vyberte možnost ladit novou zarážku funkce zarážky > > nebo stiskněte klávesy CTRL + K, B.
Do pole název funkce přidejte následující a vyberte jazyk C++ .
((my_class *) 0xcccccccc)->my_method
Nastavení zarážek s daty (.NET Core 3. x nebo .NET 5 +)
Datové zarážky přeruší provádění při změně vlastnosti určitého objektu.
Nastavení datové zarážky
V projektu .NET Core spusťte ladění a počkejte na dosažení zarážky.
V okně Automatické hodnoty, kukátko nebo místních hodnot klikněte pravým tlačítkem na vlastnost a v místní nabídce vyberte možnost přerušit při změně hodnoty .

Datové zarážky v .NET Core nebudou fungovat pro:
- Vlastnosti, které se nerozšiřují v popiscích, místních hodnotách, Autoch nebo okno Kukátko
- Statické proměnné
- Třídy s atributem používání DebuggerTypeProxy
- Pole uvnitř struktur
Nastavení zarážek s daty (jenom nativní C++)
Datové zarážky přeruší provádění, když se změní hodnota uložená v zadané adrese paměti. Pokud je hodnota čtena, ale nemění se, provádění není přerušeno.
Nastavení datové zarážky:
V projektu C++ spusťte ladění a počkejte na dosažení zarážky. V nabídce ladění vyberte možnost Nová zarážka dat zarážky > .
Můžete také vybrat možnost Nová > zarážka dat v okně zarážky nebo kliknout pravým tlačítkem myši na položku v okně Automatické hodnoty, kukátko nebo místních hodnot a vybrat možnost přerušit při změně hodnoty v místní nabídce.
Do pole adresa zadejte adresu paměti nebo výraz, který se vyhodnotí na adresu paměti. Například zadejte, že
&avarse má přerušit, když se změní obsah proměnnéavar.V rozevíracím seznamu počet bajtů vyberte počet bajtů, které má ladicí program sledovat. Pokud například vyberete 4, ladicí program bude sledovat čtyři bajty počínaje
&avara přerušit, pokud kterákoli z těchto bajtů změní hodnotu.
Datové zarážky nefungují za následujících podmínek:
- Proces, který neladí zápisy do umístění v paměti.
- Umístění v paměti je sdíleno mezi dvěma nebo více procesy.
- Umístění v paměti je aktualizováno v rámci jádra. například pokud je paměť předána do 32
ReadFilefunkce Windows, paměť bude aktualizována z režimu jádra, takže ladicí program nebude u aktualizace přerušen. - Kde výraz kukátka je větší než 4 bajty na 32ovém hardwaru a 8 bajtů na 64 bitového hardwaru. Toto je omezení architektury x86.
Poznámka
Datové zarážky závisí na konkrétních adresách paměti. Adresa proměnné se mění z jedné relace ladění na další, takže se na konci každé relace ladění automaticky zakážou datové zarážky.
Pokud nastavíte zarážku dat na lokální proměnné, zarážka zůstane povolena, když funkce skončí, ale adresa paměti již není platná, takže chování zarážky je nepředvídatelné. Pokud nastavíte zarážku dat na lokální proměnné, měli byste před ukončením funkce odstranit nebo zakázat zarážku.
Nastavení závislé zarážky
Závislé zarážky přeruší provádění pouze v případě, že je nejdříve dosaženo jiné zarážky. Takže ve složitém scénáři, jako je ladění aplikace s více vlákny, můžete nakonfigurovat další zarážky po prvním průchodu jiné zarážky. To může ladit kód v běžných cestách, jako je například hra hry nebo rozhraní API nástroje mnohem jednodušší, protože zarážku v těchto funkcích lze nakonfigurovat tak, aby povolovala pouze v případě, že je funkce vyvolána z konkrétní části aplikace.
Nastavení závislé zarážky:
najeďte myší na symbol zarážky, zvolte ikonu Nastavení a pak vyberte možnost povolit, pouze když je v okně zarážky Nastavenía následující zarážka.
V rozevíracím seznamu Vyberte zarážku požadavků, na které má být vaše aktuální zarážka závislá.
kliknutím na tlačítko zavřít nebo stisknutím kombinace kláves Ctrl + Enter zavřete okno zarážky Nastavení. Nebo v okně zarážky kliknutím na tlačítko OK zavřete dialogové okno.

Můžete také použít místní nabídku kliknutím pravým tlačítkem k nastavení zarážky závislé na.
- Klikněte pravým tlačítkem myši na levý levý okraj vedle řádku kódu a v místní nabídce vyberte Vložit závislý bod přerušení .

- Závislé zarážky nefungují, pokud je v aplikaci pouze jedna zarážka.
- Závislé zarážky jsou převedeny na normální řádek zarážky, pokud je odstraněna zarážka požadavků.
Nastavení dočasné zarážky
Tato zarážka umožňuje rozdělit kód pouze jednou. při ladění nástroj Visual Studio ladicímu programu pozastaví běžící aplikaci pouze jednou pro tuto zarážku a poté ji odstraní hned po dosažení.
Nastavení dočasné zarážky:
- najeďte myší na symbol zarážky, zvolte ikonu Nastavení a potom v okně zarážky Nastavení vyberte možnost po dosažení pozice odebrat zarážku .
- kliknutím na tlačítko zavřít nebo stisknutím kombinace kláves Ctrl + Enter zavřete okno zarážky Nastavení. Nebo v okně zarážky kliknutím na tlačítko OK zavřete dialogové okno.

K nastavení dočasné zarážky můžete také použít místní nabídku kliknutím pravým tlačítkem myši.
- Klikněte pravým tlačítkem myši na levý levý okraj vedle řádku kódu a v místní nabídce vyberte Vložit dočasnou zarážku .

nebo jednoduše použijte klávesovou zkratku F9 + SHIFT + ALT, T a nastavte dočasnou zarážku na požadovaném řádku.
Správa zarážek v okně zarážky
Okno zarážky můžete použít k zobrazení a správě všech zarážek ve vašem řešení. Toto centralizované umístění je zvláště užitečné ve velkých řešeních nebo pro složité scénáře ladění, kde jsou zarážky kritické.
V okně zarážky můžete vyhledat, seřadit, filtrovat, povolit nebo zakázat nebo odstranit zarážky. Můžete také nastavit podmínky a akce nebo přidat novou funkci nebo datovou zarážku.
chcete-li otevřít okno zarážky , vyberte možnost ladění > Windows > zarážky nebo stiskněte klávesovou zkratku Ctrl + + + B.

Chcete-li vybrat sloupce, které mají být zobrazeny v okně zarážky , vyberte možnost Zobrazit sloupce. Vyberte záhlaví sloupce pro seřazení seznamu zarážek podle daného sloupce.
Popisky zarážek
Štítky lze použít k řazení a filtrování seznamu zarážek v okně zarážky .
- Chcete-li přidat popisek ke zarážce, klikněte pravým tlačítkem myši na zarážku v okně zdrojového kódu nebo v okně zarážky a pak vyberte Upravit popisky. Přidejte nový popisek nebo zvolte existující a pak vyberte OK.
- V okně zarážky seřaďte seznam zarážek tak, že vyberete popisky, podmínky nebo jiná záhlaví sloupců. Výběrem možnosti Zobrazit sloupce na panelu nástrojů můžete vybrat sloupce, které chcete zobrazit.
Export a import zarážek
Chcete-li uložit nebo sdílet stav a umístění zarážek, můžete je exportovat nebo importovat.
- Chcete-li exportovat jednu zarážku do souboru XML, klikněte pravým tlačítkem myši na zarážku v okně zdrojového kódu nebo zarážky a vyberte exportovat nebo Exportovat vybrané. Vyberte umístění exportu a pak vyberte Uložit. Výchozím umístěním je složka řešení.
- Chcete-li exportovat několik zarážek, zaškrtněte v okně zarážky pole vedle zarážek nebo zadejte vyhledávací kritéria do vyhledávacího pole. Vyberte exportovat všechny zarážky, které odpovídají ikoně aktuálního kritéria hledání , a uložte soubor.
- Chcete-li exportovat všechny zarážky, zrušte výběr všech polí a nechte pole Hledat prázdné. Vyberte exportovat všechny zarážky, které odpovídají ikoně aktuálního kritéria hledání , a uložte soubor.
- Chcete-li importovat zarážky, vyberte v okně zarážky položku importovat zarážky z ikony souboru , přejděte do umístění souboru XML a vyberte možnost otevřít.
Nastavení zarážek z okna ladicího programu
Můžete také nastavit zarážky z okna ladicího programu zásobníku volání a zpětný překlad .
Nastavení zarážky v okně zásobník volání
Chcete-li přerušit instrukci nebo čáru, na kterou se volání funkce vrátí, můžete nastavit zarážku v okně zásobník volání .
Nastavení zarážky v okně zásobník volání:
Chcete-li otevřít okno zásobník volání , je nutné pozastavit během ladění. vyberte ladit > Windows > zásobník volání nebo stiskněte klávesovou zkratku Ctrl + Alt + C.
V okně zásobník volání klikněte pravým tlačítkem myši na volání funkce a vyberte zarážku > Vložit zarážku nebo stiskněte klávesu F9.
Symbol zarážky se zobrazí vedle názvu volání funkce na levém okraji zásobníku volání.
Zarážka zásobníku volání se zobrazí v okně zarážky jako adresa s umístěním v paměti, které odpovídá další spustitelné instrukci ve funkci.
Ladicí program se v instrukci přerušuje.
Další informace o zásobníku volání naleznete v tématu Postupy: použití okna zásobník volání.
Chcete-li vizuálně sledovat zarážky během provádění kódu, viz metody map v zásobníku volání při ladění.
Nastavení zarážky v okně zpětný překlad
Chcete-li otevřít okno zpětný překlad , je nutné pozastavit během ladění. vyberte ladit > Windows > zpětný překlad nebo stiskněte klávesovou zkratku Ctrl + Alt + D.
V okně zpětný překlad klikněte na levý okraj instrukce, na kterou chcete přerušit. Můžete ji také vybrat a stisknout klávesu F9 nebo kliknout pravým tlačítkem a vybrat zarážku > Vložit zarážku.