DebuggableAttribute.DebuggingModes Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica la modalità di debug per il compilatore JIT (Just-In-Time).
Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.
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
- Ereditarietà
- Attributi
Campi
| Nome | Valore | Descrizione |
|---|---|---|
| None | 0 | A partire da .NET Framework versione 2.0, vengono sempre generate informazioni di rilevamento JIT e questo flag ha lo stesso effetto di Default, ad eccezione del fatto che imposta la proprietà IsJITTrackingEnabled su Si noti che, a differenza del DisableOptimizations flag, il None flag non può essere usato per disabilitare le ottimizzazioni JIT. |
| Default | 1 | Indica al compilatore JIT (Just-In-Time) di usare il comportamento predefinito, che include l'abilitazione delle ottimizzazioni, la disabilitazione del supporto di Modifica e continuazione e l'uso dei punti di sequenza dell'archivio simboli, se presente. A partire da .NET Framework versione 2.0, le informazioni di rilevamento JIT, l'offset MSIL (Microsoft Intermediate Language) all'offset del codice nativo all'interno di un metodo, viene sempre generato. |
| IgnoreSymbolStoreSequencePoints | 2 | Usare i punti di sequenza MSIL impliciti, non i punti di sequenza del database di programma (PDB). Le informazioni simbolica in genere includono almeno un offset MSIL (Intermediate Language) Microsoft per ogni riga di origine. Quando il compilatore JIT (Just-In-Time) sta per compilare un metodo, chiede ai servizi di profilatura un elenco di offset MSIL che devono essere mantenuti. Questi offset MSIL sono denominati punti di sequenza. |
| EnableEditAndContinue | 4 | Abilitare la modifica e continuare. Modifica e continuazione consente di apportare modifiche al codice sorgente mentre il programma è in modalità di interruzione. La possibilità di modificare e continuare dipende dal compilatore. |
| DisableOptimizations | 256 | Disabilitare le ottimizzazioni eseguite dal compilatore per rendere il file di output più piccolo, più veloce e più efficiente. Le ottimizzazioni comportano la ridisistribuzione del codice nel file di output, che può rendere difficile il debug. In genere l'ottimizzazione deve essere disabilitata durante il debug. Nelle versioni 2.0 o successive, combinare questo valore con Default (Default | DisableOptimizations) per abilitare il rilevamento JIT e disabilitare le ottimizzazioni. |
Commenti
L'enumerazione DebuggableAttribute.DebuggingModes specifica come il runtime deve tenere traccia delle informazioni importanti per il debugger durante la generazione del codice. Queste informazioni consentono al debugger di offrire un'esperienza di debug avanzata. A differenza di .NET Framework versione 1.1, le versioni 2.0 o successive non consentono di disattivare il rilevamento da parte del compilatore JIT (Just-In-Time). Il rilevamento JIT è sempre abilitato per i file di cui è possibile eseguire il debug. Nella versione 2.0 e successive, i valori di enumerazione hanno l'effetto seguente.
| Modalità di debug | Result |
|---|---|
| None | Rilevamento su, ottimizzazioni JIT abilitate |
| Predefinito | Rilevamento su, ottimizzazioni JIT abilitate |
| DisableOptimizations | Rilevamento su, ottimizzazioni JIT abilitate |
| Impostazione predefinita | DisableOptimizations | Rilevamento su, ottimizzazioni JIT disabilitate |
I punti di sequenza vengono usati per indicare le posizioni nel codice MSIL (Intermediate Language) Microsoft che un utente del debugger si aspetta di poter fare riferimento in modo univoco, ad esempio per impostare un punto di interruzione. Il compilatore JIT garantisce che non compili il codice MSIL in due punti di sequenza diversi in un'unica istruzione nativa. Per impostazione predefinita, il compilatore JIT esamina l'archivio simboli nel file PDB (Program Database) per un elenco di punti di sequenza aggiuntivi. Tuttavia, il caricamento del file PDB richiede che il file sia disponibile e abbia un impatto negativo sulle prestazioni. A partire dalla versione 2.0, i compilatori possono generare "punti di sequenza impliciti" nel flusso di codice MSIL tramite l'uso delle istruzioni MSILnop" . Tali compilatori devono impostare il IgnoreSymbolStoreSequencePoints flag per notificare a Common Language Runtime di non caricare il file PDB.
Note
Questa enumerazione viene usata principalmente dagli sviluppatori di linguaggi. In genere non viene usato nello sviluppo di applicazioni. Gli ambienti di sviluppo usano DebuggableAttribute.DebuggingModes in base ai parametri del compilatore, ad esempio /debug e /optimize.