Menu

ProjectStatus

Christoph Schwarz

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.


Related

Wiki: Home