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

Default 1

Dává kompilátoru jit za běhu pokyn, aby použil jeho výchozí chování, mezi které patří povolení optimalizace, zakázání podpory úprav a pokračování a použití sekvenčních bodů úložiště symbolů, pokud jsou k dispozici. Počínaje rozhraním .NET Framework verze 2.0 se vždy vygenerují informace o sledování JIT, posun jazyka MSIL (Microsoft Intermediate Language) na posun nativního kódu v rámci metody.

DisableOptimizations 256

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

EnableEditAndContinue 4

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

IgnoreSymbolStoreSequencePoints 2

Použijte implicitní sekvenční body jazyka MSIL, nikoli sekvenční body databáze programů (PDB). Symbolické informace obvykle zahrnují alespoň jeden posun jazyka MSIL (Microsoft Intermediate Language) pro každý zdrojový řádek. Když se kompilátor za běhu (JIT) chystá zkompilovat metodu, požádá profilační služby o seznam posunů jazyka MSIL, které by měly být zachovány. Tyto posuny jazyka MSIL se nazývají sekvenční body.

None 0

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

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

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 verze 2.0 nebo novější neumožňují vypnout sledování pomocí kompilátoru JIT (just-in-time). Sledování JIT je pro laditelné soubory vždy povolené. Ve verzi 2.0 a novější mají hodnoty výčtu následující účinek.

Režim ladění Výsledek
Žádné Sledování, povolené optimalizace JIT
Default Sledování, povolené optimalizace JIT
DisableOptimizations Sledování, povolené optimalizace JIT
Výchozí | DisableOptimizations Sledování, zakázané optimalizace JIT

Sekvenční body slouží k označení umístění v kódu MSIL (Microsoft Intermediate Language), na která uživatel ladicího programu očekává, že bude moct jedinečně odkazovat, například pro nastavení zarážky. Kompilátor JIT zajišťuje, že nekompiluje knihovnu MSIL ve dvou různých bodech sekvence do jedné nativní instrukce. Ve výchozím nastavení kompilátor JIT zkoumá v úložišti symbolů v souboru databáze programu (PDB) seznam dalších sekvenčních bodů. Načtení souboru PDB však vyžaduje, aby soubor byl dostupný a má negativní dopad na výkon. Počínaje verzí 2.0 můžou kompilátory generovat "implicitní sekvenční body" ve streamu kódu MSIL pomocí instrukcí MSIL.nop" Tyto kompilátory by měly nastavit IgnoreSymbolStoreSequencePoints příznak, který upozorní modul clr (Common Language Runtime), aby nenačetl soubor PDB.

Poznámka

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

Platí pro