Valgrind 3.20.0

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

This is mostly a bug fix release to make sure valgrind works well against the latest gcc, glibc and linux kernel, but also contains a lot of work to make valgrind work better on FreeBSD. Plus a couple of new features:

  • The option “–vgdb-stop-at=event1,event2,…” accepts the new value abexit. This indicates to invoke gdbserver when your program exits abnormally (i.e. with a non zero exit code).
  • Fix Rust v0 name demangling.
  • The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
  • Add FreeBSD syscall wrappers for __specialfd and __realpathat.
  • Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with HardenedBSD
  • The option –enable-debuginfod= [default: yes] has been added on Linux.
  • More DWARF5 support as generated by clang14.

The most interesting bug fixed (IMHO) is #458915 syscall sometimes returns its number instead of return code when vgdb is attached. It might not hit you, but if it did it was really confusing.