For those of you who might be interested, I wrote a test harness for winedbg
It still doesn't cover all of the commands of winedbg, but it's very
good starting point for catching some errors (and regressions). Basic
features are tested (starting winedbg, step & cont, break points & watch
points, global and local var access, expression & types handling)
Unfortunately, it's not ready yet for CVS inclusion.
Anyway, if some of you want to do some real winedbg hacking, get back to
me, we'll see how to share it in the most appropriate way.
In the details, the harness is made of:
1/ an extension of regular wine's test harness: it just allows the test
program to control a child through the command line (input & output)
2/ a program to behave as a debuggee
3/ the testing tool itself (a regular wine test app, based on component
1/), which launches winedbg on 2/ and sends commands to winedbg and
checks the results
The reasons why this can't be included yet in cvs are:
- we need to recompile 2/ in order to make the test to take place (or at
least to have its binary image). Actually, to do a full testing, we
should have binaries images of 2/ compiled by different compilers
(winelib app with gcc & stabs, EXE with mingw & stabs, EXE with msvc &
PDB...) so that we can also stress the dbghelp's support for the various
debugging formats (stabs, PDB...)
- I ran the harness both on Wine and Windows (with native dbghelp)
(that's the good news), but there are some critic discrepencies, like
first like number of a function being different (is it on first open
brace or on first instruction ?), so the test is still not simply portable
For the rest of the story, while running the test on Windows & native
dbghelp, lots of misimplementation of builtin dbghelp (and therefore
winedbg) appeared. I did fix lots of them, and I'll submit them from now on.
The set of patch I've just sent to wine-patches are what is required to
make the winedbg test pass on Wine, get ready now for the rest of the
patches to make dbghelp (and winedbg) in sync with native dbghelp
A+
--
Eric Pouech