Valgrind is a tool that helps you find memory management problems inprograms. When a program is run under Valgrind's supervision, allreads and writes of memory are checked, and calls tomalloc/new/free/delete are intercepted. As a result, Valgrind candetect problems such as use of uninitialized memory, reading/writingof memory after it has been freed, reading/writing off the end ofmalloced blocks, reading/writing inappropriate areas on the stack,memory leaks in which pointers to malloced blocks are lost forever,passing of uninitialized and/or unaddressable memory to system calls,and mismatched use of malloc/new/new [] vs. free/delete/delete [].
License: GNU General Public License (GPL)
Changes:
Helgrind works again with improved race detection and better error messages. Massif generates better output. Cachegrind has been extended to do branch-misprediction profiling. Both conditional and indirect branches are profiled. Scalability has been improved for very large programs, particularly those with a million or more malloc'd blocks in use at once. These improvements mostly affect Memcheck, which is also up to 10% faster for all programs, with x86 Linux seeing the largest improvement. The documentation has been reorganized. Experimental tools have been added. There are many other changes.
More...