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 (just-in-time) 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 informace o sledování JIT vždy vygenerují Microsoft zprostředkující jazyk (MSIL) posunu 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 výchozím nastavením (výchozí | DisableOptimizations) pro povolení sledování JIT a zakázání optimalizací.

EnableEditAndContinue 4

Povolte úpravy a pokračujte. Funkce Upravit a pokračovat umožňuje provádět změny ve zdrojovém kódu, když je program v režimu pozastavení. Možnost upravit a pokračovat závisí na kompilátoru.

IgnoreSymbolStoreSequencePoints 2

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

None 0

Počínaje rozhraním .NET Framework verze 2.0 se informace o sledování JIT generují vždy a tento příznak má stejný účinek jako Default, s tím rozdílem IsJITTrackingEnabled , že nastaví vlastnost na false. Protože je ale 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 se příznak nedá 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 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
Žádné Sledování, povolené optimalizace JIT
Výchozí Sledování, povolené optimalizace JIT
DisableOptimizations Sledování, povolené optimalizace JIT
Výchozí | DisableOptimizations Sledování, optimalizace JIT zakázány

Sekvenční body se používají k označení umístění v kódu jazyka 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 jazyk 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 ale vyžaduje, aby soubor byl dostupný a má negativní dopad na výkon. Počínaje verzí 2.0 mohou kompilátory generovat "implicitní sekvenční body" ve streamu kódu MSIL pomocí instrukcí jazyka MSIL.nop" Tyto kompilátory by měly nastavit IgnoreSymbolStoreSequencePoints příznak , aby modul CLR (Common Language Runtime) 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