DebuggableAttribute.DebuggingModes Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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 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.