[PATCH v4 0/6] MR73: Improvement in PDB's types record handling

eric pouech (@epo) wine at gitlab.winehq.org
Thu Jun 2 03:28:56 CDT 2022

This serie tackles several issues encountered while loading PDB files through dbghelp.

It happens that PDB allows to have several type records for user defined types (struct / enums)
with the same name.
This seems to be generated by a) compiler (when modifying a structure definition between several
compilation phases), b) the incremental linker (likely an optimisation of previous case, but
not 100% certain when it's triggered).
Wine's dbghelp ended up not picking the right record, hence generating errneous outputs.
This series:
- cleans up some PDB related code
- update winedump to display the PDB hash table internals
- fixes dbghelp to preserve in Wine's dbghelp hash table the partial order between type
  records of same name.

- rebased
- removed a bunch of stray comments

  v4: dlls/dbghelp{pdb}: use remap table from PDB hash stream
      dlls/dbghelp{pdb}: ensure dbghelp's list order in hash table matches PDB's
      dlls/dbghelp{pdb}: clearly separate the type loading into two passes
      include/wine/mscvpdb.h: redefine property with bitfields
      dlls/dbghelp{pdb}: rely on first/last index from type header
      tools/winedump{pdb}: explore a bit more TPI hash elements

More information about the wine-devel mailing list