Share via


Fichiers de base de données du programme (C++)

Cette rubrique s'applique à :

Édition

Visual Basic

C#

F#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique s'applique La rubrique ne s'applique pas

Pro, Premium et Ultimate

La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique ne s'applique pas

La rubrique s'applique

La rubrique ne s'applique pas

Un fichier PDB (base de données du programme) contient des informations sur l'état du projet et le débogage, qui permettent l'édition des liens incrémentielle pour la configuration Debug de votre programme. Un fichier PDB est créé lors de la génération à l'aide de /ZI ou /Zi (pour C/C++).

Dans Visual C++, l'option /Fd permet de nommer le fichier PDB créé par le compilateur. Lorsque vous créez un projet dans Visual Studio à l'aide des Assistants, l'option /Fd est définie pour créer un fichier PDB nommé projet.PDB.

Si vous générez votre application C/C++ à l'aide d'un makefile, et que vous spécifiez /ZI ou /Zi sans /Fd, vous obtenez finalement deux fichiers PDB :

  • VC80.PDB   (Plus généralement, VCx0.PDB où x représente la version de Visual C++.) Ce fichier stocke toutes les informations de débogage concernant les fichiers OBJ individuels et réside dans le même répertoire que le makefile du projet.

  • project.pdb   Ce fichier stocke toutes les informations de débogage concernant le fichier .exe. Pour C/C++, il réside dans le sous-répertoire \debug.

Chaque fois qu'il crée un fichier OBJ, le compilateur C/C++ fusionne les informations de débogage dans VCx0.PBD. Celles-ci se composent d'informations de type, mais pas d'informations de symbole telles que les définitions de fonctions. Par conséquent, même si chaque fichier source inclut des fichiers d'en-tête courants tels que <windows.h>, les typedefs de ces en-têtes ne sont stockés qu'une seule fois, au lieu de l'être pour chaque fichier OBJ.

L'Éditeur de liens crée projet.PDB, qui contient les informations de débogage concernant le fichier EXE du projet. Le fichier projet.PDB contient toutes les informations de débogage, y compris les prototypes de fonction et pas seulement les informations de type présentes dans VCx0.PDB. Les deux fichiers PDB autorisent les mises à jour incrémentielles. L'Éditeur de liens incorpore également le chemin d'accès au fichier .pdb dans le fichier .exe ou .dll qu'il crée.

Le débogueur Visual Studio utilise le chemin d'accès au fichier PDB dans le fichier EXE ou DLL pour rechercher le fichier projet.PDB. Si le débogueur ne peut pas trouver le fichier PDB à cet emplacement ou que le chemin d'accès n'est pas valide (par exemple, lorsque le projet a été déplacé sur un autre ordinateur), le débogueur recherche le chemin d'accès contenant le fichier EXE, les chemins d'accès aux symboles spécifiés dans la boîte de dialogue Options(dossier Débogage, nœud Symboles). Si le débogueur ne trouve aucun fichier .PDB, la boîte de dialogue Rechercher des symboles qui s'affiche vous permet de rechercher des symboles ou d'ajouter des emplacements supplémentaires au chemin de recherche.

Important

Le débogueur charge uniquement le fichier PDB correspondant à exactement à celui créé au moment de la génération du fichier binaire (autrement dit, le fichier PDB doit être le fichier original ou une copie). Étant donné que le compilateur considère un certain nombre de facteurs lorsqu'il crée un fichier binaire, la disposition réelle d'un fichier binaire peut changer même si le code, lui, n'a pas changé. Pour plus d'informations, consultez l'entrée de blog MSDN Why does Visual Studio require debugger symbol files to *exactly* match the binary files that they were built with?

Voir aussi

Concepts

Fichiers de base de données du programme (C#, F# et Visual Basic)

Autres ressources

Paramètres et préparation du débogage

Historique des modifications

Date

Historique

Motif

Mars 2011

Ajout d'informations et d'un lien concernant la nécessité d'une correspondance exacte du fichier PDB.

Améliorations apportées aux informations.