-Release notes for Valgrind, snapshot 20020217
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Release notes for Valgrind, version 1.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KDE3 developers: please read also README_KDE3_FOLKS for guidance
about how to debug KDE3 applications with Valgrind.
Memory leaks -- where pointers to malloc'd blocks are lost forever
Passing of uninitialised and/or unaddressible memory to system calls
Mismatched use of malloc/new/new [] vs free/delete/delete []
+ Some abuses of the POSIX pthread API
Problems like these can be difficult to find by other means, often
lying undetected for long periods, then causing occasional,
~~~~~~~~~~~~~
A comprehensive user guide is supplied. Point your browser at
docs/index.html. If your browser doesn't like frames, point it
-instead at docs/manual.html.
+instead at docs/manual.html. There's also detailed, although somewhat
+out of date, documentation of how valgrind works, in
+docs/techdocs.html.
Building and installing it
~~~~~~~~~~~~~~~~~~~~~~~~~~
-
If you install from CVS :
0. cd into the source directory
If you install from a tar.gz archive:
2. Run ./configure, with some options if you wish. The standard
- options are documented in the INSTALL file.
+ options are documented in the INSTALL file. The only interesting
+ one is the usual --prefix=/where/you/want/it/installed
3. Do "make"
- 4. As root, do "make install"
+ 4. Do "make install", possibly as root if the destination permissions
+ require that.
5. See if it works. Try "valgrind ls -l". Either this works,
or it bombs out complaining it can't find argc/argv/envp.
- If this happens, you'll have to futz around with
- vg_main.c:710 to vg_main.c:790 to try and find suitable offsets.
- It's not hard; many have been successful here.
-
-Once step 5 is successful, you can now use valgrind. Documentation
-is in docs/manual.html. The following auxiliary steps may enhance
-your valgrinding experience, though.
-
-6. Create a file containing enough suppressions so that
-
- valgrind xedit
+ In that case, mail me a bug report.
- runs without generating any errors. This means you've more
- or less suppressed all the scummy errors from the X11 base
- libraries and from glibc, which will make it easier to spot
- genuine errors in your own code. The default.supp file
- should contains a good starting point. Do *not* edit this file
- however, as it will be overwritten at the next installation of
- valgrind, but create your own local.supp file.
+Important! Do not move the valgrind installation into a place
+different from that specified by --prefix at build time. This will
+cause things to break in subtle ways, mostly when Valgrind handles
+fork/exec calls.
Julian Seward (jseward@acm.org)
-15 Feb 2002
+19 June 2002
-4 February 2002
-
-Greetings, KDE developer. Some of you may have noticed, in recent
-days, that I have posted some bug reports to kde-core-devel@kde.org,
-containing traces like the following:
-
- Use of uninitialised CPU condition code
- at 0x471A4196: KateBuffer::parseBlock(KateBufBlock *) (katebuffer.cpp:446)
- by 0x471A3B58: KateBuffer::line(unsigned int) (katebuffer.cpp:343)
- by 0x471C684B: KateDocument::updateLines(int, int)
- (../../kdecore/ksharedptr.h:126)
- by 0x471C1C3E: KateDocument::makeAttribs() (katedocument.cpp:2302)
-
-These errors were detected using this tool, Valgrind.
+19 June 2002
The purpose of this small doc is to guide you in using Valgrind to
find and fix memory management bugs in KDE3.
considerable details about how to use it, what's really going on,
etc.
-* The source locations in error messages can be way wrong sometimes;
- please treat them with suspicion. In particular, it will sometimes
- say that a source location is in a header file (.h) when really it
- is in some totally unrelated source (.cpp) file. I'm working on it ...
-
* There are some significant limitations:
- - No threads! You can run programs linked with libpthread.so,
- but only until the point where they do clone(); at that point
- Valgrind will abort.
- No MMX, SSE, SSE2 insns. Basically a 486 instruction set only.
- Various other minor limitations listed in the manual.
-* Valgrind is still under active development. If you have trouble
- with it, please let me know (jseward@acm.org) and I'll see if I
- can help you out.
+* If you have trouble with it, please let me know (jseward@acm.org)
+ and I'll see if I can help you out.
Have fun! If you find Valgrind useful in finding and fixing bugs,