.PDB

Fichier PDB

Program Database (Visual C++ Debug Symbols)
Poser une question
RÉPONSE RAPIDE

Un fichier PDB est une Program Database - un fichier de symboles de débogage que le compilateur Visual Studio crée à côté d'un EXE ou d'une DLL compilée. Vous ne l'ouvrez pas directement ; Visual Studio ou WinDbg le charge automatiquement lors du débogage. La préoccupation principale n'est pas le malware mais la confidentialité : un PDB révèle les noms de fonctions internes et les chemins sources, gardez-le donc hors des paquets de distribution publics.

Développeur : Microsoft Catégorie : Fichiers de développement Standard ouvert MIME: application/octet-stream
S'OUVRE SUR Windows Linux
Lié : .DO · .MD · .HEX · .XSD

Sur cette page

19k+ extensions indexées
Dernière révision le Aug 16, 2026

Pas sûr de la nature de votre fichier ?

Déposez n'importe quel fichier dans notre identificateur - nous lisons juste les premiers octets pour nommer le format.

Identifier un fichier

Qu'est-ce que le format de fichier PDB ?

Les fichiers .pdb contiennent une base de données pour un programme - plus précisément, un stockage structuré de symboles de débogage, de mappages de fichiers sources et d'informations de type produits par la chaîne d'outils Microsoft Visual C++. Ils sont utilisés conjointement avec le .exe ou la .dll correspondant à partir desquels ils ont été compilés ; ils ne sont pas intégrés dans ces binaires mais distribués sous forme de fichiers séparés.

Informations de débogage

Les symboles de débogage stockés dans les fichiers .pdb permettent aux débogueurs de relayer des informations importantes sur les exceptions, de mapper les adresses mémoire aux numéros de ligne des fichiers sources et d'exposer les noms de fonctions et de variables qui sont supprimés du binaire final. Ils sont utiles lors du dépannage du programme et de la résolution d'erreurs dans les environnements de développement et de production.

Comment les fichiers .pdb sont créés

Les fichiers .pdb sont générés à partir des fichiers sources pendant le processus de compilation par le compilateur MSVC (cl.exe) et l'éditeur de liens (link.exe). Ils ne sont *pas* le produit d'une compilation Just-In-Time (JIT) - c'est une idée reçue courante. Les fichiers .pdb modernes utilisent le conteneur binaire MSF 7.00 (Multi-Stream File) introduit avec Visual Studio .NET. Chaque .pdb est lié à son binaire via un GUID et un compteur d'âge (Age) ; un .pdb provenant d'une version différente ne se chargera pas. Comme le format est propriétaire, seuls des outils dédiés tels que Visual Studio, WinDbg ou llvm-pdbutil peuvent les lire, bien que Microsoft ait publié une implémentation de référence.

Sécurité et sûreté

RISQUE : LOW

Un PDB est une donnée passive lue par les débogueurs - il ne contient aucun code exécutable, donc en ouvrir un est sûr. La véritable préoccupation est la confidentialité, pas les logiciels malveillants : un PDB révèle les noms de fonctions internes, les chemins des fichiers sources et la structure du code, donc en livrer ou en divulguer un expose des informations sur les rouages internes de votre logiciel (utiles pour l'ingénierie inverse). Conservez les PDB de version finale sur un serveur de symboles privé plutôt que de les regrouper avec le produit.

Détails du format

en bref
NOM COMPLETProgram Database (Visual C++ Debug Symbols)alias PDB symbol file, Microsoft Program Database
DÉVELOPPEURMicrosoftdepuis 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
TYPE MIMEapplication/octet-stream
TYPEConteneur de symboles de débogage binaire (Multi-Stream File / MSF) produit par la chaîne d'outils MSVC
STANDARDOuvert · libre de droits
Cette extension est également utilisée par…
  • Base de données Palm OS (PalmPilot / livre eReader) - Base de données Palm PRC/PDB - livres électroniques et données d'applications PDA (en-tête '...' à l'offset 0x3C) ; ouvert par les outils Palm/eReader, pas Visual Studio.
  • Structure moléculaire Protein Data Bank - Un fichier PDB en texte brut décrivant les coordonnées atomiques 3D d'une molécule ; ouvert par PyMOL/Chimera/Jmol.
  • Données de prix/portefeuille Quicken (.pdb) - Intuit Quicken écrivait un fichier de données .pdb - la signification à laquelle la base de données a par erreur attaché son ouvreur « Quicken ».
