DebuggableAttribute.DebuggingModes Enumeration

Definition

Gibt den Debugmodus für den Just-In-Time (JIT)-Compiler 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
DebuggableAttribute.DebuggingModes
Attribute

Felder

Default 1

Weist den Just-In-Time (JIT)-Compiler an, sein Standardverhalten zu verwenden. Dieses umfasst das Aktivieren von Optimierungen, das Deaktivieren des Bearbeiten- und Fortfahren-Supports und das Verwenden von Symbolspeichersequenzpunkten (sofern vorhanden). In .NET Framework Version 2.0 werden JIT-Tracking-Informationen (der MSIL-Offset (Microsoft Intermediate Language) zum Offset des systemeigenen Codes in einer Methode) immer generiert.

DisableOptimizations 256

Deaktivieren Sie die vom Compiler durchgeführten Optimierungen, damit Ihre Ausgabedatei kleiner, schneller und effizienter wird. Optimierungen führen zu Neuanordnungen von Code in der Ausgabedatei, wodurch das Debuggen erschwert werden kann. In der Regel sollte die Optimierung beim Debuggen deaktiviert werden. Kombinieren Sie diesen Wert in den Versionen ab 2.0 mit Default (Default | DisableOptimizations), um JIT-Tracking zu aktivieren und Optimierungen zu deaktivieren.

EnableEditAndContinue 4

Aktivieren Sie Bearbeiten und Fortfahren. Mit Bearbeiten und Fortfahren können Sie Änderungen am Quellcode vornehmen, während sich das Programm im Unterbrechungsmodus befindet. Die Möglichkeit des Bearbeitens und Fortfahrens ist vom Compiler abhängig.

IgnoreSymbolStoreSequencePoints 2

Verwenden Sie die impliziten MSIL-Sequenzpunkte und nicht die Programmdatenbank-Sequenzpunkte (PDB). Die Symbolinformationen enthalten i. d. R. mindestens einen MSIL-Offset (Microsoft Intermediate Language) für jede Quellzeile. Bevor der JIT-Compiler (Just-In-Time) eine Methode kompiliert, fordert er von den Profilerstellungsdiensten eine Liste der zu speichernden MSIL-Offsets an. Diese MSIL-Offsets werden Sequenzpunkte genannt.

None 0

Ab .NET Framework Version 2.0 werden stets JIT-Tracking-Informationen generiert. Dieses Flag hat denselben Effekt wie Default, jedoch mit der Ausnahme, dass die IsJITTrackingEnabled-Eigenschaft auf false gesetzt wird. Da die JIT-Verfolgung jedoch immer aktiviert ist, wird der Eigenschaftswert in Version 2.0 oder höher ignoriert.

Beachten Sie, dass das None-Flag im Gegensatz zum DisableOptimizations-Flag nicht zum Deaktivieren von JIT-Optimierungen verwendet werden kann.

Hinweise

Die DebuggableAttribute.DebuggingModes -Enumeration gibt an, wie die Laufzeit informationen nachverfolgen soll, die für den Debugger während der Codegenerierung wichtig sind. Diese Informationen helfen dem Debugger, eine umfassende Debugerfahrung bereitzustellen. Im Gegensatz zur .NET Framework Version 1.1 können Sie ab Version 2.0 die Nachverfolgung durch den JIT-Compiler (Just-In-Time) nicht deaktivieren. Die JIT-Nachverfolgung ist für debugfähige Dateien immer aktiviert. In Version 2.0 und höher haben die Enumerationswerte die folgende Auswirkung.

Debugmodus Ergebnis
Keine Nachverfolgung, JIT-Optimierungen aktiviert
Standard Nachverfolgung, JIT-Optimierungen aktiviert
DisableOptimizations Nachverfolgung, JIT-Optimierungen aktiviert
Standard-| DisableOptimizations Nachverfolgung, JIT-Optimierungen deaktiviert

Sequenzpunkte werden verwendet, um Speicherorte im MSIL-Code (Microsoft Intermediate Language) anzugeben, auf die ein Debuggerbenutzer eindeutig verweisen kann, z. B. zum Festlegen eines Haltepunkts. Der JIT-Compiler stellt sicher, dass er die MSIL nicht an zwei verschiedenen Sequenzpunkten in eine einzelne native Anweisung kompiliert. Standardmäßig untersucht der JIT-Compiler den Symbolspeicher in der PDB-Datei (Programmdatenbank) 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 mithilfe von MSIL-Anweisungennop" ausgeben. Solche Compiler sollten das IgnoreSymbolStoreSequencePoints Flag festlegen, um die Common Language Runtime zu benachrichtigen, die PDB-Datei nicht zu laden.

Hinweis

Diese Enumeration wird hauptsächlich von Sprachentwicklern verwendet. Es wird in der Regel nicht in der Anwendungsentwicklung verwendet. Entwicklungsumgebungen verwenden DebuggableAttribute.DebuggingModes basierend auf Compilerparametern wie /debug und /optimize.

Gilt für: