DebuggableAttribute.DebuggingModes Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den Debugmodus für den Just-in-Time-Compiler (JIT) an.
Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.
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
- Vererbung
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| None | 0 | Ab .NET Framework, Version 2.0, werden JIT-Nachverfolgungsinformationen immer generiert, und dieses Flag hat dieselbe Auswirkung wie Default, mit der Ausnahme, dass die eigenschaft IsJITTrackingEnabled auf Beachten Sie, dass das Flag im Gegensatz zum DisableOptimizations Flag nicht zum Deaktivieren von None JIT-Optimierungen verwendet werden kann. |
| Default | 1 | Weist den Just-in-Time-Compiler (JIT) an, sein Standardverhalten zu verwenden, das das Aktivieren von Optimierungen, das Deaktivieren der Unterstützung von Edit and Continue sowie die Verwendung von Symbolspeichersequenzpunkten umfasst, falls vorhanden. Beginnend mit der .NET Framework Version 2.0 werden JIT-Nachverfolgungsinformationen immer generiert, der Microsoft Zwischensprache (MSIL) auf den nativen Codeoffset innerhalb einer Methode. |
| IgnoreSymbolStoreSequencePoints | 2 | Verwenden Sie die impliziten MSIL-Sequenzpunkte, nicht die Sequenzpunkte der Programmdatenbank (PDB). Die symbolischen Informationen enthalten normalerweise mindestens einen Microsoft Zwischensprachversatz (MSIL) für jede Quellzeile. Wenn der Just-in-Time-Compiler (JIT) gerade eine Methode kompiliert, fragt er die Profilerstellungsdienste nach einer Liste der MSIL-Offsets, die beibehalten werden sollen. Diese MSIL-Offsets werden als Sequenzpunkte bezeichnet. |
| EnableEditAndContinue | 4 | Bearbeitung aktivieren und fortfahren. Mit "Bearbeiten" und "Fortfahren" können Sie Änderungen am Quellcode vornehmen, während sich ihr Programm im Unterbrechungsmodus befindet. Die Möglichkeit zum Bearbeiten und Fortsetzen ist compilerabhängig. |
| DisableOptimizations | 256 | Deaktivieren Sie vom Compiler durchgeführte Optimierungen, um die Ausgabedatei zu verkleinern, schneller und effizienter zu machen. Optimierungen führen zur Neuanordnung von Code in der Ausgabedatei, was das Debuggen erschweren kann. In der Regel sollte die Optimierung beim Debuggen deaktiviert werden. Kombinieren Sie diesen Wert in Den Versionen 2.0 oder höher mit "Standard" (Standard | DisableOptimizations) zum Aktivieren der JIT-Nachverfolgung und Zum Deaktivieren von Optimierungen. |
Hinweise
Die DebuggableAttribute.DebuggingModes Enumeration gibt an, wie die Laufzeit wichtige Informationen für den Debugger während der Codegenerierung nachverfolgt. Diese Informationen helfen dem Debugger, eine umfassende Debugerfahrung zu bieten. Im Gegensatz zu der .NET Framework Version 1.1 erlauben Versionen 2.0 oder höher nicht, die Nachverfolgung durch den Just-in-Time-Compiler (JIT) zu deaktivieren. JIT-Nachverfolgung ist für debuggierbare Dateien immer aktiviert. In Version 2.0 und höher haben die Enumerationswerte die folgende Auswirkung.
| Debugmodus | Ergebnis |
|---|---|
| Nichts | Nachverfolgung, AKTIVIERTe JIT-Optimierungen |
| Vorgabe | Nachverfolgung, AKTIVIERTe JIT-Optimierungen |
| DisableOptimizations | Nachverfolgung, AKTIVIERTe JIT-Optimierungen |
| Standard | DisableOptimizations | Nachverfolgung, JIT-Optimierungen deaktiviert |
Sequenzpunkte werden verwendet, um Positionen im Microsoft MSIL-Code (Intermediate Language) anzugeben, auf die ein Debuggerbenutzer erwartet, dass er eindeutig verweisen kann, z. B. zum Festlegen eines Haltepunkts. Der JIT-Compiler stellt sicher, dass die MSIL nicht in zwei verschiedenen Sequenzpunkten in eine einzige systemeigene Anweisung kompiliert wird. Standardmäßig untersucht der JIT-Compiler den Symbolspeicher in der Programmdatenbankdatei (PDB) auf eine Liste zusätzlicher Sequenzpunkte. Das Laden der PDB-Datei erfordert jedoch, dass die Datei verfügbar ist und sich negativ auf die Leistung auswirkt. Ab Version 2.0 können Compiler "implizite Sequenzpunkte" im MSIL-Codestream über die Verwendung von MSIL-Anweisungennop" ausgeben. Solche Compiler sollten das IgnoreSymbolStoreSequencePoints Flag festlegen, um die Common Language Runtime zu benachrichtigen, damit die PDB-Datei nicht geladen wird.
Note
Diese Aufzählung wird in erster Linie von Sprachentwicklern verwendet. Es wird in der Regel nicht in der Anwendungsentwicklung verwendet. Entwicklungsumgebungen werden basierend auf Compilerparametern wie DebuggableAttribute.DebuggingModes und /optimize verwendet.