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

eric pouech (@epo) wine at gitlab.winehq.org
Wed May 25 10:43:51 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.

--
  v2: 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
 
https://gitlab.winehq.org/wine/wine/-/merge_requests/73



More information about the wine-devel mailing list