No description
  • C 93.9%
  • Assembly 1.7%
  • C++ 1.7%
  • Makefile 0.7%
  • M4 0.5%
  • Other 1.4%
Find a file
Mark Wielaard 90c6e7d3d7 Fix compile issue in VEX/priv/guest_amd64_helpers.c with GCC8
GCC 8.5.0 doesn't like a direct variable declaration after a case
statement.

priv/guest_amd64_helpers.c: In function 'amd64g_dirtyhelper_CPUID_avx2':
priv/guest_amd64_helpers.c:3653:10: error: a label can only be part of a
statement and a declaration is not a statement

Create a block for the case statement to declare the variable.
2026-06-14 00:06:21 +02:00
auxprogs Update the LTP version in valgrind testsuite to v20260529 2026-06-12 17:07:52 +02:00
cachegrind Update Valgrind and Tool printed copyright years 2026-04-14 07:29:18 +02:00
callgrind Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
coregrind Bug 338365 - New client request to fetch valgrind version 2026-06-04 20:47:57 +02:00
dhat testsuite: Tidy. Remove empty .stdout.exp files 2025-12-13 18:37:27 +00:00
docs Doc: add NEWS.older to html generation 2026-06-05 07:17:24 +02:00
drd Ship drd/Testing.txt and verify-xml-output 2026-06-10 14:50:54 +00:00
exp-bbv exp-bbv clone_test: Cleanup 2026-05-06 20:50:19 +00:00
gdbserver_tests testcases: Cleanup garbage.filtered.out 2026-05-10 18:01:18 +00:00
helgrind More makefile tweaks for dist_noinst_SCRIPTS. 2026-06-10 14:05:30 +00:00
include Bug 338365 - New client request to fetch valgrind version 2026-06-04 20:47:57 +02:00
lackey lackey tests: Include missing Makefile.tool-tests.am 2026-05-06 13:01:54 +00:00
m4 Check for and compile using -std=gnu11 (or higher) 2025-01-23 19:33:57 +01:00
massif Massif doc: mention that Darwin x86 uses unsigned long for size_t. 2026-05-31 07:53:50 +02:00
memcheck FreeBSD regtest: update clock_nanosleep1 test 2026-06-10 22:53:04 +02: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 Add PMULDQ SSE4.1 support for x86 2026-06-10 23:05:45 +02:00
perf Upgrade to GNU General Public License version 3 2025-10-18 00:55:07 +02:00
shared Darwin version macros: remove DARWIN_10_6 and DARWIN_10_7 2026-05-29 21:17:30 +02:00
solaris Replace git:// URLs with https:// URLs 2022-08-29 10:13:47 +02:00
tests FreeBSD regtest: add a (below main) filter for one of the massif tests. 2026-04-12 16:36:27 +02:00
VEX Fix compile issue in VEX/priv/guest_amd64_helpers.c with GCC8 2026-06-14 00:06:21 +02: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 338365 - New client request to fetch valgrind version 2026-06-04 20:47:57 +02: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 Regtest: add a test for C23 free_sized and free_aligned_sized 2026-05-17 11:40:02 +02: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 regtest and suppressions: more for Darwin 19 2026-03-30 13:25:52 +02:00
darwin-helgrind.supp Darwin suppressions and massif ignore function 2026-04-16 21:25:08 +02:00
darwin-legacy.supp Darwin suppressions: merge old suppression files to darwin-legacy.supp 2025-12-09 07:33:49 +01:00
darwin.supp Darwin suppression: add a suppression for fork on macOS 13 2026-04-27 08:26:27 +02:00
freebsd-drd.supp FreeBSD suppression: broaden _malloc_postfork for FreeBSD 16 2026-05-01 20:17:12 +00:00
freebsd-helgrind.supp FreeBSD helgrind: add a suppression for ostream padding 2026-04-06 15:59:53 +02:00
freebsd.supp FreeBSD suppression: broaden rtld sigprocmask param suppression 2026-04-14 08:05:52 +02: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 Fix dist builds: add NEWS.older to EXTRA_DIST 2026-06-05 13:00:08 +02: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
musl.supp musl: updates to suppressions and drd pthread detection script 2024-02-17 18:24:36 +01:00
NEWS Advertise LZCNT via CPUID for amd64 clients 2026-06-12 16:45:12 +02: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 Reformat README.freebsd for an 80 wide terminal 2026-05-11 20:51:43 +02: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 README_DEVELOPERS: improve updating zstd instructions 2026-05-03 19:51:49 +02: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 Doc: update README_MISSING_SYSCALL_OR_IOCTL 2026-06-03 22:18:43 +02: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