Valgrind 3.21.0

We are pleased to announce a new release of Valgrind, version 3.21.0, available from

Summary of new features

valgrind now provides gdb python commands. These GDB front end commands provide a better integration in the GDB command line interface, so as to use for example GDB auto-completion, command specific help, searching for a command or command help matching a regexp, … For relevant monitor commands, GDB will evaluate arguments to make the use of monitor commands easier.

The vgdb utility now supports extended-remote protocol when invoked with --multi. In this mode the GDB run command is supported. Which means you don’t need to run gdb and valgrind from different terminals.

The behaviour of realloc with a size of zero can now be changed for tools that intercept malloc with --realloc-zero-bytes-frees=yes|no

Make the address space limit on FreeBSD amd64 128Gbytes

When doing a memcheck delta leak_search, it is now possible to only output the new loss records compared to the previous leak search.

Memcheck now performs checks for the use of realloc with a size of zero. --show-realloc-size-zero=yes|no

The helgrind option --history-backtrace-size= allows to configure the number of entries to record in the stack traces of “old” accesses.

Cachegrind--cache-sim=no is now the default.

cg_annotate, cg_diff, and cg_merge have been rewritten in Python. As a result, they all have more flexible command line argument handling, e.g. supporting --show-percs and --no-show-percs forms as well as the existing --show-percs=yes and --show-percs=no.

cg_annotate is much faster, e.g. 3-4x on common cases. It now supports diffing (with --diff, --mod-filename, and --mod-funcname) and merging (by passing multiple data files). It now provides more information at the file and function level.

DHAT supports a new user request which allows you to override the 1024 byte limit on access count histograms for blocks of memory.

Full release notes at