No description
Find a file
2026-03-19 21:21:32 +01:00
auxprogs Bug 517597 - auxprogs/getoff.c:151: pointless test ? 2026-03-17 07:15:52 +01:00
cachegrind Regtest: fix use of -no-pie 2026-03-14 20:40:16 +01:00
callgrind Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
coregrind Darwin: don't remove VALGRIND_LAUNCHER from vg_cleanup_env 2026-03-19 14:10:49 +01:00
dhat testsuite: Tidy. Remove empty .stdout.exp files 2025-12-13 18:37:27 +00:00
docs Add a section about mismatched free errors when using identical code folding to the FAQ. 2026-03-06 21:20:51 +01:00
drd DRD regtest: delete second line in callstack of std_thread2 test 2026-02-07 11:02:38 +01:00
exp-bbv Regtest build: fix exp-bbv build on amd64 Linux 2026-03-15 08:36:52 +01:00
gdbserver_tests Darwin regtest: fix compilation of gdbserver_tests/self_invalidate.c 2026-03-18 07:48:39 +01:00
helgrind Fix GCC -Waddress warnings 2026-03-13 23:26:07 +01:00
include Bug 517697 - Implement CLRSSONSTACK and SETUJMPBUF handling on Solaris. 2026-03-18 20:57:11 +01:00
lackey Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
m4 Check for and compile using -std=gnu11 (or higher) 2025-01-23 19:33:57 +01:00
massif Darwin regtest: add some more ignore-fn for massif overloaded-new 2026-03-19 21:21:32 +01:00
memcheck Darwin regtest: small change for memcheck descr_belowsp 2026-03-19 20:07:30 +01:00
mpi warnings: one more -Wno-deprecated-declarations flag 2025-10-29 08:06:28 +01:00
nightly Replace which and type with command -v 2026-02-14 21:36:56 +01:00
none Solaris: compiler warnings and one regtest compile error 2026-03-18 20:36:46 +01:00
perf Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
shared Bug 513844 - Support macOS 13.0 (Ventura) 2026-03-13 07:51:08 +01:00
solaris Replace git:// URLs with https:// URLs 2022-08-29 10:13:47 +02:00
tests regtest: Support make regtest BUNSEN=no 2026-03-04 22:23:18 +00:00
VEX s390x: Slightly optimize AND/OR/XOR with immediates 2026-03-18 19:35:15 +01:00
.clang-format Bug 468401 - [PATCH] Add a style file for clang-format 2023-04-17 22:05:30 +02:00
.dir-locals.el Add Emacs configuration files 2018-12-05 18:15:57 -08:00
.git-blame-ignore-revs Add a .git-blame-ignore-revs file. 2023-04-26 16:54:15 +10:00
.gitignore Bug 512291 - Valgrind on Solaris should drop support for long gone /dev/crypto framework 2026-03-18 20:41:00 +01:00
AUTHORS Update AUTHORS 2026-01-01 09:56:54 +01:00
autogen.sh Check for and compile using -std=gnu11 (or higher) 2025-01-23 19:33:57 +01:00
bionic.supp Initial suppressions from Android 2.3.5 (on ARM). 2011-09-26 20:18:29 +00:00
configure.ac configure: was missing SOLARIS_HAVE_SYS_CRYPTO_IOCTL_H set to false for non-Solaris OSes. 2026-03-18 21:37:27 +01:00
COPYING Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
COPYING.DOCS Update COPYING and COPYING.DOCS with new FSF address. 2015-09-04 10:21:38 +00:00
darwin-drd.supp Darwin suppressions: add another for getaddrinfo 2025-12-24 11:44:19 +01:00
darwin-helgrind.supp Bug 513533 - Support macOS 11.0 (Big Sur) 2025-12-20 15:47:50 +01:00
darwin-legacy.supp Darwin suppressions: merge old suppression files to darwin-legacy.supp 2025-12-09 07:33:49 +01:00
darwin.supp Bug 513844 - Support macOS 13.0 (Ventura) 2026-03-13 07:51:08 +01:00
freebsd-drd.supp FreeBSD DRD: add suppression for _malloc_postfork 2025-09-14 12:00:46 +00:00
freebsd-helgrind.supp FreeBSD regtest: updates for FreeBSD 15.0-CURRENT 2025-05-16 21:32:02 +02:00
freebsd.supp FreeBSD: add a suppression for reachable from __cxa_exit 2024-12-14 07:32:12 +01:00
glibc-2.2-LinuxThreads-helgrind.supp Add some Helgrind suppressions for LinuxThreads. 2007-11-11 06:13:01 +00:00
glibc-2.2.supp Remove old Helgrind suppressions. 2007-11-10 20:12:23 +00:00
glibc-2.3.supp Remove old Helgrind suppressions. 2007-11-10 20:12:23 +00:00
glibc-2.4.supp Supps for MVL 4.0.1 on ppc32 (Bart Van Assche) 2007-01-05 15:09:53 +00:00
glibc-2.5.supp Supps for MVL 4.0.1 on ppc32 (Bart Van Assche) 2007-01-05 15:09:53 +00:00
glibc-2.6.supp Even more suppressions for glibc-2.6. 2007-11-13 20:51:26 +00:00
glibc-2.7.supp Preliminary support for Fedora 8, which includes initial support for 2007-11-18 14:40:02 +00:00
glibc-2.X-drd.supp.in Linux DRD suppression: add an entry for __is_decorate_maps_enabled 2025-12-01 08:12:30 +01:00
glibc-2.X-helgrind.supp.in Linux Helgrind: add a suppression for _dl_allocate_tls_init 2025-12-01 08:18:56 +01:00
glibc-2.X.supp.in Linux PPC: add a suppression for an invalid read in libaio io_getevents 2025-03-30 09:04:56 +02:00
Makefile.all.am Add -fno-diagnostics-show-caret and -ftrack-macro-expansion=0. 2026-03-13 16:01:28 +00:00
Makefile.am regtest: Support make regtest BUNSEN=no 2026-03-04 22:23:18 +00:00
Makefile.tool-tests.am mips64: add N32 ABI support 2018-06-14 17:40:08 +00:00
Makefile.tool.am riscv64: Add initial support: Valgrind modifications 2025-02-25 17:04:36 +01:00
Makefile.vex.am Add SSE4.1 BLENDPD instruction for x86 32 bit 2026-01-21 18:52:06 +01:00
musl.supp musl: updates to suppressions and drd pthread detection script 2024-02-17 18:24:36 +01:00
NEWS Bug 517748 - Add ability to redirect global functions to Darwin 2026-03-19 08:53:23 +01:00
NEWS.old Correct typos and spelling mistakes 2024-11-03 10:55:57 +01:00
NEWS.older Update version to 3.23.0.GIT, split NEWS files and create NEWS.older 2023-11-01 10:56:39 +01:00
README Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
README.aarch64 Bug 480126 - Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8 2024-01-21 21:33:06 +01:00
README.android Fix documentation of command line flag 2015-11-06 22:08:46 +00:00
README.android_emulator Fix documentation of command line flag 2015-11-06 22:08:46 +00:00
README.freebsd FreeBSD README: add a section on syscalls. 2026-03-01 21:51:29 +01:00
README.mips mips: update NEWS and README.mips 2020-01-06 16:51:37 +00:00
README.riscv64 riscv64: Add support for csrrc 2025-04-24 02:06:04 +02:00
README.s390 NEWS / README.s390 update 2025-11-30 21:52:32 +00:00
README.solaris Illumos: mention the build-essential package in README.solaris 2025-04-01 20:09:14 +02:00
README_DEVELOPERS regtest: Support make regtest BUNSEN=no 2026-03-04 22:23:18 +00:00
README_DEVELOPERS_processes Change SVN to GIT in various places and simple scripts. 2017-08-14 15:27:27 +02:00
README_MISSING_SYSCALL_OR_IOCTL FreeBSD: switch to FreeBSD 12 versions of syscalls for fstat etc 2023-01-24 20:41:15 +01:00
README_PACKAGERS Update README_PACKAGERS 2024-02-15 20:48:07 +01:00
solaris11.supp Illumos suppression and regtest 2025-04-20 22:14:44 +02:00
solaris12.supp Darwin suppressions: merge old suppression files to darwin-legacy.supp 2025-12-09 07:33:49 +01:00
valgrind.pc.in Fix valt_load_address value in pkgconfig file. 2012-10-04 20:01:50 +00:00
valgrind.spec.in Move older news into its own file, NEWS.old, so as not to overrun TeX 2012-08-08 20:38:03 +00:00
vg-in-place vgdb: implement the extended-remote protocol 2023-04-14 00:08:53 +02:00
xfree-3.supp Completely overhauled the internals of Memcheck's error handling. All the 2006-12-16 00:54:12 +00:00
xfree-4.supp Bug 466884 - Missing writev uninit padding suppression for _XSend 2023-11-18 09:38:25 +01:00

