TGViewer
C++ - Reddit C++ - Reddit @r_cpp · 228 subscribers
Post #24109 15
Valgrind 3.26 released

We are pleased to announce a new release of Valgrind, version 3.26.0, available from https://valgrind.org/downloads/current.html

This release adds an upgrade to GPL version 3, build control for html and/or pdf docs, added LibVEX_set_VexControl, removed Iop_Clz32/64 and Iop_Ctz32/64, integrated LTP v20250930, 13 new Linux syscall wrappers, new --modify-fds=yes, use log output protocol 6 with --xml=yes, new --track-fds=bad, gdb qExecAndArgs packet support, rewrite of DWARF inlined subroutine handling, new vgstack utility, handling of aligned allocation with size of zero changed, checks for C23 free_sized and free_aligned_sized.

See the release notes below for details of the changes.

Our thanks to all those who contribute to Valgrind's development.

This release represents a great deal of time, energy and effort on the part of many people. It was a busy release, with more than 400 commits by 12 people, fixing 90 bugs.

Happy and productive debugging and profiling,

\-- The Valgrind Developers

Release 3.26.0 (24 Oct 2025)

\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~\~

This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux, PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, RISCV64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android, X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD and ARM64/FreeBSD There is also preliminary support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.

* ==================== CORE CHANGES ===================

* Upgrade to the GNU General Public License version 3.

* Control building documentation. When using make dist set the Makefile BUILD_DOCS to none, all or html. none, does not build any documentation. all, builds all documentation. html, builds HTML docs but skips building PDFs. See also README_DEVELOPERS.

* New VEX API function LibVEX_set_VexControl

* The deprecated IROps: Iop_Clz32/64 and Iop_Ctz32/64 have been removed

* The Linux Test Project (LTP) integration has been updated to v20250930. The test output has been made compatible with bunsen. Various issues with the linux syscall wrappers have been fixed.

New Linux syscall wrappers for: cachestat, futex_waitv, listmount, mount_setattr, mseal, quotactl_fd, remap_file_pages, setdomainname, statmount, swapoff, swapon, sysfs and ustat.

* --modify-fds=yes has been added. It acts like --modify-fds=high (the highest available file descriptor is returned first) except when when the lowers stdin/stdout/stderr (file descriptors 0, 1, 2) are available. With --modify-fds=yes 0, 1 or 2 are always returned first when still available before higher file descriptor numbers are.

* With --xml=yes log output protocol 6 is now always used (unlike protocol 5 which was only used with--track-fds). The main difference is that the xml output now contains error summaries. See also xml-output-protocol6.txt.

* Add "bad" option for --track-fds. When --track-fds=bad is specified, do not produce errors about unclosed file descriptors at program exit. Only produce errors for bad file descriptor usage, either double close or use of file descriptor that is (no longer) valid.

* vgdb will now handle the qExecAndArgs packet.

* DWARF inlined subroutine handling has been rewritten to work cross compile units. This should get rid of backtraces with "UnknownInlinedFun".

* ================== PLATFORM CHANGES =================

FreeBSD 15 (which is expected to ship in December 2025, after Valgrind 3.26 is released) contains a change to ptrace that affects use of Valgrind with vgdb. This impacts the mechanism that vgdb uses to interrupt Valgrind if all threads are blocked and you want to get back to the gdb prompt by hitting ctrl-c. This mechanism is no longer reliable. On arm64 Valgrind will crash with an assert. On amd64 syscalls may give spurious and incorrect return codes.

There is a workaround. Run the following command (as root).

sysctl
valgrind.org Valgrind: Current Releases Official Home Page for valgrind, a suite of tools for debugging and profiling. Automatically detect memory management and threading bugs, and perform detailed profiling. The current stable version is valgrind-3.27.0.
More from @r_cpp
  1. Oct 14, 2026I tested whether a coding agent would use C++23 ranges without being told Blog post: https…
  2. Oct 14, 2026C++ futures part 1: The mental model https://devblogs.microsoft.com/oldnewthing/20261012-0…
  3. Oct 14, 2026C++ futures part 2: The mental model for std::promise, std::packaged_task https://devblogs…
  4. Oct 12, 2026[Release] slick-logger v2.2.0 — Lock-free asynchronous C++20 logging with multi-process sh…
  5. Oct 12, 2026Cheap alternative to reboot parameters (nohz, rcu, isolcpus) for stable benchmarks When no…
  6. Oct 12, 2026This C++ drama is crazy - Adobe votes no https://www.youtube.com/watch?v=DEqx_NMMH9Q https…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →