Valgrind is a tool for memory debugging, memory leak
detection, and profiling. It is essentially a virtual machine using
just-in-time compilation techniques.
The Valgrind distribution currently includes five
production-quality tools: a memory error detector, a thread error
detector, a cache and
branch-prediction profiler, a call-graph generating cache profiler, and
a heap profiler. It also includes two experimental tools: a data race
detector, and an instant memory leak detector.
Valgrind is designed to be as non-intrusive as possible. It
works directly with existing executables. You don't need to recompile,
relink, or otherwise modify, the program to be checked.
| Valgrind 3.9.0
Free to download
GNU GPL v2
Cerion Armour-Brown, Jeremy Fitzhardinge, Tom
Hughes, Nicholas Nethercote, Paul Mackerras, Dirk Mueller, Julian
Seward, and others
No special requirements
User Manual, FAQ,
- Memcheck detects memory-management problems in programs.
All reads and writes of memory are checked, and calls to
malloc/new/free/delete are intercepted. Memcheck can therefore detect
the following problems:
- 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
- Mismatched use of malloc/new/new  vs free/delete/delete
- Overlapping src and dst pointers in memcpy() and related
- Cachegrind is a cache profiler. It performs detailed
simulation of the
I1, D1 and L2 caches in your CPU and so can accurately pinpoint the
sources of cache misses in your code. It will show the number of cache
misses, memory references and instructions accruing to each line of
source code, with per-function, per-module and whole-program summaries.
If you ask really nicely it will even show counts for each individual
- Callgrind is a profiler similar in concept to Cachegrind,
also tracks caller-callee relationships. By doing so it is able to show
how instruction, memory reference and cache miss costs flow between
callers and callees. Callgrind collects a large amount of data which is
best navigated using Josef Weidendorfer's amazing KCachegrind
visualisation tool. KCachegrind is
a KDE application which presents these profiling results in a graphical
and easy-to-understand form.
- Massif is a heap profiler. It measures how much heap memory
use. In particular, it can give you information about heap blocks, heap
administration overheads, and stack sizes.
- Helgrind detects synchronisation errors in programs that
use the POSIX pthreads threading primitives. It detects the following
- Misuses of the POSIX
- Potential deadlocks
arising from lock ordering problems.
- Data races --
accessing memory without adequate locking.
There are a number of graphical frontends for Valgrind
to Debuggers Home Page
Alleyoop uses the Gtk+ widget set and other GNOME
- Right-click context menu to intelligently suppress
errors or launch an editor on the source file/jumping to the exact line
of the error condition
- Searchbar at the
top of the viewer can be used to limit the viewable errors
to those that match the regex criteria entered
- Suppressions editor
Valkyrie is an open-source graphical user interface for
the Valgrind 3.X line. Valkyrie uses the Qt widget library, and is
based on Valgrind's
XML output capabilities.
KDevelop has functionality to use Valgrind as a
Valgrind also features in our 'Linux Equivalents to Windows
Software' section. The category chooser below allows you to focus on
different types of software included in that section.
Last Updated Sunday, March 23 2014 @ 11:20 AM EST