DebuggableAttribute.DebuggingModes Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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 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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro