Project Status
- overall status: pre-alpha
- started with TML's patch
- code is in sync with upstream Valgrind r12455 & VEX r2266 (March 21st, 2012)
- core, most tools and tests have been ported
- most work was has been done on the core, and it will need more effort to make it even an alpha
- tools did not need many changes
- not all test programs ported, just the ones that didn't cause any trouble
- Helgrind and DRD not ported because they rely heavily on pthreads
- 32 bit and 64 bit versions can be built using MinGW and MinGW64 tool chain
- Eclipse CDT project available
- supported platforms: WIN32, WIN64, WOW64
- tested on the following Windows versions: Windows XP SP 3 (32 bit), Windows 7 (64 bit)
- system calls: work stable on all 3 platforms
- callbacks from system into user space: works in principle on all platform, but not working on all test environments
- multi-threading: works in a first version on WIN64 (implemented system call wrapper NtCreateThreadEx)
- multi-threading: not implemented on WIN32 (system call wrapper NtCreateThread started but neither finished nor tested)
- multi-threading: no research on WOW64 done yet (probably requires system call wrapper NtCreateThread as well)
- simple console and GUI applications can be run, however you might encounter the following problems:
- lots of spurious warnings
- memcheck does not find all errors it should find
- corrupt stack traces
- debug information not loading properly
- crashes, exceptions
As you can see, there are a lot of things to do, and many issues are not even listed here. At this point, it does not make sense to run any existing real-world application under Valgrind for Window's control.
Roadmap
The next step is bringing the core into an Alpha state, which means solving most or all of the issues mentioned above.
I intend to do this by creating test cases for each and every issue (or re-using test cases from Linux versions if applicable). Then define a set of test cases that must pass for this Alpha release. This is the first iteration.
On this Alpha release you would then test real-world applications, however I expect its functionality to be limited and more issues come up. The limited functionality and new issues would be fixed in a second iteration. The result of this second iteration will be a Beta release.
The next iteration will then aim at improving this Beta release to a first production-ready Valgrind for Windows.