OCTETS MAGIQUES · SIGNATURE DE FICHIER
OFFSET
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
HEX
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
Les PDB MSVC modernes commencent par la magie SuperBlock MSF 7.00 de 0x20 octets « Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0 ». Les anciens fichiers PDB 2.0 commencent par « Microsoft C/C++ program database 2.00\r\n\x1aJG ». (Sans rapport : un PDB Palm et un PDB Protein Data Bank sont des fichiers différents partageant cette extension - voir also_used_by.)

Programmes qui ouvrent les fichiers PDB

Windows4 apps
Visual Studio Freemium Les PDB se chargent automatiquement lors du débogage d'une version correspondante ; pour un dump, Fichier > Ouvrir > Crash Dump et pointez Outils > Options > Débogage > Symboles vers le dossier PDB. L'édition Community est gratuite.
WinDbg (Debugging Tools for Windows) Gratuit Définissez le chemin des symboles (.sympath) vers le dossier PDB/serveur de symboles, puis chargez le dump ou la cible en direct - WinDbg résout les symboles à partir du PDB.
llvm-pdbutil Open-source Ligne de commande : « llvm-pdbutil dump » inspecte les flux, les types et les symboles à l'intérieur d'un PDB - utile pour vérifier ou explorer un fichier sans débogueur.
dumpbin / DIA SDK tools Intégré Livré avec Visual Studio ; inspecte le répertoire de débogage d'un binaire et (via DIA) lit le contenu du PDB par programmation.
Linux1 app
llvm-pdbutil Open-source Ligne de commande : « llvm-pdbutil dump » inspecte les flux, les types et les symboles à l'intérieur d'un PDB - utile pour vérifier ou explorer un fichier sans débogueur.

Détails techniques

