Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra le opzioni del compilatore e del linker da impostare per consentire di eseguire il debug di una build di versione di un'applicazione.
Un'esperienza migliore è disponibile a partire da Visual Studio 2022 versione 17.14 che consente di eseguire il debug di codice ottimizzato come se fosse stato compilato non ottimizzato, mantenendo al tempo stesso la velocità del codice ottimizzato. Per altre informazioni, vedere debug dinamico C++ (anteprima).
Per eseguire il debug di una build di versione
Aprire la finestra di dialogo Proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore C++ e le proprietà di compilazione in Visual Studio.
Fare clic sul nodo C/C++ . Imposta Formato informazioni di debug su C7 compatibile (/Z7) o Database del programma (/Zi).
Espandere Linker e fare clic sul nodo Generale . Impostare "Abilita collegamento incrementale" su "No (/INCREMENTAL:NO)".
In Linker selezionare il nodo Debug . Impostare Generare informazioni di debug su Sì (/DEBUG).
In Linker selezionare il nodo Ottimizzazione . Impostare Riferimenti su No (/OPT:NOREF) e abilitare la riduzione COMDAT su No (/OPT:NOICF).
È ora possibile eseguire il debug dell'applicazione di compilazione della versione. Per trovare un problema, eseguire il codice (o usare il debug JIT) fino a quando non viene individuato il punto in cui si verifica l'errore e quindi determinare i parametri o il codice non corretti.
Se un'applicazione funziona in una compilazione di debug, ma non riesce in una build di versione, una delle ottimizzazioni del compilatore potrebbe esporre un difetto nel codice sorgente. Per isolare il problema, disabilitare le ottimizzazioni selezionate per ogni file di codice sorgente finché non si individua il file e l'ottimizzazione che causa il problema. Per accelerare il processo, è possibile dividere i file in due gruppi, disabilitare l'ottimizzazione in un gruppo e, quando si rileva un problema in un gruppo, continuare a dividere fino a quando non si isola il file di problema.
Usare /RTC per provare a esporre tali bug nelle compilazioni di debug.
Per altre informazioni, vedere Ottimizzazione del codice.