DebuggableAttribute.DebuggingModes DebuggableAttribute.DebuggingModes DebuggableAttribute.DebuggingModes DebuggableAttribute.DebuggingModes Enum

Definizione

Specifica la modalità di debug per il compilatore JIT (Just-In-Time).Specifies the debugging mode for the just-in-time (JIT) compiler.

Questa enumerazione ha un attributo FlagsAttribute che consente una combinazione bit per bit dei valori del relativo membro.

public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
type DebuggableAttribute.DebuggingModes = 
Public Enum DebuggableAttribute.DebuggingModes
Ereditarietà
DebuggableAttribute.DebuggingModesDebuggableAttribute.DebuggingModesDebuggableAttribute.DebuggingModesDebuggableAttribute.DebuggingModes
Attributi

Campi

Default Default Default Default 1

Indica al compilatore JIT di usare il comportamento predefinito, in cui sono incluse l'attivazione delle ottimizzazioni, la disattivazione del supporto di modifica e continuazione e l'utilizzo dei punti di sequenza dell'archivio dei simboli, se presente.Instructs the just-in-time (JIT) compiler to use its default behavior, which includes enabling optimizations, disabling Edit and Continue support, and using symbol store sequence points if present. A partire da .NET Framework versione 2.0, le informazioni di verifica JIT, che rappresentano l'offset MSIL (Microsoft Intermediate Language) del codice nativo all'interno di un metodo, vengono sempre generate.Starting with the .NET Framework version 2.0, JIT tracking information, the Microsoft intermediate language (MSIL) offset to the native-code offset within a method, is always generated.

DisableOptimizations DisableOptimizations DisableOptimizations DisableOptimizations 256

Disabilitare le ottimizzazioni eseguite dal compilatore per ridurre le dimensioni e aumentare la velocità e l'efficienza dell'output.Disable optimizations performed by the compiler to make your output file smaller, faster, and more efficient. Le ottimizzazioni comportano una riorganizzazione del codice nel file di output, che può rendere difficoltoso il debug.Optimizations result in code rearrangement in the output file, which can make debugging difficult. Durante il debug è generalmente opportuno disabilitare l'ottimizzazione.Typically optimization should be disabled while debugging. Nelle versioni 2.0 o successive, combinare questo valore con Default (Default | DisableOptimizations) per abilitare il rilevamento JIT e disabilitare le ottimizzazioni.In versions 2.0 or later, combine this value with Default (Default | DisableOptimizations) to enable JIT tracking and disable optimizations.

EnableEditAndContinue EnableEditAndContinue EnableEditAndContinue EnableEditAndContinue 4

Abilitare Modifica e continuazione.Enable edit and continue. Modifica e continuazione consente di modificare il codice sorgente quando il programma è in modalità interruzione.Edit and continue enables you to make changes to your source code while your program is in break mode. La capacità di modificare e continuare dipende dal compilatore.The ability to edit and continue is compiler dependent.

IgnoreSymbolStoreSequencePoints IgnoreSymbolStoreSequencePoints IgnoreSymbolStoreSequencePoints IgnoreSymbolStoreSequencePoints 2

Usare i punti di sequenza MSIL impliciti, non i punti di sequenza PDB (Program DataBase).Use the implicit MSIL sequence points, not the program database (PDB) sequence points. Le informazioni sui simboli includono generalmente almeno un offset MSIL (Microsoft Intermediate Language) per ogni riga del codice sorgente.The symbolic information normally includes at least one Microsoft intermediate language (MSIL) offset for each source line. Quando il compilatore JIT (Just-In-Time) sta per compilare un metodo, richiede ai servizi relativi ai profili un elenco di offset MSIL da conservare.When the just-in-time (JIT) compiler is about to compile a method, it asks the profiling services for a list of MSIL offsets that should be preserved. Tali offset MSIL sono denominati punti di sequenza.These MSIL offsets are called sequence points.

None None None None 0

A partire da .NET Framework versione 2.0, le informazioni di verifica JIT vengono sempre generate e questo flag ha lo stesso effetto di Default, eccetto il fatto che imposta la proprietà IsJITTrackingEnabled su false.Starting with the .NET Framework version 2.0, JIT tracking information is always generated, and this flag has the same effect as Default, except that it sets the IsJITTrackingEnabled property to false. Tuttavia, poiché la verifica JIT è sempre abilitata, il valore della proprietà viene ignorato nella versione 2.0 o successiva.However, because JIT tracking is always enabled, the property value is ignored in version 2.0 or later.

