Debug information

Tijs van Bakel tijs at
Thu May 30 09:42:35 CDT 2002

Ulrich Weigand <weigand at> writes:

> Tijs van Bakel wrote:
> > In debugger/msc.c I found the following check
> > 
> >  if ( mpd_nth->Signature != IMAGE_NT_SIGNATURE || 
> >       mpd_nth->FileHeader.NumberOfSections != nth->FileHeader.NumberOfSections ||
> >       !(mpd_nth->FileHeader.Characteristics & IMAGE_FILE_DEBUG_STRIPPED ))
> >      goto leave;
> It would appear that this check is simply inverted, i.e. you should
> remove the '!'.  At this point we require debug info *embedded*
> in the PE module, i.e. *not* stripped ...

Quoting an MSDN Library page on the topic of "Symbol Files" at

"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" ?

> > Trying the same with Visual Studio .NET is somewhat more cumbersome.
> > I haven't been able to read in the debugging information generated by
> > C++ projects using winedbg.  Has anyone else tried this?
> The format of the PDB files has changed; winedbg cannot read the
> new format yet.

Any ideas on where to find documentation?  Where does the knowledge
for the old PDB parser come from?

I could ask the above question for many more parts of Wine.  There is
a lot of code in Wine based on "undocumented" Windows features.  Is
there a list of sources for information on Windows internals (both
books and websites)?


Tijs van Bakel, ConnecTUX, <tijs at>

More information about the wine-devel mailing list