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 format) 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).
A+
---
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