Looks good... guess I know what I'll be after tomorrow ;).
-Zac
Dan Kegel wrote:
After a few days of cleaning up Valgrind warnings in the Wine source tree, and adding suppressions where it made sense. I've whittled the list of Valgrind warnings down to 300 or so.
This list is short enough that a mortal can look upon it without dispair, and even see a number of things that might be real bugs.
The histogram of frequent errors is at http://kegel.com/wine/valgrind/logs-2008-06-08.counts.txt and shows one call stack per line (only top three locations are represented for each call stack).
A few groups of warnings stand out: 10 of them are invalid calls to free() or friends, 30 of them involve WideCharToMultiByte, 50 of them are in ds3d or ds3d8, and 60 of them are in Gecko. (Ooodles and oodles are caused by nvidia's libgl, libfontconfig, libexpat, and libc; most of these are suppressed, or you'd die of bordom or anger reading the logs.)
As before, the log broken out by directory is at http://kegel.com/wine/valgrind/logs-2008-06-08/
The full log is at http://kegel.com/wine/valgrind/logs-2008-06-08.log.gz
This is run with --track-origins=yes, so you get nifty stack tracebacks for where the undefined values got their initial, um, nonvalue. This is often quite helpful for narrowing down the cause.
The diff against CVS of the tree I ran this on is at http://kegel.com/wine/valgrind/logs-2008-06-08-patch.txt and is mostly the valgrind cleanup patches I've written that have not yet been committed (plus one rough one from Juan). It's given for completeness; I'll resubmit the individual patches once 1.0 is out.
Oh, and the suppressions file I use is rather bigger now. As always, it's at http://kegel.com/wine/valgrind/valgrind-suppressions
If you've read this far, congratulations and thanks. Please consider triaging one of these warnings. Just pick one at random, and if you really figure it out, please submit a fix; be sure to include the valgrind warning in the description of the patch. Even if all you figure out is how to improve the test and thereby not generate Valgrind warnings, that's great, please send in your patch. Every test we make squeaky-clean improves the signal-to-noise ratio for finding real problems. (But please don't submit any change you don't really understand, or that seems risky. The goal is not to clean up Valgrind warnings; it's to improve the quality of the test suite.)
- Dan