/Z7, /Zi, /ZI (Formato informazioni di debug)

Selezionano il tipo di informazioni di debug create per il programma e indicano se conservare tali informazioni nei file oggetto (obj) o in un database di programma (pdb).

/Z{7|i|I}

Note

Le opzioni sono descritte nella tabella riportata di seguito.

  • Nessuna correzione
    Non produce informazioni di debug, pertanto la compilazione è più veloce.

  • /Z7
    Genera un file obj contenente informazioni di debug sui simboli complete da utilizzare con il debugger. Le informazioni di debug sui simboli includono i nomi e i tipi di variabili, oltre che funzioni e numeri di riga. Non viene generato alcun file pdb.

    Per i distributori di librerie di terze parti l'assenza di un file pdb rappresenta un vantaggio. Tuttavia, i file obj per le intestazioni precompilate sono necessari durante la fase di collegamento e per il debug. Se nei file oggetto pch sono presenti soltanto informazioni sui tipi e nessun codice, sarà inoltre necessario eseguire la compilazione con /Yl (Inserisce il riferimento PCH per la libreria di debug).

  • /Zi
    Produce un database di programma (PDB) contenente informazioni sui tipi e di debug sui simboli da utilizzare con il debugger. Le informazioni di debug sui simboli includono i nomi e i tipi di variabili, oltre che funzioni e numeri di riga.

    /Zi non influisce sulle ottimizzazioni. Tuttavia, /Zi implica /debug; per ulteriori informazioni, vedere /DEBUG (Genera informazioni di debug).

    Le informazioni sui tipi vengono inserite nel file pdb, anziché nel file obj.

    È possibile utilizzare l'opzione /Gm (Attiva ricompilazione minima) con /Zi, mentre /Gm non è disponibile durante la compilazione con /Z7.

    Durante la compilazione con /Zi e /clr, l'attributo DebuggableAttribute non verrà inserito nei metadati dell'assembly. Per inserirlo, è necessario specificarlo nel codice sorgente. Questo attributo potrà avere effetto sulle prestazioni di runtime dell'applicazione. Per ulteriori informazioni sull'influenza dell'attributo Debuggable sulle prestazioni e su come modificare tale impatto, vedere Semplificazione del debug di un'immagine.

  • /ZI
    Genera un database di programma, come descritto in precedenza, in un formato che supporta la funzionalità Modifica e continuazione. Se si desidera utilizzare il debug di Modifica e continuazione, è necessario utilizzare questa opzione. Dal momento che la maggior parte delle ottimizzazioni non sono compatibili con la funzionalità Modifica e continuazione, l'utilizzo di /ZI disabilita qualsiasi istruzione #pragma optimize all'interno del codice.

    /ZI determina l'utilizzo di /Gy (Attiva collegamento a livello di funzione) e /FC (Percorso completo del file di codice sorgente nella diagnostica) nella compilazione.

    /ZI non è compatibile con /clr (Compilazione Common Language Runtime).

    Nota

    L'opzione del compilatore /ZI è disponibile solo nel compilatore destinato alla piattaforma x86. Non è invece disponibile nei compilatori destinati alla piattaforma x64 o alla famiglia di processori Itanium (IPF).

Il compilatore assegna al database di programma il nome progetto.pdb. Se si compila un file senza progetto, il compilatore crea un database denominato VCx0.pdb, dove x è il numero di versione principale di Visual C++ in uso. Il compilatore incorpora il nome del file PDB in ogni file obj creato utilizzando questa opzione, puntando il debugger alla posizione delle informazioni sui simboli e sul numero di riga. L'utilizzo di questa opzione fa sì che i file obj siano più piccoli in quanto le informazioni di debug vengono archiviate nel file pdb anziché nei file obj.

Se si crea una libreria da oggetti compilati utilizzando questa opzione, il file PDB associato deve essere disponibile quando la libreria viene collegata a un programma. In questo modo, se si distribuisce la libreria, è necessario distribuire il file PDB.

Per creare una libreria che contiene informazioni di debug senza utilizzare file pdb, è necessario selezionare l'opzione Compatibile C7 (/Z7) del compilatore. Se si utilizzano le opzioni delle intestazioni precompilate, le informazioni di debug sia per l'intestazione precompilata che per il resto del codice sorgente verranno inserite nel file PDB. L'opzione /Yd viene ignorata quando si specifica l'opzione Database di programma.

Per impostare l'opzione del compilatore nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Procedura: aprire le pagine delle proprietà dei progetti.

  2. Fare clic sulla cartella C/C++.

  3. Fare clic sulla pagina delle proprietà Generale.

  4. Modificare la proprietà Formato informazioni di debug.

Per impostare l'opzione del compilatore a livello di codice

Vedere anche

Riferimenti

Opzioni del compilatore

Impostazione delle opzioni del compilatore