Release notes for Valgrind
~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are building a binary package of Valgrind for distribution,
please read README_PACKAGERS.  It contains some important information.

If you are developing Valgrind, please read README_DEVELOPERS.  It contains
some useful information.

For instructions on how to build/install, see the end of this file.

If you have problems, consult the FAQ to see if there are workarounds.


Executive Summary
~~~~~~~~~~~~~~~~~
Valgrind is a 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 seven 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 two heap profilers. It also includes
one experimental tool: a SimPoint basic block vector generator.

Valgrind is closely tied to details of the CPU, operating system and to
a lesser extent, compiler and basic C libraries. This makes it difficult
to make it portable.  Nonetheless, it is available for the following
platforms: 

- X86/Linux
- AMD64/Linux
- PPC32/Linux
- PPC64/Linux
- ARM/Linux
- ARM64/Linux
- X86/macOS
- AMD64/macOS
- S390X/Linux
- MIPS32/Linux
- MIPS64/Linux
- nanoMIPS/Linux
- X86/Solaris
- AMD64/Solaris
- X86/FreeBSD
- AMD64/FreeBSD
- ARM64/FreeBSD

Note that AMD64 is just another name for x86_64, and Valgrind runs fine
on Intel processors.  Also note that the core of macOS is called
"Darwin" and this name is used sometimes.

