À quoi sert un fichier PDB ?
Fichiers PDB : Ce que tout développeur doit savoir
Exemple de scénario PDB :
Qu’est-ce qu’un fichier PDB ?
La plupart des développeurs doivent savoir que les fichiers PDB sont utilisés pour aider au débogage logiciel. Mais comment il fonctionne exactement, nous ne le savons peut-être pas bien. Cet article décrit le stockage et le contenu des fichiers PDB. Il décrit également comment le débogueur trouve le fichier PDB correspondant à binay et comment il trouve le code source correspondant à binay. Cet article s’adresse à tous les développeurs natifs et managés.
Avant de commencer, définissons deux termes : build privé, qui désigne une build générée sur la propre machine du développeur ; Build public, ce qui signifie une build générée sur une machine de build publique. la construction privée est relativement simple, car PDB et binay sont au même endroit, et généralement les problèmes que nous avons concernent la construction publique.
La chose la plus importante que tous les développeurs doivent savoir, c’est que « les fichiers PDB sont tout aussi importants que le code source », sans lequel on ne peut même pas déboguer. Pour la compilation publique, le serveur de symboles doit stocker tous les PDB, puis lorsque l’utilisateur signale une erreur, le débogueur peut automatiquement trouver le fichier PDB correspondant dans binay, et Visual Studio et Windbg savent comment accéder au serveur de symboles. Avant de stocker PDB et binay sur le serveur de symboles, vous devez également indexer la source de la course PDB, qui consiste à associer PDB et source.
La partie suivante suppose que le serveur de symboles et l’indexation du serveur source sont déjà configurés. TFS2010 peut être fait aussi simplement que l’indexation de source et la copie du serveur de symboles pour une nouvelle version.
2. Le contenu du fichier PDB
Officiellement au début du contenu de PDB, PDB n’est pas un format de fichier public, mais Microsoft fournit une API pour aider à obtenir des données de PDB.
Le PDB Natif C++ contient les informations suivantes : * adresses de fonctions publiques, privées et statiques ; * Le nom et l’adresse de la variable globale ; * Noms et décalages des paramètres et variables locales sur la pile ; * définitions de type de classe, structure et données ; * Données d’omission de pointeur de trame pour parcourir la pile native sur x86 ; * Le nom et le nombre de lignes dans le fichier source ;
Le .NET PDB ne contient que 2 parties d’information : * Code source nom du fichier et nombre de lignes ; * et le nom de la variable locale ; * Toutes les autres données sont déjà incluses dans le fichier . NET Metadata ;
|