DebuggableAttribute.DebuggingModes Výčet

Definice

Určuje režim ladění pro kompilátor JIT (just-in-time).

Tento výčet podporuje bitové kombinace hodnot jeho členů.

public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes = 
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes = 
Public Enum DebuggableAttribute.DebuggingModes
Dědičnost
DebuggableAttribute.DebuggingModes
Atributy

Pole

Name Hodnota Description
None 0

Počínaje verzí .NET Framework 2.0 se informace o sledování JIT vždy generují a tento příznak má stejný účinek jako Default s tím rozdílem, že nastaví vlastnost IsJITTrackingEnabled na false. Vzhledem k tomu, že sledování JIT je vždy povolené, hodnota vlastnosti se ignoruje ve verzi 2.0 nebo novější.

Všimněte si, že na rozdíl od příznaku DisableOptimizationsNone se příznak nedá použít k zakázání optimalizací JIT.

Default 1

Dává kompilátoru JIT (just-in-time) pokyn, aby používal výchozí chování, které zahrnuje povolení optimalizací, zakázání podpory pro úpravy a pokračování a použití bodů posloupnosti v úložišti symbolů, pokud jsou k dispozici. Počínaje .NET Framework verze 2.0 se informace o sledování JIT vždy vygenerují Microsoft zprostředkující jazyk (MSIL) na posun nativního kódu v rámci metody.

IgnoreSymbolStoreSequencePoints 2

Použijte implicitní body sekvence jazyka MSIL, nikoli body sekvence databáze programu (PDB). Symbolické informace obvykle zahrnují alespoň jeden Microsoft mezisazení jazyka MSIL (Intermediate Language) pro každý zdrojový řádek. Když kompilátor JIT (just-in-time) chystá zkompilovat metodu, požádá služby profilace o seznam posunů jazyka MSIL, které by se měly zachovat. Tyto posuny jazyka MSIL se nazývají sekvenční body.

EnableEditAndContinue 4

Povolte úpravy a pokračujte. Úpravy a pokračování vám umožní provádět změny ve zdrojovém kódu, když je program v režimu přerušení. Možnost upravit a pokračovat je závislá na kompilátoru.

DisableOptimizations 256

Zakažte optimalizace prováděné kompilátorem, aby byl výstupní soubor menší, rychlejší a efektivnější. Optimalizace vedou k změně uspořádání kódu ve výstupním souboru, což může ztížit ladění. Při ladění by obvykle měla být optimalizace zakázaná. Ve verzích 2.0 nebo novějších zkombinujte tuto hodnotu s výchozí hodnotou (Výchozí | DisableOptimizations) pro povolení sledování JIT a zakázání optimalizací.

Poznámky

Výčet DebuggableAttribute.DebuggingModes určuje, jak má modul runtime sledovat informace důležité pro ladicí program během generování kódu. Tyto informace pomáhají ladicímu programu poskytovat bohaté možnosti ladění. Na rozdíl od rozhraní .NET Framework verze 1.1 neumožňují verze 2.0 nebo novější vypnout sledování kompilátorem JIT (just-in-time). Sledování JIT je vždy povolené pro laditelné soubory. Ve verzi 2.0 a novější mají hodnoty výčtu následující účinek.

Režim ladění Výsledek
None Sledování, povolené optimalizace JIT
Výchozí Sledování, povolené optimalizace JIT
DisableOptimizations Sledování, povolené optimalizace JIT
Výchozí | DisableOptimizations Sledování, zakázání optimalizací JIT

Sekvenční body slouží k označení umístění v kódu Microsoft zprostředkujícího jazyka (MSIL), který uživatel ladicího programu očekává, že bude moci odkazovat jedinečně, například pro nastavení zarážky. Kompilátor JIT zajišťuje, že nekompiluje jazyk MSIL ve dvou různých sekvenčních bodech do jediné nativní instrukce. Kompilátor JIT ve výchozím nastavení zkoumá úložiště symbolů v souboru pdB (Program Database) a zobrazí seznam dalších sekvenačních bodů. Načtení souboru PDB však vyžaduje, aby byl soubor dostupný a má negativní dopad na výkon. Počínaje verzí 2.0 mohou kompilátory generovat "implicitní sekvenční body" v datovém proudu kódu MSIL pomocí pokynů jazyka MSILnop" . Tyto kompilátory by měly nastavit IgnoreSymbolStoreSequencePoints příznak, který informuje modul CLR, aby nenačetl soubor PDB.

Note

Tento výčet primárně používají vývojáři jazyků. Obecně se nepoužívá při vývoji aplikací. Vývojová prostředí se používají DebuggableAttribute.DebuggingModes na základě parametrů kompilátoru, jako je /debug a /optimize.

Platí pro