News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

PDB File Format

Started by gwapo, June 27, 2006, 06:22:36 AM

Previous topic - Next topic

gwapo

Hi,

Sorry if this is not a programming question.

I'm currently writting a tool for dumping information contained in a Program Database (*.PDB)  generated by various compilers, like Visual C++. I tried wotsit.org and MSDN but I can't find any documentation or specification. Searching the newsgroups point me to an old book Undocumented Windows 2000 secret, in which I currently don't have.

Do you guys know any link discussing the PDB file format in details?

Thanks in advance,

-chris

six_L

I don't know whether it is what you want to?

[attachment deleted by admin]
regards

gwapo

Thanks for the response six_L,

But the files on your attachment are the same files in wotsit.org, and they are documenting Pilot Database file format, while I'm looking for Program Database file format specification. The program database file format contains debug and symbol information, as well as other useful information about a particular program built with debugging information.

Regards,

-chris

zooba

http://www.awprofessional.com/articles/article.asp?p=22685&rl=1

This appears to be an excerpt from the book you mention.

Google: "program database" pdb file format for more :wink

Cheers,

Zooba :U

gwapo

Thanks, that will surely help!
I tried google too, and I don't know how in the world did I missed that  :eek

The article looks really good, and at quick glance it seems it documents version 2 of the PDB file format (looking from the signature "Microsoft C/C++ program database 2.00"), and the current PDB file produced by Visual Studio 2005 is version 7 (Signature "Microsoft C/C++ MSF 7.00") :bg

Anyway,  at least I can work from here, thanks and best regards,

-chris


Ossa

Hi there, the files you want are the CV4 spec part of the MS COFF and PE specs (includes PDB as this is now usually encoded in CV (but CV5)). See this thread.

Note the comment at the bottom of one of the links (the MSDN one) says that because the format of the PDB is now closed (not released), MS has the DIA SDK (Debug Access Interface SDK) which is the way that you should now query the PDB files.

Hope that helps,
Ossa
Website (very old): ossa.the-wot.co.uk

gwapo

Thanks Ossa, I downloaded the spec, and looking at it, surely this will keep me busy for a while  :thumbu

By the way, nice Hitsugaya avatar, I am Bleach fanatic too  :U

Best Regards,

-chris

ToutEnMasm

Hello,
the better way to flush the informationn of .pdb is to use the functions of dbghelp.dll.

It's part of the debugging tools for windows.
                                 ToutEnMasm

gwapo

That could be the easier way, but what I am doing is a dumper utility which is, as much as possible, less or no dependency in order to get used.

\
-chris

ToutEnMasm


Ther is no dependecy with dbghelp.dll .She is redistributable and you can include it with your package.
The lib isn't redistributable,use the DLL dynamically (you can use editmasm to write the declarations and the code for this).
The dll is updated about every six month,but with a dynamic load there is no problem but only +++.
The dll is part of the debugging tools for windows but also of C++ ...,only those who don't understand what is symbolic debugging as masm32,don't take care of the dll.
I suggest that the dll will be with the masm32 package.
If you want code to init the dll i can provid it.

                                               ToutEnMasm