File di database di programma (C++)

Le informazioni contenute in questo argomento sono valide per:

Edizione

Visual Basic

C#

F#

C++

Web Developer

Express

Argomento non applicabile Argomento non applicabile Argomento non applicabile Argomento applicabile Argomento non applicabile

Pro, Premium e Ultimate

Argomento non applicabile Argomento non applicabile Argomento non applicabile

Argomento applicabile

Argomento non applicabile

Un file di database di programma (PDB) contiene le informazioni relative al debug e allo stato del progetto che consentono il collegamento incrementale di una configurazione di debug del programma. Un file PDB viene creato quando si esegue una compilazione con il formato /ZI o /Zi (per C/C++).

In Visual C++ l'opzione /Fd assegna un nome al file PDB creato dal compilatore. Quando un progetto viene creato in Visual Studio utilizzando le creazioni guidate, l'opzione /Fd viene impostata in modo da creare un file PDB chiamato progetto.PDB.

Se l'applicazione C/C++ viene compilata utilizzando un makefile e si specifica /ZI o /Zi senza /Fd, vengono generati due file PDB:

  • VC80.PDB   (o più genericamente VCx0.PDB, dove x rappresenta la versione di Visual C++) In questo file, disponibile nella stessa directory in cui si trova il makefile del progetto, vengono memorizzate tutte le informazioni di debug relative ai singoli file OBJ.

  • progetto.PDB   In questo file vengono archiviate tutte le informazioni di debug relative al file EXE. Per C/C++, questo file si trova nella sottodirectory \debug.

Ogni volta che crea un file OBJ, il compilatore C/C++ unisce le informazioni di debug nel file VCx0.PDB. Queste includono informazioni sui tipi ma non sui simboli, quali le definizioni delle funzioni. Pertanto, anche se ciascun file di origine include file di intestazione comuni, quali <windows.h>, i typedef di tali intestazioni vengono archiviati solo una volta, anziché in ciascun file OBJ.

Il linker crea il file progetto.PDB contenente informazioni di debug relative al file EXE del progetto. Il file progetto.PDB contiene non solo le informazioni sui tipi disponibili nel file VCx0.PDB, ma tutte le informazioni di debug, inclusi i prototipi di funzione. Entrambi i file PDB supportano gli aggiornamenti incrementali. Il linker incorpora inoltre il percorso del file con estensione pdb nel file con estensione exe o dll creato.

Il debugger di Visual Studio utilizza il percorso del file PDB specificato nel file EXE o DLL per individuare progetto.PDB. Se il file PDB non viene trovato in tale percorso oppure se il percorso non è valido, ad esempio perché il progetto è stato spostato in un altro computer, verrà eseguita una ricerca nel percorso contenente il file EXE, i percorsi di simboli specificati nella finestra di dialogo Opzioni (cartella Debug, nodo Simboli). Se non viene trovato alcun file PDB, viene visualizzata una finestra di dialogo Trova simboli che consente di cercare simboli o aggiungere altri percorsi al percorso di ricerca.

Nota importanteImportante

Il debugger carica un solo PDB di un file binario che corrisponde esattamente al PDB creato alla compilazione del file binario, ovvero il PDB deve essere l'originale o una copia. Poiché il compilatore considera una serie di fattori per la creazione di un file binario, il layout effettivo di un file binario può cambiare anche se il codice non è cambiato. Per ulteriori informazioni, vedere il post del blog MSDN sulla necessità di creare una corrispondenza esatta tra i file di simboli del debugger e i file binari con cui sono stati creati.

Vedere anche

Concetti

File di database di programma (C#, F #e Visual Basic)

Altre risorse

Impostazioni di debug e preparazione

Cronologia delle modifiche

Data

Cronologia

Motivo

Marzo 2011

Informazioni e collegamenti aggiunti in base ai requisiti del PDB.

Miglioramento delle informazioni.