Share via


Debug e ottimizzazione JIT

Le informazioni contenute in questo argomento sono valide per:

Edizione

Visual Basic

C#

C++

Web Developer

Express

Argomento applicabile Argomento applicabile

Solo gestito

Argomento applicabile

Pro, Premium e Ultimate

Argomento applicabile Argomento applicabile

Solo gestito

Argomento applicabile

Quando si esegue il debug di un'applicazione gestita, per impostazione predefinita viene disattivata l'ottimizzazione del codice JIT (Just-In-Time). Viene pertanto eseguito il debug di codice non ottimizzato. L'esecuzione di codice non ottimizzato è più lenta, ma il debug è più completo. Il debug di codice ottimizzato è più complesso ed è consigliabile eseguirlo solo se un problema si verifica nel codice ottimizzato ma non può essere riprodotto nella versione non ottimizzata.

L'ottimizzazione JIT è controllata in Visual Studio dall'opzione Disattiva l'ottimizzazione JIT al caricamento del modulo. Questa opzione è disponibile nella pagina Generale, nodo Debug, della finestra di dialogo Opzioni.

Se si deseleziona l'opzione Disattivare l'ottimizzazione JIT al caricamento del modulo, è possibile eseguire il debug del codice JIT ottimizzato, ma questa operazione può risultare limitata poiché il codice ottimizzato non corrisponde al codice sorgente. Di conseguenza, in alcune finestre del debugger, ad esempio Variabili locali e Auto, è possibile che non vengano visualizzate tutte le informazioni presenti quando si esegue il debug di codice non ottimizzato.

Un'altra differenza importante riguarda il debug con Just My Code. Se si esegue il debug con Just My Code, il codice ottimizzato è ritenuto dal debugger codice non utente, che non deve essere visualizzato durante il debug. Se viene eseguito il debug di codice ottimizzato JIT, pertanto, è utile disattivare Just My Code. Per ulteriori informazioni, vedere Procedura: eseguire l'istruzione Just My Code.

Tenere presente che l'opzione Disattivare l'ottimizzazione JIT al caricamento del modulo comporta la disattivazione dell'ottimizzazione del codice durante il caricamento dei moduli. Se ci si connette a un processo già in esecuzione, è possibile che contenga codice già caricato, compilato tramite JIT e ottimizzato. L'opzione Disattivare l'ottimizzazione JIT al caricamento del modulo non influisce su tale codice, ma ha effetto sui moduli caricati dopo la connessione. Questa opzione, inoltre, non ha effetto su moduli, ad esempio WinForms.dll, creati con NGEN.

Vedere anche

Attività

Procedura: eseguire l'istruzione Just My Code

Concetti

Processo di esecuzione gestita

Altre risorse

Debug del codice gestito

Connessione a processi in esecuzione