1 Release 3.25.0 (?? Apr 2025)
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
5 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
6 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
7 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
8 and ARM64/FreeBSD There is also preliminary support for X86/macOS 10.13,
9 AMD64/macOS 10.13 and nanoMIPS/Linux.
11 * ==================== CORE CHANGES ===================
13 * The valgrind gdbserver now supports the GDB remote protocol packet
14 'x addr,len' (available in GDB release >= 16).
15 The x packet can reduce the time taken by GDB to read memory from valgrind.
17 * ================== PLATFORM CHANGES =================
19 * ==================== TOOL CHANGES ===================
21 * ==================== FIXED BUGS ====================
23 The following bugs have been fixed or resolved. Note that "n-i-bz"
24 stands for "not in bugzilla" -- that is, a bug that was reported to us
25 but never got a bugzilla entry. We encourage you to file bugs in
26 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
27 than mailing the developers (or mailing lists) directly -- bugs that
28 are not entered into bugzilla tend to get forgotten about or ignored.
30 489913 WARNING: unhandled amd64-linux syscall: 444 (landlock_create_ruleset)
31 494246 syscall fsopen not wrapped
32 494327 Crash when running Helgrind built with #define TRACE_PTH_FNS 1
33 494337 All threaded applications cause still holding lock errors
34 495488 Add FreeBSD getrlimitusage syscall wrapper
35 496571 False positive for null key passed to bpf_map_get_next_key syscall.
36 469782 Valgrind does not support zstd-compressed debug sections
37 497130 Recognize new DWARF5 DW_LANG constants
38 497455 Update drd/scripts/download-and-build-gcc
39 497723 Enabling Ada demangling breaks callgrind differentiation between
40 overloaded functions and procedures
42 To see details of a given bug, visit
43 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
44 where XXXXXX is the bug number as listed above.
47 Release 3.24.0 (31 Oct 2024)
48 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
51 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
52 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
53 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
54 and ARM64/FreeBSD There is also preliminary support for X86/macOS 10.13,
55 AMD64/macOS 10.13 and nanoMIPS/Linux.
57 * ==================== CORE CHANGES ===================
59 * Bad file descriptor usage now generates a real error with
60 --track-fds=yes that is suppressible and shows up in the xml output
61 with full execution backtrace. The warnings shown without using the
62 option are deprecated and will be removed in a future valgrind
65 * Ada name demangling is now supported in error messages.
67 * ================== PLATFORM CHANGES =================
69 * S390X added support for the DFLTCC instruction provided by the
70 deflate-conversion facility (z15/arch13).
72 * S390X added support for the instructions provided by the MSA facility
73 and MSA extensions 1-9.
75 * ==================== TOOL CHANGES ===================
77 * ==================== FIXED BUGS ====================
79 The following bugs have been fixed or resolved. Note that "n-i-bz"
80 stands for "not in bugzilla" -- that is, a bug that was reported to us
81 but never got a bugzilla entry. We encourage you to file bugs in
82 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
83 than mailing the developers (or mailing lists) directly -- bugs that
84 are not entered into bugzilla tend to get forgotten about or ignored.
86 202770 open fd at exit --log-socket=127.0.0.1:1500 with --track-fds=yes
87 276780 An instruction in fftw (Fast Fourier Transform) is unhandled by
88 valgrind: vex x86->IR: unhandled instruction bytes:
90 311655 --log-file=FILE leads to apparent fd leak
91 317127 Fedora18/x86_64 --sanity-level=3 : aspacem segment mismatch
92 337388 fcntl works on Valgrind's own file descriptors
93 377966 arm64 unhandled instruction dc zva392146 aarch64: unhandled
94 instruction 0xD5380001 (MRS rT, midr_el1)
95 391148 Unhandled AVX instruction vmovq %xmm9,%xmm1
96 392146 aarch64: unhandled instruction 0xD5380001 (MRS rT, midr_el1)
97 412377 SIGILL on cache flushes on arm64
98 417572 vex amd64->IR: unhandled instruction bytes: 0xC5 0x79 0xD6 0xED 0xC5
99 440180 s390x: Failed assertion in disassembler
100 444781 MIPS: wrong syscall numbers used
101 447989 Support Armv8.2 SHA-512 instructions
102 445235 Java/Ada/D demangling is probably broken
103 453044 gbserver_tests failures in aarch64
104 479661 Valgrind leaks file descriptors
105 486180 [Valgrind][MIPS] 'VexGuestArchState' has no member named
106 'guest_IP_AT_SYSCALL'
107 486293 memccpy false positives
108 486569 linux inotify_init syscall wrapper missing POST entry in syscall_table
109 487439 SIGILL in JDK11, JDK17
110 487993 Alignment error when using Eigen with Valgrind and -m32
111 488026 Use of `sizeof` instead of `strlen
112 488379 --track-fds=yes errors that cannot be suppressed with --xml-file=
113 488441 Add tests for --track-fds=yes --xml=yes and fd suppression tests
114 489040 massif trace change to show the location increasing the stack
115 489088 Valgrind throws unhandled instruction bytes: 0xC5 0x79 0xD6 0xE0 0xC5
116 489338 arm64: Instruction fcvtas should round 322.5 to 323, but result is 322.
117 489676 vgdb handle EINTR and EAGAIN more consistently
118 490651 Stop using -flto-partition=one
119 491394 (vgModuleLocal_addDiCfSI): Assertion 'di->fsm.have_rx_map &&
120 di->fsm.rw_map_count' failed
121 492210 False positive on x86/amd64 with ZF taken directly from addition
122 492214 statx(fd, NULL, AT_EMPTY_PATH) is supported since Linux 6.11
123 but not supported in valgrind
124 492422 Please support DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
125 492663 Valgrind ignores debug info for some binaries
126 493418 Add bad fd usage errors for --track-fds in ML_(fd_allowed)
127 493454 Missing FUSE_COMPATIBLE_MAY_BLOCK markers
128 493507 direct readlink syscall from PRE handler is incompatible with
129 FUSE_COMPATIBLE_MAY_BLOCK
130 493959 s390x: Fix regtest failure for none/tests/s390x/op00
131 493970 s390x: Store/restore FPC upon helper call causes slowdown
132 494218 Remove FREEBSD_VERS from configure and build
133 494252 s390x: incorrect disassembly for LOCHI and friends
134 494960 Fixes and tweaks for gsl19test
135 495278 PowerPC instruction dcbf should allow the L field values of 4, 6 on
136 ISA 3.0 and earlier, just ignore the value
137 495469 aligned_alloc and posix_memalign missing MALLOC_TRACE with returned
139 495470 s390x: 3.24.0.RC1 missing file and regtest failure
140 n-i-bz Improve messages for sigaltstack errors, use specific
143 To see details of a given bug, visit
144 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
145 where XXXXXX is the bug number as listed above.
147 (3.24.0.RC1: 27 Oct 2024)
150 Release 3.23.0 (26 Apr 2024)
151 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
153 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
154 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
155 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
156 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD, AMD64/FreeBSD
157 and ARM64/FreeBSD There is also preliminary support for X86/macOS 10.13,
158 AMD64/macOS 10.13 and nanoMIPS/Linux.
160 * ==================== CORE CHANGES ===================
162 * --track-fds=yes will now also warn about double closing of file
163 descriptors. Printing the context where the file descriptor was
164 originally opened and where it was previously closed.
166 * --track-fds=yes also produces "real" errors now which can be
167 suppressed and work with --error-exitcode. When combined with
168 --xml the xml-output now also includes FdBadClose and FdNotClosed
169 error kinds (see docs/internals/xml-output-protocol5.txt).
171 * The option --show-error-list=no|yes now accepts a new value all.
172 This indicates to also print the suppressed errors.
173 This is useful to analyse which errors are suppressed by which
175 The valgrind monitor command 'v.info all_errors' similarly now
176 accepts a new optional argument 'also_suppressed' to show
177 all errors including the suppressed errors.
179 * ================== PLATFORM CHANGES =================
181 * Added ARM64 support for FreeBSD.
183 * ARM64 now supports dotprod instructions (sdot/udot).
185 * AMD64 better supports code build with -march=x86-64-v3.
186 fused-multiple-add instructions (fma) are now emulated more
187 accurately. And memcheck now handles __builtin_strcmp using 128/256
188 bit vectors with sse4.1, avx/avx2.
190 * S390X added support for NNPA (neural network processing assist)
191 facility vector instructions VCNF, VCLFNH, VCFN, VCLFNL, VCRNF and
194 * X86 recognizes new binutils-2.42 nop patterns.
196 * ==================== TOOL CHANGES ===================
198 * The none tool now also supports xml output.
200 * ==================== FIXED BUGS ====================
202 The following bugs have been fixed or resolved. Note that "n-i-bz"
203 stands for "not in bugzilla" -- that is, a bug that was reported to us
204 but never got a bugzilla entry. We encourage you to file bugs in
205 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
206 than mailing the developers (or mailing lists) directly -- bugs that
207 are not entered into bugzilla tend to get forgotten about or ignored.
210 283429 ARM leak checking needs CLEAR_CALLER_SAVED_REGS
211 281059 Cannot connect to Oracle using valgrind
212 328563 make track-fds support xml output
213 362680 --error-exitcode not honored when file descriptor leaks are found
214 369723 __builtin_longjmp not supported in clang/llvm on Android arm64 target
215 390269 unhandled amd64-darwin syscall: unix:464 (openat_nocancel)
216 401284 False positive "Source and destination overlap in strncat"
217 428364 Signals inside io_uring_enter not handled
218 437790 valgrind reports "Conditional jump or move depends on uninitialised
219 value" in memchr of macOS 10.12-10.15
220 460616 disInstr(arm64): unhandled instruction 0x4E819402 (dotprod/ASIMDDP)
221 463458 memcheck/tests/vcpu_fnfns fails when glibc is built for x86-64-v3
222 463463 none/tests/amd64/fma fails when executed on a x86-64-v3 system
223 466762 Add redirs for C23 free_sized() and free_aligned_sized()
224 466884 Missing writev uninit padding suppression for _XSend
225 471036 disInstr_AMD64: disInstr miscalculated next %rip on RORX imm8, m32/64, r32/6
226 471222 support tracking of file descriptors being double closed
227 474160 If errors-for-leak-kinds is specified, exit-on-first-error should only exit
228 on one of the listed errors.
229 475498 Add reallocarray wrapper
230 476025 Vbit expected test results for Iop_CmpGT64Ux2 are wrong
231 476320 Build failure with GCC
232 476331 clean up generated/distributed filter scripts
233 476535 Difference in allocation size for massif/tests/overloaded-new between
234 clang++/libc++ and g++/libstdc++
235 476548 valgrind 3.22.0 fails on assertion when loading debuginfo file
237 476708 valgrind-monitor.py regular expressions should use raw strings
238 476780 Extend strlcat and strlcpy wrappers to GNU libc
239 476787 Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is
241 476887 WARNING: unhandled amd64-freebsd syscall: 578
242 477198 Add fchmodat2 syscall on linux
243 477628 Add mremap support for Solaris
244 477630 Include ucontext.h rather than sys/ucontext.h in Solaris sources
245 477719 vgdb incorrectly replies to qRcmd packet
246 478211 Redundant code for vgdb.c and Valgrind core tools
247 478624 Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns
248 (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26
249 478837 valgrind fails to read debug info for rust binaries
250 479041 Executables without RW sections do not trigger debuginfo reading
251 480052 WARNING: unhandled amd64-freebsd syscall: 580
252 480126 Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8
253 480405 valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):
254 Assertion '!sr_isError(sr)' failed."
255 480488 Add support for FreeBSD 13.3
256 480706 Unhandled syscall 325 (mlock2)
257 481127 amd64: Implement VFMADD213 for Iop_MAddF32
258 481131 [PATCH] x86 regtest: fix clobber lists in generated asm statements
259 481676 Build failure on Raspberry Pi 5 Ubuntu 23.10 with clang
260 481874 Add arm64 support for FreeBSD
261 483786 Incorrect parameter indexing in FreeBSD clock_nanosleep syscall wrapper
262 484002 Add suppression for invalid read in glibc's __wcpncpy_avx2() via wcsxfrm()
263 484426 aarch64: 0.5 gets rounded to 0
264 484480 False positives when using sem_trywait
265 484935 [patch] Valgrind reports false "Conditional jump or move depends on
266 uninitialised value" errors for aarch64 signal handlers
267 485148 vfmadd213ss instruction is instrumented incorrectly (the remaining
268 part of the register is cleared instead of kept unmodified)
269 485487 glibc built with -march=x86-64-v3 does not work due to ld.so strcmp
270 485778 Crash with --track-fds=all and --gen-suppressions=all
271 n-i-bz Add redirect for memccpy
273 To see details of a given bug, visit
274 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
275 where XXXXXX is the bug number as listed above.
277 (3.23.0.RC1: 19 Apr 2024)
278 (3.23.0.RC2: 24 Apr 2024)
280 Release 3.22.0 (31 Oct 2023)
281 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
283 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
284 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
285 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
286 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
287 AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
288 AMD64/macOS 10.13 and nanoMIPS/Linux.
290 * ==================== CORE CHANGES ===================
292 * A new configure option --with-gdbscripts-dir lets you install
293 the gdb valgrind python monitor scripts in a specific location.
294 For example a distro could use it to install the scripts in a
295 safe load location --with-gdbscripts-dir=%{_datadir}/gdb/auto-load
296 It is also possible to configure --without-gdb-scripts-dir so no
297 .debug_gdb_scripts section is added to the vgpreload library and
298 no valgrind-monitor python scripts are installed at all.
300 * ================== PLATFORM CHANGES =================
302 * Support has been added for FreeBSD 14 and FreeBSD 15.
303 * Add support for the folllowing FreeBSD system calls:
304 close_range, kqueuex, membarrier, timerfd_create,
305 timerfd_settime and timerfd_gettime (all added in FreeBSD 15).
307 * ==================== TOOL CHANGES ===================
309 * Memcheck now tests and warns about the values used for
310 alignment and size. These apply to various functions: memalign,
311 posix_memalign and aligned_alloc in C and various overloads
312 of operators new and delete in C++. The kinds of error that can
314 - invalid alignment, for instance the alignment is usually required
316 - mismatched alignment between aligned allocation and aligned
318 - mismatched size when sized delete is used
319 - bad size for functions that have implementation defined behaviour
320 when the requested size is zero
323 - You can now profile part of a program's execution using the new
324 `CACHEGRIND_START_INSTRUMENTATION` and `CACHEGRIND_STOP_INSTRUMENTATION`
325 client requests, along with the new `--instr-at-start` option. The
326 behaviour is the same as Callgrind's equivalent functionality.
328 * ==================== FIXED BUGS ====================
330 The following bugs have been fixed or resolved. Note that "n-i-bz"
331 stands for "not in bugzilla" -- that is, a bug that was reported to us
332 but never got a bugzilla entry. We encourage you to file bugs in
333 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
334 than mailing the developers (or mailing lists) directly -- bugs that
335 are not entered into bugzilla tend to get forgotten about or ignored.
337 390871 ELF debug info reader confused with multiple .rodata* sections
338 417993 vbit-test fail on s390x with Iop_Add32: spurious dependency on uninit
339 426751 Valgrind reports "still reachable" memory using musl
340 (alpine running inside docker)
341 432801 Valgrind 3.16.1 reports a jump based on uninitialized memory somehow
342 related to clang and signals
343 433857 Add validation to C++17 aligned new/delete alignment size
344 433859 Add mismatched detection to C++ 17 aligned new/delete
345 460192 Add epoll_pwait2
346 461074 DWARF2 CFI reader: unhandled DW_OP_ 0x11 (consts) DW_OP_ 0x92 (bregx)
347 465782 s390x: Valgrind doesn't compile with Clang on s390x
348 466105 aligned_alloc problems, part 2
349 467441 Add mismatched detection to C++ 14 sized delete
350 469049 link failure on ppc64 (big endian) valgrind 3.20
351 469146 massif --ignore-fn does not ignore inlined functions
352 469768 Make it possible to install gdb scripts in a different location
353 470121 Can't run callgrind_control with valgrind 3.21.0 because of perl errors
354 470132 s390x: Assertion failure on VGM instruction
355 470520 Multiple realloc zero errors crash in MC_(eq_Error)
356 470713 Failure on the Yosys project: valgrind: m_libcfile.c:1802
357 (Bool vgPlain_realpath(const HChar *, HChar *)):
358 Assertion 'resolved' failed
359 470830 Don't print actions vgdb me ... continue for vgdb --multi mode
360 470978 s390x: Valgrind cannot start qemu-kvm when "sysctl vm.allocate_pgste=0"
361 471311 gdb --multi mode stdout redirecting to stderr
362 471807 Add support for lazy reading and downloading of DWARF debuginfo
363 472219 Syscall param ppoll(ufds.events) points to uninitialised byte(s)
364 472875 none/tests/s390x/dfp-1 failure
365 472963 Broken regular expression in configure.ac
366 473604 Fix bug472219.c compile failure with Clang 16
367 473677 make check compile failure with Clang 16 based on GCC 13.x
368 473745 must-be-redirected function - strlen
369 473870 FreeBSD 14 applications fail early at startup
370 473944 Handle mold linker split RW PT_LOAD segments correctly
371 474332 aligned_alloc under Valgrind returns nullptr when alignment is not a multiple of sizeof(void *)
372 475650 DRD does not work with C11 threads
373 475652 Missing suppression for __wcsncpy_avx2 (strncpy-avx2.S:308)?
374 476108 vg_replace_malloc DELETE checks size
375 n-i-bz Allow arguments with spaces in .valgrindrc files
376 n-i-bz FreeBSD fixed reading of Valgrind tools own debuginfo
378 To see details of a given bug, visit
379 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
380 where XXXXXX is the bug number as listed above.
382 (3.22.0.RC1: 17 Oct 2023)
383 (3.22.0.RC2: 26 Oct 2023)
385 Release 3.21.0 (28 Apr 2023)
386 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
388 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
389 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
390 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
391 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
392 AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
393 AMD64/macOS 10.13 and nanoMIPS/Linux.
395 * ==================== CORE CHANGES ===================
397 * When GDB is used to debug a program running under valgrind using
398 the valgrind gdbserver, GDB will automatically load some
399 python code provided in valgrind defining GDB front end commands
400 corresponding to the valgrind monitor commands.
401 These GDB front end commands accept the same format as
402 the monitor commands directly sent to the Valgrind gdbserver.
403 These GDB front end commands provide a better integration
404 in the GDB command line interface, so as to use for example
405 GDB auto-completion, command specific help, searching for
406 a command or command help matching a regexp, ...
407 For relevant monitor commands, GDB will evaluate arguments
408 to make the use of monitor commands easier.
409 For example, instead of having to print the address of a variable
410 to pass it to a subsequent monitor command, the GDB front end
411 command will evaluate the address argument. It is for example
413 (gdb) memcheck who_points_at &some_struct sizeof(some_struct)
416 $2 = (some_struct_type *) 0x1130a0 <some_struct>
417 (gdb) p sizeof(some_struct)
419 (gdb) monitor who_point_at 0x1130a0 40
421 * The vgdb utility now supports extended-remote protocol when
422 invoked with --multi. In this mode the GDB run command is
423 supported. Which means you don't need to run gdb and valgrind
424 from different terminals. So for example to start your program
425 in gdb and run it under valgrind you can do:
427 (gdb) set remote exec-file prog
429 (gdb) target extended-remote | vgdb --multi
432 * The behaviour of realloc with a size of zero can now
433 be changed for tools that intercept malloc. Those
434 tools are memcheck, helgrind, drd, massif and dhat.
435 Realloc implementations generally do one of two things
436 - free the memory like free() and return NULL
437 (GNU libc and ptmalloc).
438 - either free the memory and then allocate a
439 minimum sized block or just return the
440 original pointer. Return NULL if the
441 allocation of the minimum sized block fails
442 (jemalloc, musl, snmalloc, Solaris, macOS).
443 When Valgrind is configured and built it will
444 try to match the OS and libc behaviour. However
445 if you are using a non-default library to replace
446 malloc and family (e.g., musl on a glibc Linux or
447 tcmalloc on FreeBSD) then you can use a command line
448 option to change the behaviour of Valgrind:
449 --realloc-zero-bytes-frees=yes|no [yes on Linux glibc, no otherwise]
451 * ================== PLATFORM CHANGES =================
453 * Make the address space limit on FreeBSD amd64 128Gbytes
454 (the same as Linux and Solaris, it was 32Gbytes)
456 * ==================== TOOL CHANGES ===================
459 - When doing a delta leak_search, it is now possible to only
460 output the new loss records compared to the previous leak search.
461 This is available in the memcheck monitor command 'leak_search'
462 by specifying the "new" keyword or in your program by using
463 the client request VALGRIND_DO_NEW_LEAK_CHECK.
464 Whenever a "delta" leak search is done (i.e. when specifying
465 "new" or "increased" or "changed" in the monitor command),
466 the new loss records have a "new" marker.
467 - Valgrind now contains python code that defines GDB memcheck
468 front end monitor commands. See CORE CHANGES.
469 - Performs checks for the use of realloc with a size of zero.
470 This is non-portable and a source of errors. If memcheck
471 detects such a usage it will generate an error
472 realloc() with size 0
473 followed by the usual callstacks.
474 A switch has been added to allow this to be turned off:
475 --show-realloc-size-zero=yes|no [yes]
478 - The option ---history-backtrace-size=<number> allows to configure
479 the number of entries to record in the stack traces of "old"
480 accesses. Previously, this number was hardcoded to 8.
481 - Valgrind now contains python code that defines GDB helgrind
482 front end monitor commands. See CORE CHANGES.
485 - `--cache-sim=no` is now the default. The cache simulation is old and
486 unlikely to match any real modern machine. This means only the `Ir`
487 event are gathered by default, but that is by far the most useful
489 - `cg_annotate`, `cg_diff`, and `cg_merge` have been rewritten in
490 Python. As a result, they all have more flexible command line
491 argument handling, e.g. supporting `--show-percs` and
492 `--no-show-percs` forms as well as the existing `--show-percs=yes`
493 and `--show-percs=no`.
494 - `cg_annotate` has some functional changes.
495 - It's much faster, e.g. 3-4x on common cases.
496 - It now supports diffing (with `--diff`, `--mod-filename`, and
497 `--mod-funcname`) and merging (by passing multiple data files).
498 - It now provides more information at the file and function level.
499 There are now "File:function" and "Function:file" sections. These
500 are very useful for programs that use inlining a lot.
501 - Support for user-annotated files and the `-I`/`--include` option
502 has been removed, because it was of little use and blocked other
504 - The `--auto` option is renamed `--annotate`, though the old
505 `--auto=yes`/`--auto=no` forms are still supported.
506 - `cg_diff` and `cg_merge` are now deprecated, because `cg_annotate`
507 now does a better job of diffing and merging.
508 - The Cachegrind output file format has changed very slightly, but in
509 ways nobody is likely to notice.
512 - Valgrind now contains python code that defines GDB callgrind
513 front end monitor commands. See CORE CHANGES.
516 - Valgrind now contains python code that defines GDB massif
517 front end monitor commands. See CORE CHANGES.
520 - A new kind of user request has been added which allows you to
521 override the 1024 byte limit on access count histograms for blocks
522 of memory. The client request is DHAT_HISTOGRAM_MEMORY.
524 * ==================== FIXED BUGS ====================
526 The following bugs have been fixed or resolved. Note that "n-i-bz"
527 stands for "not in bugzilla" -- that is, a bug that was reported to us
528 but never got a bugzilla entry. We encourage you to file bugs in
529 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
530 than mailing the developers (or mailing lists) directly -- bugs that
531 are not entered into bugzilla tend to get forgotten about or ignored.
533 170510 Don't warn about ioctl of size 0 without direction hint
534 241072 List tools in --help output
535 327548 false positive while destroying mutex
536 382034 Testcases build fixes for musl
537 351857 confusing error message about valid command line option
538 374596 inconsistent RDTSCP support on x86_64
539 392331 Spurious lock not held error from inside pthread_cond_timedwait
540 397083 Likely false positive "uninitialised value(s)" for __wmemchr_avx2 and __wmemcmp_avx2_movbe
541 400793 pthread_rwlock_timedwrlock false positive
542 419054 Unhandled syscall getcpu on arm32
543 433873 openat2 syscall unimplemented on Linux
544 434057 Add stdio mode to valgrind's gdbserver
545 435441 valgrind fails to interpose malloc on musl 1.2.2 due to weak symbol name and no libc soname
546 436413 Warn about realloc of size zero
547 439685 compiler warning in callgrind/main.c
548 444110 priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition.
549 444487 hginfo test detects an extra lock inside data symbol "_rtld_local"
550 444488 Use glibc.pthread.stack_cache_size tunable
551 444568 drd/tests/pth_barrier_thr_cr fails on Fedora 38
552 445743 "The impossible happened: mutex is locked simultaneously by two threads"
553 while using mutexes with priority inheritance and signals
554 449309 Missing loopback device ioctl(s)
555 459476 vgdb: allow address reuse to avoid "address already in use" errorsuse" errors
556 460356 s390: Sqrt32Fx4 -- cannot reduce tree
557 462830 WARNING: unhandled amd64-freebsd syscall: 474
558 463027 broken check for MPX instruction support in assembler
559 464103 Enhancement: add a client request to DHAT to mark memory to be histogrammed
560 464476 Firefox fails to start under Valgrind
561 464609 Valgrind memcheck should support Linux pidfd_open
562 464680 Show issues caused by memory policies like selinux deny_execmem
563 464859 Build failures with GCC-13 (drd tsan_unittest)
564 464969 D language demangling
565 465435 m_libcfile.c:66 (vgPlain_safe_fd): Assertion 'newfd >= VG_(fd_hard_limit)' failed.
566 466104 aligned_alloc problems, part 1
567 467036 Add time cost statistics for Regtest
568 467482 Build failure on aarch64 Alpine
569 467714 fdleak_* and rlimit tests fail when parent process has more than
570 64 descriptors opened
571 467839 Gdbserver: Improve compatibility of library directory name
572 468401 [PATCH] Add a style file for clang-format
573 468556 Build failure for vgdb
574 468606 build: remove "Valgrind relies on GCC" check/output
575 469097 ppc64(be) doesn't support SCV syscall instruction
576 n-i-bz FreeBSD rfork syscall fail with EINVAL or ENOSYS rather than VG_(unimplemented)
578 To see details of a given bug, visit
579 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
580 where XXXXXX is the bug number as listed above.
582 * ==================== KNOWN ISSUES ===================
584 * configure --enable-lto=yes is know to not work in all setups.
585 See bug 469049. Workaround: Build without LTO.
587 (3.21.0.RC1: 14 Apr 2023)
588 (3.21.0.RC2: 21 Apr 2023)
590 Release 3.20.0 (24 Oct 2022)
591 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
593 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
594 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
595 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
596 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
597 AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
598 AMD64/macOS 10.13 and nanoMIPS/Linux.
600 * ==================== CORE CHANGES ===================
602 * The option "--vgdb-stop-at=event1,event2,..." accepts the new value abexit.
603 This indicates to invoke gdbserver when your program exits abnormally
604 (i.e. with a non zero exit code).
605 * Fix Rust v0 name demangling.
606 * The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
607 * Add FreeBSD syscall wrappers for __specialfd and __realpathat.
608 * Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with
610 * The option --enable-debuginfod=<no|yes> [default: yes] has been added on
612 * More DWARF5 support as generated by clang14.
614 * ==================== FIXED BUGS ====================
616 The following bugs have been fixed or resolved. Note that "n-i-bz"
617 stands for "not in bugzilla" -- that is, a bug that was reported to us
618 but never got a bugzilla entry. We encourage you to file bugs in
619 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
620 than mailing the developers (or mailing lists) directly -- bugs that
621 are not entered into bugzilla tend to get forgotten about or ignored.
623 131186 writev reports error in (vector[...])
624 434764 iconv_open causes ld.so v2.28+ to use optimised strncmp
625 446754 Improve error codes from alloc functions under memcheck
626 452274 memcheck crashes with Assertion 'sci->status.what == SsIdle' failed
627 452779 Valgrind fails to build on FreeBSD 13.0 with llvm-devel (15.0.0)
628 453055 shared_timed_mutex drd test fails with "Lock shared failed" message
629 453602 Missing command line option to enable/disable debuginfod
630 452802 Handle lld 9+ split RW PT_LOAD segments correctly
631 454040 s390x: False-positive memcheck:cond in memmem on arch13 systems
632 456171 [PATCH] FreeBSD: Don't record address errors when accessing the 'kern.ps_strings' sysctl struct
633 n-i-bz Implement vgdb invoker on FreeBSD
634 458845 PowerPC: The L field for the dcbf and sync instruction should be
636 458915 Remove register cache to fix 458915 gdbserver causes wrong syscall return
637 459031 Documentation on --error-exitcode incomplete
638 459477 XERROR messages lacks ending '\n' in vgdb
639 462007 Implicit int in none/tests/faultstatus.c
641 To see details of a given bug, visit
642 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
643 where XXXXXX is the bug number as listed above.
645 (3.20.0.RC1: 20 Oct 2022)
648 Release 3.19.0 (11 Apr 2022)
649 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
651 This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
652 PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
653 MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
654 X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
655 AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
656 AMD64/macOS 10.13 and nanoMIPS/Linux.
658 * ==================== CORE CHANGES ===================
660 * Fix Rust v0 name demangling.
661 * The Linux rseq syscall is now implemented as (silently) returning ENOSYS.
662 * Add FreeBSD syscall wrappers for __specialfd and __realpathat.
663 * Remove FreeBSD dependencies on COMPAT10, which fixes compatibility with HardenedBSD
665 * ================== PLATFORM CHANGES =================
668 - ignore the "v8.x" architecture levels, only look at actual CPU features
669 present. Fixes mismatch detected between RDMA and atomics features
670 preventing startup on some QEMU configurations.
671 - Implement LD{,A}XP and ST{,L}XP
672 - Fix incorrect code emitted for doubleword CAS.
675 - Fix sys_ipc semtimedop syscall
676 - Fix VFLRX and WFLRX instructions
677 - Fix EXRL instruction with negative offset
680 - Reimplement the vbpermq instruction support to generate less Iops and
681 avoid overflowing internal buffers.
682 - Fix checking for scv support to avoid "Facility 'SCV' unavailable (12),
683 exception" messages in dmsg.
684 - Fix setting condition code for Vector Compare quad word instructions.
685 - Fix fix lxsibzx, lxsihzx and lxsihzx instructions so they only load
686 their respective sized data.
687 - Fix the prefixed stq instruction in PC relative mode.
689 * ==================== TOOL CHANGES ===================
692 - Speed up --track-origins=yes for large (in the range of hundreds to
693 thousands of megabytes) mmap/munmaps.
695 - Several fixes for new versions of libstd++ using new posix try_lock
698 * ==================== FIXED BUGS ====================
700 The following bugs have been fixed or resolved. Note that "n-i-bz"
701 stands for "not in bugzilla" -- that is, a bug that was reported to us
702 but never got a bugzilla entry. We encourage you to file bugs in
703 bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
704 than mailing the developers (or mailing lists) directly -- bugs that
705 are not entered into bugzilla tend to get forgotten about or ignored.
707 403802 leak_cpp_interior fails with some reachable blocks different than expected
708 435732 memcheck/tests/leak_cpp_interior fails with gcc11
709 444242 s390x: Valgrind crashes on EXRL with negative offset
710 444399 arm64: unhandled instruction 0xC87F2D89 (LD{,A}XP and ST{,L}XP).
712 444481 gdb_server test failures on s390x
713 444495 dhat/tests/copy fails on s390x
714 444552 memcheck/tests/sem fails on s390x with glibc 2.34
715 444571 PPC, fix the lxsibzx and lxsihzx so they only load their respective
717 444836 PPC, pstq instruction for R=1 is not storing to the correct address.
718 444925 fexecve syscall wrapper not properly implemented
719 445032 valgrind/memcheck crash with SIGSEGV when SIGVTALRM timer used and
721 445211 Fix out of tree builds
722 445300 [PATCH] Fix building tests with Musl
723 445011 SIGCHLD is sent when valgrind uses debuginfod-find
724 445354 arm64 backend: incorrect code emitted for doubleword CAS
725 445415 arm64 front end: alignment checks missing for atomic instructions
726 445504 Using C++ condition_variable results in bogus "mutex is locked simultaneously by two threads" warning
727 445607 Unhandled amd64-freebsd syscall: 247
728 445668 Inline stack frame generation is broken for Rust binaries
729 445916 Demangle Rust v0 symbols with .llvm suffix
730 446139 DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false positives
731 446138 DRD/Helgrind with std::timed_mutex::try_lock_until false positives
732 446281 Add a DRD suppression for fwrite
733 446103 Memcheck: `--track-origins=yes` causes extreme slowdowns for large mmap/munmap
734 446139 DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false
735 446251 TARGET_SIGNAL_THR added to enum target_signal
736 446823 FreeBSD - missing syscalls when using libzm4
737 447991 s390x: Valgrind indicates illegal instruction on wflrx
738 447995 Valgrind segfault on power10 due to hwcap checking code
739 449483 Powerpc: vcmpgtsq., vcmpgtuq,, vcmpequq. instructions not setting the
740 condition code correctly.
741 449672 ppc64 --track-origins=yes failures because of bad cmov addHRegUse
742 449838 sigsegv liburing the 'impossible' happened for io_uring_setup
743 450025 Powerc: ACC file not implemented as a logical overlay of the VSR
745 450437 Warn for execve syscall with argv or argv[0] being NULL
746 450536 Powerpc: valgrind throws 'facility scv unavailable exception'
747 451626 Syscall param bpf(attr->raw_tracepoint.name) points to unaddressable byte(s)
748 451827 [ppc64le] VEX temporary storage exhausted with several vbpermq instructions
749 451843 valgrind fails to start on a FreeBSD system which enforces W^X
751 To see details of a given bug, visit
752 https://bugs.kde.org/show_bug.cgi?id=XXXXXX
753 where XXXXXX is the bug number as listed above.
755 (3.19.0.RC1: 02 Apr 2022)
756 (3.19.0.RC2: 08 Apr 2022)