Where I can find such information? I've already read the undocumented windows 2000 secrets explanation of it but it isn't complete. For example the 3rd stream format isn't explained. I have looked at this, where some general info about the streams is given but nothing more.
-
Thanks for your answers! I looked at the links given. It really seems that this file format isn't very documented. I read this article and I'm wondering where this "allocation bit array" is stored in the file?– sasho648Commented Aug 1, 2013 at 21:16
-
1If anyone is still looking for information I've nailed down reading and writing PDB 7.0 (MSF 7.00). The code is much clearer than other projects so you might want to refer to it: github.com/jcdickinson/symblr/tree/master/Symblr.Core/Symbols/…– Jonathan DickinsonCommented May 20, 2015 at 22:06
4 Answers
You can find some information about PDB on the blog of PDBParse's author:
- http://moyix.blogspot.fr/2007/08/pdb-stream-decomposition.html
- http://moyix.blogspot.fr/2007/10/types-stream.html
This article is a good resource about PDB :
Other link on the subject :
- http://www.informit.com/articles/article.aspx?p=22685
- http://www.informit.com/articles/article.aspx?p=22429&seqNum=5
- http://www.wintellect.com/blogs/jrobbins/pdb-files-what-every-developer-must-know
I hope you will find your happiness in these links ;)
Here is something directly from Microsoft.
-
Straight from the horse's mouth, as the saying goes: "Open source, from Microsoft with love". Well found! (How did you come across it?)– JongwareCommented Oct 30, 2015 at 22:28
-
@usr2564301 probably he read some news about that when Google started working on switching to Clang– phuclvCommented Mar 7, 2018 at 5:41
Since the format is internal to Microsoft you likely won't find any official documentation. The best bet is various reverse engineering efforts on the format:
- PDB Parser (the one you found)
- PDBparse (in Python)
- Wine project has a partial implementation of dbghelp.dll, including PDB parsing.
P.S. I just remembered that there is an open-source Microsoft project called "CCI Metadata" which does provide some C# code for reading and writing PDB files. Not sure about the legality of using it to make your own PDB parser, but it does provide information which is probably as the close to official docs as you can get.
This is what I've found:
- Exploring Symbol Type Information with PdbXtract - from Mendiat.
PdbXtract is not a pure PDB parser. It only extracts type information using Microsoft’s DebugInterface Access (DIA) COM. If you are interested in just parsing/dumping raw PDB information, there are a few alternatives out there to DIA, including Volatility’s open source pdbparse (http://code.google.com/p/pdbparse/) or the PDB utility that comes with the Undocumented Windows 2000 Secrets book. However, most of the practical tools I have seen that operate on PDB’s use DIA, including Microsoft’s own Dia2dump, this one http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P and this one http://www.ishani.org/web/articles/obsolete/pdb-cracking-tool/, to name a few. To reiterate, PdbXtract does not parse or capture the wealth of other information available in a PDB, including: functions, debug streams, modules, publics, globals, files, section information, injected sources, source files, OEM specific types, compilands, and others.
- Help me to read .pdb file - from stackoverflow