Valgrind is licensed under the GNU General Public License, version 3.
Read the file COPYING in the source distribution for details.

However: if you contribute code, you need to make it available as GPL
version 3 or later, and not 3-only.


Documentation
~~~~~~~~~~~~~
A comprehensive user guide is supplied.  Point your browser at
$PREFIX/share/doc/valgrind/manual.html, where $PREFIX is whatever you
specified with --prefix= when building.


Building and installing it
~~~~~~~~~~~~~~~~~~~~~~~~~~
To install from the GIT repository:

  0. Clone the code from GIT:
     git clone https://sourceware.org/git/valgrind.git
     There are further instructions at
     http://www.valgrind.org/downloads/repository.html.

  1. cd into the source directory.

  2. Run ./autogen.sh to setup the environment (you need the standard
     autoconf tools to do so).

  3. Continue with the following instructions...

To install from a tar.bz2 distribution:

  4. Run ./configure, with some options if you wish.  The only interesting
     one is the usual --prefix=/where/you/want/it/installed.

  5. Run "make".

  6. Run "make install", possibly as root if the destination permissions
     require that.

  7. See if it works.  Try "valgrind ls -l".  Either this works, or it
     bombs out with some complaint.  In that case, please let us know
     (see http://valgrind.org/support/bug_reports.html).

Important!  Do not move the valgrind installation into a place
different from that specified by --prefix at build time.  This will
cause things to break in subtle ways, mostly when Valgrind handles
fork/exec calls.


The Valgrind Developers