|
From: Colin M. <col...@pi...> - 2009-07-14 17:27:50
|
Zachary Turner wrote: > Hello, > > I'm somewhat a valgrind noob, so apologies if this is a RTFM question. > I did search around however and did not see anything definitive about > this. I ran valgrind on an app I have and it generated thousands of > spurious warnings. I know I can create a .supp file to suppress these, > but my question is how do I know which ones are spurious and which > ones are not? I found one website that mentioned that there was a > .supp file somewhere in the valgrind code repository, but for some > reason I cannot access the SVN repository. I'm using the correct SVN > url (svn://svn.valgrind.org/valgrind/trunk), shown on the website at > (http://www.valgrind.org/downloads/repository.html) but it just says > the server timed out or did not respond appropriately. I've never had > any problem accessing other svn repositories. > > Is there a way to tell which warnings are spurious to easily disable > them, or is this .supp file which I can't seem to currently access the > correct approach? 95% of the errors I get are either "Use of > uninitialised value of size 4" (usually in _int_malloc, memcpy, or > malloc_consolidate), and "Conditional jump or move depends on > uninitialized value" (in anything have to do with static variable > initialization / cleanup, etc). > > The short answer is *ALL* Valgrind reports are errors, and should be fixed. (with the possible exception of leaked reachable memory). Suppressions are there for reports inside third-party code that you can't fix. Valgrind comes with a set of suppressions for some standard libraries with are known to be buggy. Running valgrind -v /bin/true should print out the default suppressions that valgrind is using The lack of line numbers means the library does not have debug information with it. For Debian, try installing libstdc++*-dbg and libc6-dbg HTH, Colin S. Miller |