[PATCH 00/10] Beefing up tests for dbghelp (v2)
eric.pouech at gmail.com
Thu Jul 15 02:38:51 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).
Changes introduced in v2:
- make sure that dbghelp_test.exe embedded as resource inside winetest.exe
isn't stripped, so that on can access its debug information.
tools/makedep.c is fixed accordingly.
This should fix all the TestBot failures.
- the existing tests (before this series) for dbghelp, could somehow work
when no debug information is available. Make sure we don't change this
behavior (v1 was skipping those tests when no debug info is avail)
Eric Pouech (10):
tools/makedep: added support for not stripping some test modules
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 | 547 +++++++++++++++++++++++++++++++--
dlls/dbghelp/tests/debuggee.h | 30 ++
dlls/dbghelp/tests/debuggee1.c | 115 +++++++
dlls/dbghelp/tests/debuggee2.c | 7 +
dlls/dbghelp/type.c | 3 +-
tools/makedep.c | 11 +-
8 files changed, 673 insertions(+), 45 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