[PATCH 0/9] Beefing up tests for dbghelp

Eric Pouech eric.pouech at gmail.com
Mon Jul 12 07:20:01 CDT 2021

The following series beefs up the tests about dbghelp DLL and fixes a
couple of bugs in dbghelp.

The idea is to have a set of files to get debug info from (debuggee*.*).

This is supported in two different ways:
A) to be compiled directly inside dbghelp_test: the default tools and options
   used in Wine will be covered (now: cross compile + dwarf version 2 debug
B) but also the ability to run the same tests on an external process + image
   (made mainly out of the debuggee*.* only files). The idea is of course
   to use different compilers, debug format, options, 32/64bit targets...
   Those alternate images **ARE NOT** part (for now) of winetest.

Unfortunately, with Winetest Bot, the A) won't work under windows: debug
format of dbghelp_test.exe is dwarf2, while native dbghelp doesn't support
it. So the tests are skipped. Anyway, most of the Windows setup:s don't
have native dbghelp.dll installed <g>, so that shouldn't change much.

I locally test every patch with:
- A) on 32bit Wine (mingw + dwarf2)
- A) on 64bit Wine (mingw + dwarf2)
- A) on Windows10 as PE64 (msc + pdb)
- B) image: mingw + dwarf2 + target=PE64bit + option -O1 on 64bit Wine
- B) image: mingw + dwarf2 + target=PE32bit + option -O1 on 32bit Wine
- B) image: ms compiler + pdb + target=PE64bit + option /O1 on 64 bit Wine

This serie will be continued with:
1) more tests (and more fixes) (around 20+ patches to come)
2) support of dwarf3 and 4 (around 70+ patches to come)

I also plan to add more local tests (dwarf3 and dwarf4; WoW; PE32 + pdb on
Wine, cross 32/64 bit between tester and debuggee, other options O2).



Eric Pouech (9):
      dbghelp/tests: Added dedicated structure to control the debuggee
      dbghelp/tests: Added ability to launch an external process instead of debugging self
      dbghelp/tests: Now properly getting base of main module inside debuggee structure
      dbghelp/tests: Added two new compilation units (debuggee1.c and debuggee2.c)
      dbghelp/tests: now building inside each debuggee a manifest
      dbghelp/tests: StackWalk64 testing now support external process
      dbghelp/tests: Added tests about getting symbol information
      dbghelp: returns name of compiland in SymGetTypeInfo
      dbghelp: handling of complex location in dwarf

 dlls/dbghelp/dwarf.c           |   1 -
 dlls/dbghelp/tests/Makefile.in |   4 +-
 dlls/dbghelp/tests/dbghelp.c   | 505 +++++++++++++++++++++++++++++++--
 dlls/dbghelp/tests/debuggee.h  |  30 ++
 dlls/dbghelp/tests/debuggee1.c | 115 ++++++++
 dlls/dbghelp/tests/debuggee2.c |   7 +
 dlls/dbghelp/type.c            |   3 +-
 7 files changed, 644 insertions(+), 21 deletions(-)
 create mode 100644 dlls/dbghelp/tests/debuggee.h
 create mode 100644 dlls/dbghelp/tests/debuggee1.c
 create mode 100644 dlls/dbghelp/tests/debuggee2.c

More information about the wine-devel mailing list