.PDB

File PDB

Program Database (Visual C++ Debug Symbols)
Fai una domanda
RISPOSTA RAPIDA

Un file PDB è un Program Database - un file di simboli di debug che il compilatore di Visual Studio crea insieme a un EXE o DLL compilato. Non si apre direttamente; Visual Studio o WinDbg lo caricano automaticamente durante il debug. La preoccupazione principale non è il malware ma la riservatezza: un PDB rivela nomi di funzioni interne e percorsi dei sorgenti, quindi è bene non includerlo nei pacchetti di rilascio pubblici.

Sviluppatore: Microsoft Categoria: File di sviluppo Standard aperto MIME: application/octet-stream
SI APRE SU Windows Linux
Correlati: .DO · .MD · .HEX · .XSD

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Aug 16, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file PDB?

I file .pdb contengono un database per un programma - nello specifico, un archivio strutturato di simboli di debug, mappature dei file sorgente e informazioni sui tipi prodotte dalla toolchain Microsoft Visual C++. Vengono utilizzati insieme al relativo .exe o .dll da cui sono stati compilati; non sono incorporati all'interno di tali binari ma distribuiti come file separati.

Informazioni di debug

I simboli di debug memorizzati nei file .pdb consentono ai debugger di trasmettere informazioni importanti sulle eccezioni, mappare gli indirizzi di memoria ai numeri di riga dei file sorgente ed esporre nomi di funzioni e variabili che vengono rimossi dal binario finale. Sono utili durante la risoluzione dei problemi del programma e la gestione degli errori sia in ambienti di sviluppo che di produzione.

Come vengono creati i file .pdb

I file .pdb vengono generati dai file sorgente durante il processo di compilazione dal compilatore MSVC (cl.exe) e dal linker (link.exe). *Non* sono un prodotto della compilazione Just-In-Time (JIT) - questo è un malinteso comune. I moderni file .pdb utilizzano il contenitore binario MSF 7.00 (Multi-Stream File) introdotto con Visual Studio .NET. Ogni .pdb è collegato al suo binario tramite un GUID e un contatore Age; un .pdb di una build diversa non verrà caricato. Poiché il formato è proprietario, solo strumenti dedicati come Visual Studio, WinDbg o llvm-pdbutil possono leggerli, sebbene Microsoft abbia pubblicato un'implementazione di riferimento.

Sicurezza e incolumità

RISCHIO: LOW

Un PDB è un dato passivo letto dai debugger - non contiene codice eseguibile, quindi aprirne uno è sicuro. La vera preoccupazione è la riservatezza, non il malware: un PDB rivela nomi di funzioni interne, percorsi dei file sorgente e struttura del codice, quindi distribuire o far trapelare uno di essi espone informazioni sugli interni del software (utili per il reverse engineering). Conserva i PDB di rilascio su un server di simboli privato invece di includerli nel prodotto.

Dettagli del formato

