2012-06-26 14 views
9

Quali sono i file PDB all'interno dei file DLL di .NET e cosa fa? Solitamente i popoli rimuovono questo file nella distribuzione e mantengono il file dll solo nelle cartelle lib ma sembra che non sia successo niente e tutto funziona bene ...Che cos'è il file PDB?

Quindi, quali sono i file PDB?

+1

Vedere [Gestione di simboli e codice sorgente] (http://msdn.microsoft.com/en-us/library/ms241613) per la discussione dei file del database del programma . –

risposta

12

Un file di database dei programmi non ha nulla a che fare con il collegamento incrementale e lo stato del progetto! I file PDB vengono utilizzati per mappare EXE con SOURCES. Sono usati per i binari di debug e release. Here an article che spiega questo collegamento vincolante tra un'immagine eseguibile e il suo file PDB

+0

Questo articolo (http://www.codeproject.com/Articles/37883/ Simboli-File-Locator) risolve anche questo problema – mox

+0

Quindi se ho un file di configurazione sul mio livello intermedio con associazioni, endpoint, sicurezza, ecc ... allora fa riferimento a pdb? –

0

In .NET, per lo più mantiene solo informazioni sui simboli per le variabili locali (e anche le informazioni sull'ambito IIRC).

+0

Puoi approfondire i simboli? –

7

I file PDB memorizzano le informazioni che consentono di eseguire il debug di un'applicazione.

Il motivo per cui i file non vengono solitamente distribuiti è che di solito non è necessario spedirli. Se si desidera eseguire il debug dell'applicazione, è sempre possibile caricarli da una directory, una condivisione di rete o un server dei simboli.

+0

+1 voto. Grazie per la tua risposta, ma non posso contrassegnare tutte le risposte come corrette. –

1

Un database file di programma (PDB) detiene il debug e le informazioni sullo stato del progetto che permette il collegamento incrementale di una configurazione di debug del vostro programma. Un file PDB viene creato quando si compila un programma C/C++ con/ZI o/Zi o un programma Visual Basic/C#/JScript .NET con/debug. Ogni volta che crea un file OBJ, il compilatore C/C++ unisce le informazioni di debug in VCx0.PBD. Le informazioni inserite includono informazioni sul tipo ma non includono informazioni sui simboli come le definizioni delle funzioni. Quindi, anche se ogni file sorgente include file di intestazione comuni come, i typedef di quelle intestazioni sono memorizzati solo una volta, invece di essere in ogni file OBJ.

+2

Questo non è corretto! Il PDB non ha nulla a che fare con le informazioni sullo stato del progetto e il collegamento incrementale. Il PDB contiene simboli come le definizioni. Vedi più dettagli qui sotto da mox. – mox

+1

Sembra una copia + incolla di https://msdn.microsoft.com/en-us/library/yd4f8bd1(vs.71).aspx – michaelmsm89