Valgrind
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.7.0
|
|
Price
Free to download
Size
6.3MB
License
GNU GPL v2
Developer
Cerion Armour-Brown, Jeremy Fitzhardinge, Tom
Hughes, Nicholas Nethercote, Paul Mackerras, Dirk Mueller, Julian
Seward, and others
Website
www.valgrind.org
System Requirements
No special requirements
Support
Sites:
Valgrind
User Manual, FAQ,
Mailing
Lists, Projects
Using
Valgrind
Selected
Reviews:
Linux
Journal
|
Features include:
- 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
lost forever
- Mismatched use of malloc/new/new [] vs free/delete/delete
[]
- Overlapping src and dst pointers in memcpy() and related
functions
- 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
machine instruction.
- Callgrind is a profiler similar in concept to Cachegrind,
but which
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
programs
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
three classes
of errors:
- Misuses of the POSIX
pthreads API.
- Potential deadlocks
arising from lock ordering problems.
- Data races --
accessing memory without adequate locking.
There are a number of graphical frontends for Valgrind
including:
|

|
Alleyoop
Memory Checker
alleyoop.sourceforge.net
Alleyoop uses the Gtk+ widget set and other GNOME
libraries.
Features include:
- 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
www.open-works.net/projects/valkyrie.html
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
www.kdevelop.org
KDevelop has functionality to use Valgrind as a
plugin.
|
Return
to Debuggers Home Page
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 Wednesday, February 08 2012 @ 02:44 PM EST |