spécifications approfondies
Format de conteneurMSF (Multi-Stream File) - un conteneur de flux interne basé sur des pages qui contient plusieurs flux de données nommés dans un seul fichier
Signature de fichier (octets magiques)Commence par la chaîne ASCII `Microsoft C/C++ MSF 7.00` suivie de CR LF et d'octets de contrôle spécifiques à l'offset 0 ; les fichiers hérités PDB 2.0 commencent par `Microsoft C/C++ program database 2.00`
EncodageBinaire, ordre des octets petit-boutiste (little-endian) partout
Flux internesDBI (Debug Information), TPI/IPI (enregistrements de types et d'ID), flux de symboles publics et globaux, flux de symboles par module, et tables de mappage source/numéro de ligne
Clé de liaison binaireGUID + compteur d'âge écrit à la fois dans le `.pdb` et dans le répertoire de débogage de son `.exe` ou `.dll` associé ; une discordance entraîne le rejet du fichier de symboles par le débogueur
Taille de fichier typique100 Ko à 500 Mo ; les grands projets C++ natifs produisent couramment des fichiers `.pdb` de plusieurs centaines de mégaoctets
CompressionAucune - les données sont structurées en pages mais non compressées
Taille de pagePages de 4 Ko dans MSF 7.00 (BigMsf) ; l'ancien conteneur MSF 2.0 utilisait des tailles de page plus petites
Variantes de formatPDB 2.00 (magie JG héritée, MSVC 6.0 et antérieur) ; MSF 7.00 / BigMsf (Visual Studio .NET et versions ultérieures, actuel pour C/C++) ; Portable PDB (format multiplateforme distinct utilisé par .NET/Roslyn)
Chaîne d'outils de productionCompilateur MSVC (`cl.exe`) et éditeur de liens (`link.exe`) ; également émis par Clang/LLVM lors du ciblage de Windows avec les drapeaux de compilation `/Z7` ou `/Zi`
Outils de consommationVisual Studio Debugger, WinDbg, DIA SDK, `llvm-pdbutil`, `dumpbin` ; outils d'analyse de plantage tels que les convertisseurs de symboles CrashPad et Breakpad
Support de serveur de symbolesLes fichiers `.pdb` sont indexés par GUID + Age sur un serveur de symboles (via `symstore.exe` ou des serveurs compatibles) ; les débogueurs récupèrent la copie correcte à la demande en utilisant la clé du répertoire de débogage du binaire
Support plateformeNatif sur Windows ; lecture multiplateforme via les outils LLVM (`llvm-pdbutil`, LLDB) sur Linux et macOS
Type MIMEapplication/octet-stream (pas de sous-type MIME enregistré dédié)
Modèle de déploiementUn `.pdb` par cible de compilation (`.exe` ou `.dll`) ; distribué comme un fichier séparé à côté du binaire ou stocké sur un serveur de symboles privé/public - non intégré dans le binaire lui-même
Publié1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
Dernière versionMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
Standard ouvertOui · libre de droits
Spécificationgithub.com

Conversions PDB

Q&R de la communauté

posées par les utilisateurs
Poser une question rapide
Obtenez de l'aide de personnes qui travaillent avec des fichiers PDB. Soyez précis - incluez votre système et la version du logiciel.
Aucun compte requis · réponses généralement sous un jour

Pas encore de questions - soyez le premier à poser une question sur les fichiers PDB.

Foire aux questions

Qu'est-ce qu'un fichier PDB dans Visual Studio ?
C'est une Program Database - un fichier de symboles de débogage que le compilateur crée à côté de votre EXE/DLL. Il mappe le code machine aux fichiers sources, aux numéros de ligne et aux noms afin que le débogueur puisse afficher des traces de pile lisibles et vous permettre de parcourir le code.
Comment ouvrir un fichier .pdb ?
Normalement, vous ne l'ouvrez pas directement - Visual Studio ou WinDbg le charge automatiquement lorsqu'il correspond au binaire que vous déboguez. Pour en inspecter un, utilisez llvm-pdbutil ou des outils basés sur DIA pour extraire ses symboles sous forme de texte.
Pourquoi mon débogueur dit-il que le PDB ne correspond pas au binaire ?
Chaque PDB porte une empreinte GUID+Age liée à une version spécifique. Si l'EXE/DLL a été recompilé, l'ancien PDB ne correspond plus et le débogueur le refuse. Recompilez pour obtenir un PDB correspondant, ou récupérez le PDB exact de cette version.
Puis-je convertir un .pdb en PDF ?
Pas pour un PDB Visual C++ - ce sont des données de débogage binaires, pas un document. (Si votre .pdb est en réalité un livre électronique Palm/eReader, qui partage l'extension, Calibre peut convertir celui-ci en PDF - mais c'est un type de fichier différent.)
Dois-je livrer les fichiers PDB avec mon programme ?
Non - votre application fonctionne sans eux. Les PDB ne servent qu'au débogage. De nombreuses équipes les conservent sur un serveur de symboles privé afin de pouvoir analyser les rapports de plantage plus tard sans exposer la structure source aux utilisateurs.
Un PDB peut-il récupérer mon code source ?
Non. Il pointe vers des fichiers sources et des numéros de ligne et stocke des noms/types, mais il ne contient pas la source elle-même. Il rend le débogage lisible ; il ne reconstruit pas votre code.

Références

1Microsoft Learn - Symbol (.pdb) files in the debuggerlearn.microsoft.com
2microsoft/microsoft-pdb - PDB format informationgithub.com

Continuer l'exploration

à travers la base de données

Top des extensions cette semaine

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.EXEWindows Executable (Portable Executable)
5.DATProgram Data File (generic)
6.MDMarkdown Document
7.TMPTemporary File
8.BINCD/DVD Disc Image (BIN/CUE)
9.M4AMPEG-4 Audio File
10.ODTOpenDocument Text

Extensions liées

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Outils de fichiers gratuits

Un identificateur de fichier et un convertisseur d'images dans le navigateur - tout s'exécute sur votre appareil.

Ouvrir la boîte à outils

Parcourir les extensions de fichiers A-Z