in sintesi
NOME COMPLETOProgram Database (Visual C++ Debug Symbols)anche noto come PDB symbol file, Microsoft Program Database
SVILUPPATOREMicrosoftdal 1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
TIPO MIMEapplication/octet-stream
TIPOContenitore binario di simboli di debug (Multi-Stream File / MSF) prodotto dalla toolchain MSVC
STANDARDAperto · royalty-free
Questa estensione è usata anche da…
  • Palm OS Database (PalmPilot / libro eReader) - Database Palm PRC/PDB - e-book e dati app PDA (header '...' all'offset 0x3C); aperto dagli strumenti Palm/eReader, non da Visual Studio.
  • Struttura molecolare Protein Data Bank - Un file PDB in testo semplice che descrive le coordinate atomiche 3D di una molecola; aperto da PyMOL/Chimera/Jmol.
  • Dati prezzi/portafoglio Quicken (.pdb) - Intuit Quicken scriveva un file di dati .pdb - il significato a cui il database ha erroneamente associato il suo programma di apertura «Quicken».
MAGIC BYTES · FIRMA DEL FILE
OFFSET
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c
HEX
4D6963726F736F667420432F432B2B204D534620372E30300D0A1A4453
ASCII
Microsoft C/C++ MSF 7.00···DS
I moderni PDB di MSVC iniziano con il magic SuperBlock MSF 7.00 da 0x20 byte «Microsoft C/C++ MSF 7.00\r\n\x1aDS\0\0\0». I vecchi file PDB 2.0 iniziano con «Microsoft C/C++ program database 2.00\r\n\x1aJG». (Nota: un PDB Palm e un PDB della Protein Data Bank sono file diversi che condividono questa estensione - vedi anche_usato_da.)

Programmi che aprono file PDB

Windows4 apps
Visual Studio Freemium I PDB si caricano automaticamente durante il debug di una build corrispondente; per un dump, File > Apri > Crash Dump e punta Strumenti > Opzioni > Debugging > Simboli alla cartella dei PDB. La Community edition è gratuita.
WinDbg (Debugging Tools for Windows) Gratuito Imposta il percorso dei simboli (.sympath) sulla cartella PDB/server dei simboli, quindi carica il dump o il target live - WinDbg risolve i simboli dal PDB.
llvm-pdbutil Open-source Riga di comando: «llvm-pdbutil dump» ispeziona stream, tipi e simboli all'interno di un PDB - utile per verificare o esplorarne uno senza un debugger.
dumpbin / DIA SDK tools Integrato Incluso in Visual Studio; ispeziona la directory di debug di un binario e (tramite DIA) legge i contenuti del PDB a livello programmatico.
Linux1 app
llvm-pdbutil Open-source Riga di comando: «llvm-pdbutil dump» ispeziona stream, tipi e simboli all'interno di un PDB - utile per verificare o esplorarne uno senza un debugger.

Dettagli tecnici

specifiche approfondite
Formato contenitoreMSF (Multi-Stream File) - un contenitore di stream interni basato su pagine che ospita più flussi di dati denominati all'interno di un singolo file
Firma del file (magic bytes)Inizia con la stringa ASCII `Microsoft C/C++ MSF 7.00` seguita da CR LF e byte di controllo specifici all'offset 0; i file legacy PDB 2.0 iniziano con `Microsoft C/C++ program database 2.00`
CodificaBinaria, ordine dei byte little-endian
Stream interniDBI (Debug Information), TPI/IPI (record di tipi e ID), stream di simboli pubblici e globali, stream di simboli per modulo e tabelle di mappatura sorgente/numero di riga
Chiave di collegamento binarioContatore GUID + Age scritto sia nel `.pdb` che nella directory di debug del relativo `.exe` o `.dll`; una mancata corrispondenza causa il rifiuto del file dei simboli da parte del debugger
Dimensione tipica del fileDa 100 KB a 500 MB; i grandi progetti C++ nativi producono regolarmente file `.pdb` nell'ordine delle centinaia di megabyte
CompressioneNessuna - i dati sono strutturati in pagine ma non compressi
Dimensione paginaPagine da 4 KB in MSF 7.00 (BigMsf); il vecchio contenitore MSF 2.0 utilizzava dimensioni di pagina inferiori
Varianti del formatoPDB 2.00 (legacy magic JG, MSVC 6.0 e precedenti); MSF 7.00 / BigMsf (da Visual Studio .NET in poi, attuale per C/C++); Portable PDB (formato multipiattaforma separato utilizzato da .NET/Roslyn)
Toolchain di produzioneCompilatore MSVC (`cl.exe`) e linker (`link.exe`); emesso anche da Clang/LLVM quando il target è Windows con i flag del compilatore `/Z7` o `/Zi`
Strumenti di consumoVisual Studio Debugger, WinDbg, DIA SDK, `llvm-pdbutil`, `dumpbin`; strumenti di analisi dei crash come i convertitori di simboli CrashPad e Breakpad
Supporto server dei simboliI file `.pdb` sono indicizzati per GUID + Age su un server di simboli (tramite `symstore.exe` o server compatibili); i debugger recuperano la copia corretta su richiesta utilizzando la chiave dalla directory di debug del binario
Supporto piattaformaNativo su Windows; lettura multipiattaforma tramite strumenti LLVM (`llvm-pdbutil`, LLDB) su Linux e macOS
Tipo MIMEapplication/octet-stream (nessun sottotipo MIME registrato dedicato)
Modello di distribuzioneUn `.pdb` per target di build (`.exe` o `.dll`); distribuito come file separato insieme al binario o memorizzato su un server di simboli privato/pubblico - non incorporato nel binario stesso
Rilasciato1990s (Microsoft Visual C++); MSF 7.00 container since Visual Studio .NET era
Ultima versioneMSF 7.00 ('BigMsf'); portable PDB used by .NET/Roslyn alongside it
Standard apertoSì · royalty-free
Specificagithub.com

Conversioni PDB

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file PDB. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file PDB.

Domande frequenti

Cos'è un file PDB in Visual Studio?
È un Program Database - un file di simboli di debug che il compilatore crea accanto al tuo EXE/DLL. Mappa il codice macchina ai file sorgente, ai numeri di riga e ai nomi, in modo che il debugger possa mostrare stack trace leggibili e consentirti di scorrere il codice.
Come si apre un file .pdb?
Normalmente non lo si apre direttamente - Visual Studio o WinDbg lo caricano automaticamente quando corrisponde al binario di cui si sta eseguendo il debug. Per ispezionarne uno, usa llvm-pdbutil o strumenti basati su DIA per esportare i suoi simboli come testo.
Perché il mio debugger dice che il PDB non corrisponde al binario?
Ogni PDB porta un timbro GUID+Age legato a una build specifica. Se l'EXE/DLL è stato ricompilato, il vecchio PDB non corrisponde più e il debugger lo rifiuta. Ricompila per ottenere un PDB corrispondente o recupera l'esatto PDB di quella build.
Posso convertire un .pdb in PDF?
Non per un PDB di Visual C++ - sono dati di debug binari, non un documento. (Se il tuo .pdb è in realtà un e-book Palm/eReader, che condivide l'estensione, Calibre può convertirlo in PDF - ma si tratta di un tipo di file diverso.)
Devo distribuire i file PDB con il mio programma?
No - la tua app funziona senza di essi. I PDB servono solo per il debug. Molti team li conservano su un server di simboli privato per poter analizzare i dump dei crash in seguito senza esporre la struttura dei sorgenti agli utenti.
Un PDB può recuperare il mio codice sorgente?
No. Mappa i file sorgente e i numeri di riga e memorizza nomi/tipi, ma non contiene il sorgente stesso. Rende il debug leggibile; non ricostruisce il tuo codice.

Riferimenti

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

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Estensioni correlate

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

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z