Getting started with valgrind
Remarks#
This section provides an overview of what valgrind is, and why a developer might want to use it.
It should also mention any large subjects within valgrind, and link out to the related topics. Since the Documentation for valgrind is new, you may need to create initial versions of those related topics.
Installation or Setup
Valgrind is GPLv2-licensed collection of dynamic analysis tools, which uses binary instrumentation (dynamic recompilation). Six tools are included to detect memory management (Memcheck) and threading errors (Helgrind and DRD), to generate call-graph and profile programs (with optional cache and branch-prediction simulation - Cachegrind and Callgrind), to profile heap memory usage (Massif).
Valgrind supports several 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).
Valgrind is included into many Linux distributions: Debian & Ubuntu (sudo apt-get install valgrind
), Arch (sudo pacman -S valgrind), Fedora (
sudo yum -y install valgrind,
sudo dnf install valgrind`). It can also be built from source.