mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
91 lines
3.3 KiB
Plaintext
91 lines
3.3 KiB
Plaintext
|
|
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.
|
|
|
|
For instructions on how to build/install, see the end of this file.
|
|
|
|
|
|
Executive Summary
|
|
~~~~~~~~~~~~~~~~~
|
|
Valgrind is a tool to help you find memory-management problems in your
|
|
programs. When a program is run under Valgrind's supervision, all
|
|
reads and writes of memory are checked, and calls to
|
|
malloc/new/free/delete are intercepted. As a result, Valgrind can
|
|
detect problems such as:
|
|
|
|
Use of uninitialised memory
|
|
Reading/writing memory after it has been free'd
|
|
Reading/writing off the end of malloc'd blocks
|
|
Reading/writing inappropriate areas on the stack
|
|
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,
|
|
difficult-to-diagnose crashes.
|
|
|
|
When Valgrind detects such a problem, it can, if you like, attach GDB
|
|
to your program, so you can poke around and see what's going on.
|
|
|
|
Valgrind is closely tied to details of the CPU, operating system and
|
|
to a less extent, compiler and basic C libraries. This makes it
|
|
difficult to make it portable, so I have chosen at the outset to
|
|
concentrate on what I believe to be a widely used platform: Red Hat
|
|
Linux 7.2, on x86s. I believe that it will work without significant
|
|
difficulty on other x86 GNU/Linux systems which use the 2.4 kernel and
|
|
GNU libc 2.2.X, for example SuSE 7.1 and Mandrake 8.0. Red Hat 6.2 is
|
|
also supported. It has worked in the past, and probably still does,
|
|
on RedHat 7.1 and 6.2. Note that I haven't compiled it on RedHat 7.1
|
|
and 6.2 for a while, so they may no longer work now.
|
|
|
|
Valgrind is licensed under the GNU General Public License, version 2.
|
|
Read the file LICENSE in the source distribution for details.
|
|
|
|
|
|
Documentation
|
|
~~~~~~~~~~~~~
|
|
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. 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
|
|
|
|
1. Run ./autogen.sh to setup the environment (you need the standard
|
|
autoconf tools to do so)
|
|
|
|
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. The only interesting
|
|
one is the usual --prefix=/where/you/want/it/installed
|
|
|
|
3. Do "make"
|
|
|
|
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.
|
|
In that case, mail me a bug report.
|
|
|
|
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)
|
|
19 June 2002
|