macOS
brew install valgrindlocal Homebrew formula metadata
sudo port install valgrindMacPorts ports tree · devel/valgrind/Portfile · source: api.github.com
brew
Dynamic analysis tools (memory, debug, profiling). Version 3.27.1 via Homebrew; verified 2026-05-20.
install
brew install valgrindlocal Homebrew formula metadata
sudo port install valgrindMacPorts ports tree · devel/valgrind/Portfile · source: api.github.com
sudo apk add valgrindAlpine Linux edge package indexes · valgrind · source: dl-cdn.alpinelinux.org
sudo apt install valgrindDebian stable package indexes · valgrind · source: deb.debian.org
sudo dnf install valgrindFedora Rawhide package metadata · valgrind · source: dl.fedoraproject.org
nix profile install nixpkgs#valgrindnixpkgs package indexes · pkgs/by-name/va/valgrind/package.nix · source: api.github.com
sudo pacman -S valgrindArch Linux sync databases · valgrind · source: geo.mirror.pkgbuild.com
sudo zypper install valgrindopenSUSE Tumbleweed package metadata · valgrind · source: download.opensuse.org
overview
Dynamic analysis tools (memory, debug, profiling)
history
Valgrind began as Julian Seward's attempt to build an open source memory-checking tool for x86/Linux in the spirit of Purify, but without source rewriting or relinking. Nicholas Nethercote's twentieth-anniversary retrospective places the first 1.0 release in July 2002, after early use by KDE developers, and notes that Cachegrind was committed in April 2002. Soon afterward the project split its generic dynamic-binary-instrumentation engine from individual analysis tools: the original memory checker became Memcheck, while Valgrind became the overall framework.
That split shaped Valgrind's long-term role. The official manual describes it as an instrumentation framework with standard tools including Memcheck for C/C++ memory errors, Cachegrind and Callgrind for cache/call profiling, Helgrind and DRD for thread errors, Massif and DHAT for heap profiling, plus smaller developer and research tools. This made Valgrind both a daily debugging command and a platform for building heavyweight dynamic-analysis experiments.
The project also became influential research and infrastructure. Nethercote records papers on Memcheck's bit-precise undefined-value tracking and Valgrind's heavyweight instrumentation architecture, and notes that later tools such as AddressSanitizer were inspired by Memcheck while making different speed/coverage tradeoffs. By the 2010s Seward and Nethercote had moved into emeritus roles, with many other contributors and Mark Wielaard as lead maintainer, but Valgrind remained a reference tool for deep user-space dynamic analysis.
Adoption followed the places where native-code correctness bugs are expensive: C and C++ applications, libraries, language runtimes, databases, browsers, scientific programs, embedded software, and automated regression suites. The Valgrind site emphasizes that it works on existing binaries without recompilation and that it has been used on projects ranging from personal code to very large codebases. Its standard package-nerd usage remains direct and boring: compile with debug symbols, run a program under `valgrind` or a selected `--tool`, inspect source-mapped diagnostics, and, for CI or release checks, fail builds on leaks, invalid accesses, or concurrency issues.
Adoption followed the places where native-code correctness bugs are expensive: C and C++ applications, libraries, language runtimes, databases, browsers, scientific programs, embedded software, and automated regression suites. The Valgrind site emphasizes that it works on existing binaries without recompilation and that it has been used on projects ranging from personal code to very large codebases. Its standard package-nerd usage remains direct and boring: compile with debug symbols, run a program under `valgrind` or a selected `--tool`, inspect source-mapped diagnostics, and, for CI or release checks, fail builds on leaks, invalid accesses, or concurrency issues.
security posture
No matching local secret-handling manifest was found for valgrind. Nucleus package metadata is still published here so future coverage has a stable package URL.
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
callgrind_annotate | cli | global executable | |
callgrind_control | cli | global executable | |
cg_annotate | cli | global executable | |
cg_diff | cli | global executable | |
cg_merge | cli | global executable | |
ms_print | cli | global executable | |
valgrind | cli | global executable | |
valgrind-di-server | cli | global executable | |
valgrind-listener | cli | global executable | |
vgdb | cli | global executable | |
vgstack | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
install metadata
| Package key | brew:valgrind |
|---|---|
| Version | 3.27.1 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/valgrind |
| Homepage | https://www.valgrind.org/ |
| Repository | https://sourceware.org/git/valgrind.git |
| Upstream docs | https://valgrind.org/docs/download_docs.html |
| License | GPL-2.0-or-later |
| Source archive | https://sourceware.org/pub/valgrind/valgrind-3.27.1.tar.bz2 |
| Last updated | 2026-05-20T16:57:52Z |
| Pulse | updated |
| Bottle | available (on arm64_linux, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | valgrind |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Requirements |
|
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
valgrind 1:3.24.0-3
instrumentation framework for building dynamic analysis tools
sudo apt install valgrindvalgrind-mpi 1:3.24.0-3
instrumentation framework for building dynamic analysis tools (MPI module)
sudo apt install valgrind-mpivalgrind
nix profile install nixpkgs#valgrindvalgrind 1:3.22.0-0ubuntu3
instrumentation framework for building dynamic analysis tools
sudo apt install valgrindvalgrind-mpi 1:3.22.0-0ubuntu3
instrumentation framework for building dynamic analysis tools (MPI module)
sudo apt install valgrind-mpivalgrind 3.25.1-r2
Tool to help find memory-management problems in programs
sudo apk add valgrindvalgrind-dev 3.25.1-r2
Tool to help find memory-management problems in programs (development files)
sudo apk add valgrind-devvalgrind-doc 3.25.1-r2
Tool to help find memory-management problems in programs (documentation)
sudo apk add valgrind-docvalgrind-scripts 3.25.1-r2
Tool to help find memory-management problems in programs (perl+python cachegrind/callgrind script tools)
sudo apk add valgrind-scriptsvalgrind 3.27.1-1.fc45
Dynamic analysis tools to detect memory or thread bugs and profile
sudo dnf install valgrindvalgrind-devel 3.27.1-1.fc45
Development files for valgrind aware programs
sudo dnf install valgrind-develvalgrind-docs 3.27.1-1.fc45
Documentation for valgrind tools, scripts and gdb integration
sudo dnf install valgrind-docsvalgrind-gdb 3.27.1-1.fc45
Tools for integrating valgrind and gdb
sudo dnf install valgrind-gdbvalgrind-openmpi 3.27.1-1.fc45
OpenMPI support for valgrind
sudo dnf install valgrind-openmpivalgrind-scripts 3.27.1-1.fc45
Scripts for post-processing valgrind tool output
sudo dnf install valgrind-scriptsvalgrind-tools-devel 3.27.1-1.fc45
Development files for building valgrind tools.
sudo dnf install valgrind-tools-develsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.