Debug information

Ulrich Weigand weigand at
Thu May 30 10:30:41 CDT 2002

Tijs van Bakel wrote:

> "Debuggers can determine whether an executable file or DLL contains
> debugging information by searching for the IMAGE_FILE_DEBUG_STRIPPED
> characteristic. If this characteristic is present, the debugging
> information exists in a symbol file."
> This remark is a bit ambiguous.  Does it say that if the
> characteristic is _not_ present, then "the debugging information
> exists, but not in a symbol file" ?

Not quite; if the characteristic is not present, *either* the
debugging information exists embedded into the PE file itself,
*or* there is no debugging information at all.

However, note that 'symbol file' does not refer to PDB files, but
to DBG files containing stripped PE debug sections.

When PDB files are involved, the PE debug section contains only
a reference to the PDB, so it does not make much sense to strip
it to a separate DBG file (and it therefore usually isn't done).

> Any ideas on where to find documentation?  

Microsoft does not document the PDB file format publicly as
far as I know.  I am not aware of any other publicly available
documentation that is more comprehensive than the winedbg sources.
(There is a short section in Sven Schreiber's "Undocumented
Windows 2000 Secrets", but this won't tell you anything that
wasn't already in winedbg since before that book came out.)

Of course, certain *parts* of the information inside the PDB
(like the actual symbol and type information records) do follow
the documented CodeView format.

> Where does the knowledge for the old PDB parser come from?

More information about the wine-devel mailing list