i was wondering how does a disasm/debugger engine rip out the source code
of/from an debug mode exe (i.e: windbg/code view/softice..) if let say it was compiled under VisualC++ 6's linker.
i'v seen in the debug exe that there is a reference to an *.pdb file (i can see some of my vars there..but not all)
mabye u got an idea,
Posted on 2003-05-01 16:24:02 by wizzra
Think of the pdb file as like a data file containing metadata, it contains information relating to the compiled module. So, if you want to see nice stuff like "call functionBlah" instead of ugly stuff like "call 0007 FDEAh", then you need a pdb file (otherwise known as the "symbols" file). Note that a release build does not generate a pdb file, which is why release stuff is harder to debug using a debugger.
Posted on 2003-05-01 18:44:01 by sluggy
actually, release builds _can_ be set up to build .pdb files - and I even think it's the default for vs.net.

Iirc, there's a SDK for accessing .pdb's, which you could use if you want to code your own debugger/tool/whatever.
Posted on 2003-05-02 02:12:36 by f0dder
i'll need to find a ncie article to explain how pdb is beeing parsed to source code, or if there is already coded tool..
i'll look at sdk, then f0dder, if you got mroe information i'll be glad to hear.
Posted on 2003-05-02 02:51:48 by wizzra
Sorry, don't really know more - just noticed the mention of the SDK while installing vs.net.
Posted on 2003-05-02 02:54:54 by f0dder
Posted on 2003-05-02 04:12:53 by wizzra
Humm... I'd go for the SDK method instead of direct reading - that way, you can hopefully read new PDB formats just by upgrading the DLLs.
Posted on 2003-05-02 04:16:46 by f0dder