Si noti che, a differenza del flag DisableOptimizations, il flag None non può essere usato per disabilitare le ottimizzazioni JIT.Note that, unlike the DisableOptimizations flag, the None flag cannot be used to disable JIT optimizations.

Commenti

Il DebuggableAttribute.DebuggingModes enumerazione specifica come il runtime deve tenere traccia delle informazioni importanti per il debugger durante la generazione del codice.The DebuggableAttribute.DebuggingModes enumeration specifies how the runtime is to track information important to the debugger during code generation. Queste informazioni consentono al debugger assicurano un'esperienza di debug.This information helps the debugger provide a rich debugging experience. A differenza di .NET Framework versione 1.1, le versioni 2.0 o versione successive non è possibile disattivare il rilevamento dal compilatore just-in-time (JIT).Unlike the .NET Framework version 1.1, versions 2.0 or later do not allow you to turn off tracking by the just-in-time (JIT) compiler. Il rilevamento JIT è sempre abilitato per i file di debug.JIT tracking is always enabled for debuggable files. Nella versione 2.0 e versioni successive, i valori di enumerazione hanno l'effetto seguente.In version 2.0 and later, the enumeration values have the following effect.

Modalità di debugDebugging mode RisultatoResult
nessunoNone Rilevamento on, le ottimizzazioni JIT abilitataTracking on, JIT optimizations enabled
Impostazione predefinitaDefault Rilevamento on, le ottimizzazioni JIT abilitataTracking on, JIT optimizations enabled
DisableOptimizationsDisableOptimizations Rilevamento on, le ottimizzazioni JIT abilitataTracking on, JIT optimizations enabled
Default | DisableOptimizationsDefault | DisableOptimizations Rilevamento on, le ottimizzazioni JIT disabilitatoTracking on, JIT optimizations disabled

Punti di sequenza vengono utilizzati per indicare le posizioni nel codice Microsoft intermediate language (MSIL) che un utente del debugger si aspetterebbe di essere in grado di fare riferimento in modo univoco, ad esempio per impostare un punto di interruzione.Sequence points are used to indicate locations in the Microsoft intermediate language (MSIL) code that a debugger user will expect to be able to refer to uniquely, such as for setting a breakpoint. Il compilatore JIT assicura che non viene compilato il codice MSIL in due punti di sequenza diversi in una singola istruzione nativa.The JIT compiler ensures it does not compile the MSIL at two different sequence points into a single native instruction. Per impostazione predefinita, il compilatore JIT esamina l'archivio dei simboli nel file di database (PDB) di programma per un elenco di punti di sequenza aggiuntivo.By default, the JIT compiler examines the symbol store in the program database (PDB) file for a list of additional sequence points. Tuttavia, il caricamento di file PDB file richiede che il file sia disponibile e ha un impatto negativo sulle prestazioni.However, loading the PDB file requires that the file be available and has a negative performance impact. A partire dalla versione 2.0, i compilatori possono generare "implicito" punti di sequenza nel flusso del codice MSIL tramite l'uso di MSIL "nop" istruzioni.Starting with version 2.0, compilers can emit "implicit sequence points" in the MSIL code stream through the use of MSIL "nop" instructions. Questo tipo di compilatori deve impostare il flag IgnoreSymbolStoreSequencePoints per notificare a common language runtime non viene caricato il file PDB.Such compilers should set the IgnoreSymbolStoreSequencePoints flag to notify the common language runtime to not load the PDB file.

Nota

Questa enumerazione viene utilizzata principalmente dagli sviluppatori di linguaggio.This enumeration is primarily used by language developers. Non è in genere utilizzato nello sviluppo di applicazioni.It is generally not used in application development. Usano gli ambienti di sviluppo IgnoreSymbolStoreSequencePoints base, ad esempio i parametri del compilatore /debug e /optimize.Development environments use IgnoreSymbolStoreSequencePoints based on compiler parameters such as /debug and /optimize.

Si applica a