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