Valgrind is an instrumentation framework for building dynamic analysis tools.
There are Valgrind tools that can automatically detect many memory management
and threading bugs, and profile your programs in detail. You can also use
Valgrind to build new tools.
The Valgrind distribution currently includes six production-quality tools:
a memory error detector, two thread error detectors, a cache and branch-
prediction profiler, a call-graph generating cache and branch-prediction
profiler, and a heap profiler. It also includes three experimental
tools: a stack/global array overrun detector, a second heap profiler that
examines how heap blocks are used, and a SimPoint basic block vector generator.
It runs on the following platforms: X86/Linux, AMD64/Linux, ARM/Linux,
ARM64/Linux, PPC32/Linux, PPC64/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
MIPS64/Linux, X86/Solaris, AMD64/Solaris, ARM/Android (2.3.x and later),
ARM64/Android, X86/Android (4.0 and later), MIPS32/Android, X86/Darwin and
AMD64/Darwin (Mac OS X 10.12).
Please read module help and references therein for additional infos.
Extensive documentation and tutorials can be found on the
Valgrind homepage at https://www.valgrind.org/
In case of problems, please contact email@example.com.