DebuggableAttribute.DebuggingModes Enum

Definition

Anger felsökningsläget för jit-kompilatorn (just-in-time).

Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.

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
Arv
DebuggableAttribute.DebuggingModes
Attribut

Fält

Name Värde Description
None 0

Från och med .NET Framework version 2.0 genereras jit-spårningsinformation alltid och den här flaggan har samma effekt som Default, förutom att den anger egenskapen IsJITTrackingEnabled till false. Men eftersom JIT-spårning alltid är aktiverat ignoreras egenskapsvärdet i version 2.0 eller senare.

Observera att flaggan, till skillnad från DisableOptimizations flaggan, None inte kan användas för att inaktivera JIT-optimeringar.

Default 1

Instruerar jit-kompilatorn (just-in-time) att använda sitt standardbeteende, vilket inkluderar aktivering av optimeringar, inaktivering av stöd för Redigera och Fortsätt och användning av sekvenspunkter för symbolarkiv om det finns. Från och med .NET Framework version 2.0 genereras JIT-spårningsinformation, Microsoft mellanliggande språk (MSIL) förskjutning till den inbyggda kodförskjutningen inom en metod.

IgnoreSymbolStoreSequencePoints 2

Använd implicita MSIL-sekvenspunkter, inte programdatabasens (PDB) sekvenspunkter. Den symboliska informationen innehåller normalt minst en msil-förskjutning (Microsoft mellanliggande språk) för varje källrad. När jit-kompilatorn (just-in-time) är på väg att kompilera en metod ber den profileringstjänsterna om en lista över MSIL-förskjutningar som ska bevaras. Dessa MSIL-förskjutningar kallas sekvenspunkter.

EnableEditAndContinue 4

Aktivera redigering och fortsätt. Genom att redigera och fortsätta kan du göra ändringar i källkoden medan programmet är i avbrottsläge. Möjligheten att redigera och fortsätta är kompilatorberoende.

DisableOptimizations 256

Inaktivera optimeringar som utförs av kompilatorn för att göra utdatafilen mindre, snabbare och effektivare. Optimeringar resulterar i kod omorganisering i utdatafilen, vilket kan göra felsökningen svår. Normalt bör optimering inaktiveras vid felsökning. I version 2.0 eller senare kombinerar du det här värdet med Standard (standard | DisableOptimizations) för att aktivera JIT-spårning och inaktivera optimeringar.

Kommentarer

Uppräkningen DebuggableAttribute.DebuggingModes anger hur körningen är för att spåra information som är viktig för felsökningsprogrammet under kodgenereringen. Den här informationen hjälper felsökningsprogrammet att ge en omfattande felsökningsupplevelse. Till skillnad från .NET Framework version 1.1 tillåter version 2.0 eller senare inte att du inaktiverar spårning av JIT-kompilatorn (just-in-time). JIT-spårning är alltid aktiverat för felsökningsbara filer. I version 2.0 och senare har uppräkningsvärdena följande effekt.

Felsökningsläge Result
Ingen Spårning på, JIT-optimeringar aktiverade
Standardinställning Spårning på, JIT-optimeringar aktiverade
DisableOptimizations Spårning på, JIT-optimeringar aktiverade
Standard | DisableOptimizations Spårning på, JIT-optimeringar inaktiverade

Sekvenspunkter används för att ange platser i msil-koden (Microsoft mellanliggande språk) som en felsökaranvändare förväntar sig att kunna referera till unikt, till exempel för att ange en brytpunkt. JIT-kompilatorn ser till att den inte kompilerar MSIL vid två olika sekvenspunkter i en enda intern instruktion. Som standard undersöker JIT-kompilatorn symbolarkivet i programdatabasfilen (PDB) för en lista över ytterligare sekvenspunkter. Inläsning av PDB-filen kräver dock att filen är tillgänglig och har en negativ prestandapåverkan. Från och med version 2.0 kan kompilatorer generera "implicita sekvenspunkter" i MSIL-kodströmmen med hjälp av MSIL-instruktionernop" . Sådana kompilatorer bör ange IgnoreSymbolStoreSequencePoints flaggan för att meddela den gemensamma språkkörningen att inte läsa in PDB-filen.

Note

Den här uppräkningen används främst av språkutvecklare. Det används vanligtvis inte i programutveckling. Utvecklingsmiljöer använder DebuggableAttribute.DebuggingModes baserat på kompilatorparametrar som /debug och /optimize.

Gäller för