summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authornjn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9>2006-03-31 12:24:37 +0000
committernjn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9>2006-03-31 12:24:37 +0000
commit567c0142fde30f7b72ca9c06a190caa700fa417d (patch)
tree3c9d7430cd45813239b0e104872918c7161eed91 /README
parent7fd15d674f18757167305947732057099e175914 (diff)
update Memcheck description
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5804 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'README')
-rw-r--r--README33
1 files changed, 18 insertions, 15 deletions
diff --git a/README b/README
index 65cd74ef..e8c1c5a6 100644
--- a/README
+++ b/README
@@ -21,23 +21,26 @@ hours of frustrating bug-hunting, making your programs more stable. You can
also perform detailed profiling, to speed up and reduce memory use of your
programs.
-The Valgrind distribution currently includes five tools: two memory error
-detectors, a thread error detector, a cache profiler and a heap profiler.
+The Valgrind distribution currently includes four tools: a memory error
+detector, a thread error detector, a cache profiler and a heap profiler.
To give you an idea of what Valgrind tools do, when a program is run
-under the supervision of the first memory error detector tool, all reads
-and writes of memory are checked, and calls to malloc/new/free/delete
-are intercepted. As a result, it 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 []
- Overlaps of arguments to strcpy() and related functions
- Some abuses of the POSIX pthread API
+under the supervision of Memcheck, the memory error detector tool, all
+reads and writes of memory are checked, and calls to malloc/new/free/delete
+are intercepted. As a result, Memcheck can detect if your program:
+
+ - Accesses memory it shouldn't (areas not yet allocated, areas that have
+ been freed, areas past the end of heap blocks, inaccessible areas of
+ the stack).
+
+ - Uses uninitialised values in dangerous ways.
+
+ - Leaks memory.
+
+ - Does bad frees of heap blocks (double frees, mismatched frees).
+
+ - Passes overlapping source and destination memory blocks to memcpy() and
+ related functions.
Problems like these can be difficult to find by other means, often
lying undetected for long periods, then causing occasional,