mirror of
git://sourceware.org/git/valgrind.git
synced 2026-01-12 00:19:31 +08:00
1116 lines
53 KiB
Plaintext
1116 lines
53 KiB
Plaintext
Release 3.27.0 (?? Apr 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 ===================
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
s390x: Machine models older than z196 are no longer supported.
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
228343 none/tests/darwin/bug228343 fails on OS X
|
|
413369 unhandled amd64-darwin syscall: unix:151 (getpgid)
|
|
487055 memcheck/tests/x86-linux/scalar fails running in Docker
|
|
509562 s390x: Define minimum required machine model
|
|
510416 Missing syswraps for file_getattr and file_setattr
|
|
510864 Add SSE4.1 PMAXSD and PMINSD instructions support for 32-bit x86
|
|
511329 Darwin and FreeBSD: Move setting of carry flag out of
|
|
ML_(do_syscall_for_client_WRK)
|
|
511713 Refactor syscall argument handling
|
|
511972 valgrind-3.26.0 tests fail to build on upcomig gcc-16:
|
|
unrecognized command-line option
|
|
'-Wno-alloc-size-larger-than=18446744073709551615'
|
|
512030 s390x: bfp-convert testcase fails
|
|
512037 malloc trace does not print free size or alignment
|
|
512571 regtest problems with darwin dsymuti
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.27.0.RC1: ?? Apr 2025)
|
|
|
|
|
|
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 debug.ptrace_attach_transparent=0
|
|
|
|
See also
|
|
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290008
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* There is a new utility script, "vgstack". It has two
|
|
option, -h for minimal help, and -v for the version information.
|
|
In normal use pass it the PID of a running Valgrind process
|
|
and it will perform a vgdb attach and print the backtrace(s)
|
|
of the guest executable.
|
|
|
|
* Memcheck handling of aligned allocation functions with a
|
|
size of zero has changed.
|
|
|
|
Firstly, 'free_aligned_sized' with a size of
|
|
zero is no longer considered an error. This was intended so
|
|
that deallocation had the same behaviour as allocation. In
|
|
practice, platforms that allow aligned allocation with a
|
|
size of zero will already generate an error at allocation.
|
|
Other platforms will get an 'Invalid free' error. The case
|
|
where the allocation and deallocation sizes are different
|
|
with the deallocation size being zero is already covered by
|
|
"Mismatched [alloc/dealloc] size" errors.
|
|
|
|
Secondly, the three C aligned allocation functions memalign,
|
|
aligned_alloc and posix_memalign have a different error
|
|
message if used with a size of zero. Previously the error
|
|
was "[function] invalid size value: [number]". This was an
|
|
overstatement of the issue. The problem is that such usage
|
|
is not portable across platforms. memalign and aligned_alloc
|
|
are poorly documented, saying things like "Behavior is undefined
|
|
if size is not an integral multiple of alignment.". Clearly
|
|
this does not include negative integers though it does not say
|
|
so explicitly. Does that include zero? posix_memalign is well documented
|
|
but says that using a size of 0 is implementation-defined. These
|
|
functions now produce an error
|
|
"Unsafe allocation with size of zero is implementation-defined".
|
|
|
|
The associated suppression name has also changed from "BadSize" to
|
|
"UnsafeZeroSize".
|
|
|
|
Checks for C23 free_sized and free_aligned_sized have been added to
|
|
Linux. Almost no libraries support these functions yet, with
|
|
the exception being Google tcmalloc.
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
286849 [PATCH] Interceptors for new/delete on Darwin were erroneously
|
|
commented out in r12043
|
|
306098 s390x: Alternate opcode form for convert to/from fixed and friends
|
|
309100 s390x: Testcases for extended BFP
|
|
309554 Wrap syscall remap_file_pages (216)
|
|
331311 Valgrind shows open files in /proc/self/fd that don't work for the process
|
|
338803 Handling of dwz debug alt files or cross-CU is broken
|
|
368791 Handle swapon and swapoff syscalls as linux generic
|
|
369030 Wrap linux syscall: 171 (setdomainname)
|
|
388526 Inconsistent severity in message text: "WARNING: Serious error"
|
|
418756 MAP_FIXED_NOREPLACE mmap flag unsupported
|
|
454276 Some IPC syscalls is missing for x86 linux
|
|
476465 AArch64 ARMv8.3 LDAPR/LDAPRH/LDAPRB instructions not supported
|
|
493430 Review all syscalls that use or return (new) file descriptors
|
|
493434 Add --track-fds=bad mode (no "leak" tracking)
|
|
501741 syscall cachestat not wrapped
|
|
502359 Add --modify-fds=yes option
|
|
502968 Wrap linux specific syscalls 457 (listmount) and 458 (statmount)
|
|
503098 Incorrect NAN-boxing for float registers in RISC-V
|
|
503241 s390x: Support z17 changes to the NNPA instruction
|
|
503641 close_range syscalls started failing with 3.25.0
|
|
503677 duplicated-cond compiler warning in dis_RV64M
|
|
503817 s390x: fix 'ordered comparison of pointer with integer zero' compiler warnings
|
|
503914 mount syscall param filesystemtype may be NULL
|
|
503969 Make test results of make ltpchecks compatible with bunsen
|
|
504101 Add a "vgstack" script
|
|
504177 FILE DESCRIPTORS banner shows when closing some inherited fds
|
|
504265 FreeBSD: missing syscall wrappers for fchroot and setcred
|
|
504341 Valgrind killed by LTP syscall testcase setrlimit05
|
|
504466 Double close causes SEGV
|
|
504904 Hide "bad act handler address" warnings when -q (quiet) flag is set
|
|
504909 Hide "Bad oldset address" warnings when -q (quiet) flag is set
|
|
504919 Hide "client tried to modify addresses" warnings when -q (quiet) set
|
|
504936 Add FreeBSD amd64 sysarch subcommands AMD64_SET_TLSBASE and
|
|
AMD64_GET_TLSBASE
|
|
505228 Wrap linux specific mseal syscall
|
|
505673 Valgrind crashes with an internal error and SIGBUS when
|
|
the guest tries to open its own file with O_WRONLY|O_CREAT|O_TRUNC
|
|
506076 unimplemented fcntl command: 1028 (F_CREATED_QUERY)
|
|
506499 Unhandled syscall 592 (exterrctl - FreeBSD
|
|
506795 Better report which clone flags are problematic
|
|
506806 Fix execveat() with AT_FDCWD and relative path
|
|
506813 The execveat wrapper needs to do more checking
|
|
506816 futex2, futex_waitv WARNING: unhandled amd64-linux syscall: 449
|
|
506910 openat2 with RESOLVE_NO_MAGICLINKS succeeds on /proc/self/exe
|
|
506928 Wrap (deprecated) linux specific ustat syscall
|
|
506929 Wrap (deprecated) linux sysfs syscall
|
|
506930 valgrind allows SIGKILL being reset to SIG_DFL
|
|
506967 Implement and override mallinfo2
|
|
506970 mmap needs an EBADF fd_allowed check
|
|
507033 Remove deprecated Iop_Clz32/64 and Iop_Ctz32/64
|
|
507173 s390x: Crash when constant folding is disabled
|
|
507188 memcheck with track-fds=yes on x86 with popen: Assertion
|
|
507720 Review syscalls returning file descriptors (other platforms)
|
|
507721 Wire up illumos and Solaris mallinfo
|
|
507853 faccessat and faccessat2 should handle AT_FDCWD and absolute paths
|
|
507866 fanotify_mark dirfd isn't checked
|
|
507867 perf_event_open group_fd isn't checked
|
|
507868 futimesat doesn't handle AT_FDCWD
|
|
507869 Various at syscalls don't check dirfd argument
|
|
507873 Make fchmodat and fchmodat2 syscall wrappers accept AT_FDCWD
|
|
507897 Allow for patching LTP sources
|
|
507970 -Wcalloc-transposed-args warnings in valgrind-di-server.c
|
|
508027 Fix mips32 FTBFS
|
|
508029 Review the vmsplice syscall wrapper
|
|
508030 Add several missing syscall hooks to ppc64-linux
|
|
508093 VALGRIND_CLO_CHANGE does not update vex_control
|
|
508145 ppc64le needs ld.so hardwire for strcmp
|
|
508328 Memory allegedly uninitialized after ioctl(PROCMAP_QUERY)
|
|
508154 PRE(sys_fchownat) not handling VKI_AT_FDCWD
|
|
508638 Self-hosting not working on FreeBSD
|
|
508777 amd64-linux: add minimal scalar test
|
|
508778 syscall-wrapper waitid warns about infop=null
|
|
508779 PRE(sys_prlimit64): reorder check for memory validity
|
|
508869 x86-linux: simplify scalar test output
|
|
508958 FreeBSD: add getgroups and setgroups wrappers
|
|
509103 Fix tests/arm64/bug484935.c build with "-O2 -flto -ffat-lto-objects"
|
|
509107 memcheck/tests/duplicate_align_size_errors.cpp fails
|
|
509139 Update BadSize error messages
|
|
509258 FreeBSD: add jail_attach_jd and jail_remove_jd syscall wrappers
|
|
509406 FreeBSD 15 issues
|
|
509517 s390x: Even/odd lane confusion in various vector insns
|
|
509566 Wrap amd64-linux syscall: 442 (mount_setattr)
|
|
509572 s390x: Overhaul BFP testsuite
|
|
509590 Run the LTP tests with LTP_QUIET
|
|
509567 unhandled amd64-linux syscall: 443 (quotactl_fd)
|
|
509642 Add missing ppc64-linux syswraps
|
|
509643 Add missing s390x-linux syswraps
|
|
510169 Update the LTP version in valgrind testsuite to 20250930
|
|
510292 Silence false positive failure of LTP munmap01
|
|
510436 Don't warn about fcntl F_GETFD with --track-fds
|
|
510694 Handle qExecAndArgs remote protocol packet
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.26.0.RC1: 17 Oct 2025)
|
|
|
|
Release 3.25.0 (25 Apr 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 ===================
|
|
|
|
* The valgrind gdbserver now supports the GDB remote protocol packet
|
|
'x addr,len' (available in GDB release >= 16).
|
|
The x packet can reduce the time taken by GDB to read memory from valgrind.
|
|
|
|
* Valgrind now supports zstd compressed debug sections.
|
|
|
|
* The Linux Test Project (ltp) is integrated in the testsuite try
|
|
'make ltpchecks' (this will take a while and will point out various
|
|
missing syscalls and valgrind crashes!)
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
* Added RISCV64 support for Linux. Specifically for the RV64GC
|
|
instruction set.
|
|
|
|
* Numerous bug fixes for Illumos, in particular fixed a Valgrind crash
|
|
whenever a signal handler was called.
|
|
|
|
* On FreeBSD, a change to the libc code that runs atexit handlers was
|
|
causing Helgrind to produce an extra error about exiting threads
|
|
still holding locks for. This applied to every multithreaded application.
|
|
The extra error is now filtered out. A syscall wrapper had been added
|
|
for getrlimitusage.
|
|
|
|
* On Linux various new syscalls are supported (landlock*, io_pgetevents,
|
|
open_tree, move_mount, fsopen, fsconfig, fsmount, fspick, userfaultfd).
|
|
|
|
* s390x has support for various new instructions (BPP, BPRP, PPA and NIAI).
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* The --track-fds=yes and --track-fds=all options now treat all
|
|
inherited file descriptors the same as 0, 1, 2 (stdin/out/err).
|
|
And when the stdin/out/err descriptors are reassigned they are
|
|
now treated as normal (non-inherited) file descriptors.
|
|
|
|
* A new option --modify-fds=high can be used together with
|
|
--track-fds=yes to create new file descriptors with the highest
|
|
possible number (and then decreasing) instead of always using the
|
|
lowest possible number (which is required by POSIX). This will help
|
|
catch issues where a file descriptor number might normally be reused
|
|
between a close and another open call.
|
|
|
|
* Helgrind:
|
|
There is a change to warnings about calls to pthread_cond_signal and
|
|
pthread_cond_broadcast when the associated mutex is unlocked. Previously
|
|
Helgrind would always warn about this. Now this error is controlled by
|
|
a command line option, --check-cond-signal-mutex=yes|no. The default is
|
|
no. This change has been made because some C and C++ standard libraries
|
|
use pthread_cond_signal/pthread_cond_broadcast in this way. Users are
|
|
obliged to use suppressions if they wish to avoid this noise.
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
290061 pie elf always loaded at 0x108000
|
|
396415 Valgrind is not looking up $ORIGIN rpath of shebang programs
|
|
420682 io_pgetevents is not supported
|
|
468575 Add support for RISC-V
|
|
469782 Valgrind does not support zstd-compressed debug sections
|
|
487296 --track-fds=yes and --track-fds=all report erroneous information
|
|
when fds 0, 1, or 2 are used as non-std
|
|
489913 WARNING: unhandled amd64-linux syscall: 444 (landlock_create_ruleset)
|
|
493433 Add --modify-fds=[no|high] option
|
|
494246 syscall fsopen not wrapped
|
|
494327 Crash when running Helgrind built with #define TRACE_PTH_FNS 1
|
|
494337 All threaded applications cause still holding lock errors
|
|
495488 Add FreeBSD getrlimitusage syscall wrapper
|
|
495816 s390x: Fix disassembler segfault for C[G]RT and CL[G]RT
|
|
495817 s390x: Disassembly to match objdump -d output
|
|
496370 Illumos: signal handling is broken
|
|
496571 False positive for null key passed to bpf_map_get_next_key syscall.
|
|
496950 s390x: Fix hardware capabilities and EmFail codes
|
|
497130 Recognize new DWARF5 DW_LANG constants
|
|
497455 Update drd/scripts/download-and-build-gcc
|
|
497723 Enabling Ada demangling breaks callgrind differentiation between
|
|
overloaded functions and procedures
|
|
498037 s390x: Add disassembly checker
|
|
498143 False positive on EVIOCGRAB ioctl
|
|
498317 FdBadUse is not a valid CoreError type in a suppression
|
|
even though it's generated by --gen-suppressions=yes
|
|
498421 s390x: support BPP, BPRP and NIAI insns
|
|
498422 s390x: Fix VLRL and VSTRL insns
|
|
498492 none/tests/amd64/lzcnt64 crashes on FreeBSD compiled with clang
|
|
498629 s390x: Fix S[L]HHHR and S[L]HHLR insns
|
|
498632 s390x: Fix LNGFR insn
|
|
498942 s390x: Rework s390_disasm interface
|
|
499183 FreeBSD: differences in avx-vmovq output
|
|
499212 mmap() with MAP_ALIGNED() returns unaligned pointer
|
|
501119 memcheck/tests/pointer-trace fails when run on NFS filesystem
|
|
501194 Fix ML_(check_macho_and_get_rw_loads) so that it is correct for
|
|
any number of segment commands
|
|
501348 glibc built with -march=x86-64-v3 does not work due to ld.so memcmp
|
|
501479 Illumos DRD pthread_mutex_init wrapper errors
|
|
501365 syscall userfaultfd not wrapped
|
|
501846 Add x86 Linux shm wrappers
|
|
501850 FreeBSD syscall arguments 7 and 8 incorrect.
|
|
501893 Missing suppression for __wcscat_avx2 (strcat-strlen-avx2.h.S:68)?
|
|
502126 glibc 2.41 extra syscall_cancel frames
|
|
502288 s390x: Memcheck false positives with NNPA last tensor dimension
|
|
502324 s390x: Memcheck false positives with TMxx and TM/TMY
|
|
502679 Use LTP for testing valgrind
|
|
502871 Make Helgrind "pthread_cond_{signal,broadcast}: dubious: associated
|
|
lock is not held by any thread" optional
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.25.0.RC1: 18 Apr 2025)
|
|
(3.25.0.RC2: 23 Apr 2025)
|
|
|
|
Release 3.24.0 (31 Oct 2024)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
|
|
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
|
|
MIPS64/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 ===================
|
|
|
|
* Bad file descriptor usage now generates a real error with
|
|
--track-fds=yes that is suppressible and shows up in the xml output
|
|
with full execution backtrace. The warnings shown without using the
|
|
option are deprecated and will be removed in a future valgrind
|
|
version.
|
|
|
|
* Ada name demangling is now supported in error messages.
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
* S390X added support for the DFLTCC instruction provided by the
|
|
deflate-conversion facility (z15/arch13).
|
|
|
|
* S390X added support for the instructions provided by the MSA facility
|
|
and MSA extensions 1-9.
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
202770 open fd at exit --log-socket=127.0.0.1:1500 with --track-fds=yes
|
|
276780 An instruction in fftw (Fast Fourier Transform) is unhandled by
|
|
valgrind: vex x86->IR: unhandled instruction bytes:
|
|
0x66 0xF 0x3A 0x2
|
|
311655 --log-file=FILE leads to apparent fd leak
|
|
317127 Fedora18/x86_64 --sanity-level=3 : aspacem segment mismatch
|
|
337388 fcntl works on Valgrind's own file descriptors
|
|
377966 arm64 unhandled instruction dc zva392146 aarch64: unhandled
|
|
instruction 0xD5380001 (MRS rT, midr_el1)
|
|
391148 Unhandled AVX instruction vmovq %xmm9,%xmm1
|
|
392146 aarch64: unhandled instruction 0xD5380001 (MRS rT, midr_el1)
|
|
412377 SIGILL on cache flushes on arm64
|
|
417572 vex amd64->IR: unhandled instruction bytes: 0xC5 0x79 0xD6 0xED 0xC5
|
|
440180 s390x: Failed assertion in disassembler
|
|
444781 MIPS: wrong syscall numbers used
|
|
447989 Support Armv8.2 SHA-512 instructions
|
|
445235 Java/Ada/D demangling is probably broken
|
|
453044 gbserver_tests failures in aarch64
|
|
479661 Valgrind leaks file descriptors
|
|
486180 [Valgrind][MIPS] 'VexGuestArchState' has no member named
|
|
'guest_IP_AT_SYSCALL'
|
|
486293 memccpy false positives
|
|
486569 linux inotify_init syscall wrapper missing POST entry in syscall_table
|
|
487439 SIGILL in JDK11, JDK17
|
|
487993 Alignment error when using Eigen with Valgrind and -m32
|
|
488026 Use of `sizeof` instead of `strlen
|
|
488379 --track-fds=yes errors that cannot be suppressed with --xml-file=
|
|
488441 Add tests for --track-fds=yes --xml=yes and fd suppression tests
|
|
489040 massif trace change to show the location increasing the stack
|
|
489088 Valgrind throws unhandled instruction bytes: 0xC5 0x79 0xD6 0xE0 0xC5
|
|
489338 arm64: Instruction fcvtas should round 322.5 to 323, but result is 322.
|
|
489676 vgdb handle EINTR and EAGAIN more consistently
|
|
490651 Stop using -flto-partition=one
|
|
491394 (vgModuleLocal_addDiCfSI): Assertion 'di->fsm.have_rx_map &&
|
|
di->fsm.rw_map_count' failed
|
|
492210 False positive on x86/amd64 with ZF taken directly from addition
|
|
492214 statx(fd, NULL, AT_EMPTY_PATH) is supported since Linux 6.11
|
|
but not supported in valgrind
|
|
492422 Please support DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD
|
|
492663 Valgrind ignores debug info for some binaries
|
|
493418 Add bad fd usage errors for --track-fds in ML_(fd_allowed)
|
|
493454 Missing FUSE_COMPATIBLE_MAY_BLOCK markers
|
|
493507 direct readlink syscall from PRE handler is incompatible with
|
|
FUSE_COMPATIBLE_MAY_BLOCK
|
|
493959 s390x: Fix regtest failure for none/tests/s390x/op00
|
|
493970 s390x: Store/restore FPC upon helper call causes slowdown
|
|
494218 Remove FREEBSD_VERS from configure and build
|
|
494252 s390x: incorrect disassembly for LOCHI and friends
|
|
494960 Fixes and tweaks for gsl19test
|
|
495278 PowerPC instruction dcbf should allow the L field values of 4, 6 on
|
|
ISA 3.0 and earlier, just ignore the value
|
|
495469 aligned_alloc and posix_memalign missing MALLOC_TRACE with returned
|
|
pointer
|
|
495470 s390x: 3.24.0.RC1 missing file and regtest failure
|
|
n-i-bz Improve messages for sigaltstack errors, use specific
|
|
stack_t member names
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.24.0.RC1: 27 Oct 2024)
|
|
|
|
|
|
Release 3.23.0 (26 Apr 2024)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
|
|
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
|
|
MIPS64/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 ===================
|
|
|
|
* --track-fds=yes will now also warn about double closing of file
|
|
descriptors. Printing the context where the file descriptor was
|
|
originally opened and where it was previously closed.
|
|
|
|
* --track-fds=yes also produces "real" errors now which can be
|
|
suppressed and work with --error-exitcode. When combined with
|
|
--xml the xml-output now also includes FdBadClose and FdNotClosed
|
|
error kinds (see docs/internals/xml-output-protocol5.txt).
|
|
|
|
* The option --show-error-list=no|yes now accepts a new value all.
|
|
This indicates to also print the suppressed errors.
|
|
This is useful to analyse which errors are suppressed by which
|
|
suppression entries.
|
|
The valgrind monitor command 'v.info all_errors' similarly now
|
|
accepts a new optional argument 'also_suppressed' to show
|
|
all errors including the suppressed errors.
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
* Added ARM64 support for FreeBSD.
|
|
|
|
* ARM64 now supports dotprod instructions (sdot/udot).
|
|
|
|
* AMD64 better supports code build with -march=x86-64-v3.
|
|
fused-multiple-add instructions (fma) are now emulated more
|
|
accurately. And memcheck now handles __builtin_strcmp using 128/256
|
|
bit vectors with sse4.1, avx/avx2.
|
|
|
|
* S390X added support for NNPA (neural network processing assist)
|
|
facility vector instructions VCNF, VCLFNH, VCFN, VCLFNL, VCRNF and
|
|
NNPA (z16/arch14).
|
|
|
|
* X86 recognizes new binutils-2.42 nop patterns.
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* The none tool now also supports xml output.
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
|
|
283429 ARM leak checking needs CLEAR_CALLER_SAVED_REGS
|
|
281059 Cannot connect to Oracle using valgrind
|
|
328563 make track-fds support xml output
|
|
362680 --error-exitcode not honored when file descriptor leaks are found
|
|
369723 __builtin_longjmp not supported in clang/llvm on Android arm64 target
|
|
390269 unhandled amd64-darwin syscall: unix:464 (openat_nocancel)
|
|
401284 False positive "Source and destination overlap in strncat"
|
|
428364 Signals inside io_uring_enter not handled
|
|
437790 valgrind reports "Conditional jump or move depends on uninitialised
|
|
value" in memchr of macOS 10.12-10.15
|
|
460616 disInstr(arm64): unhandled instruction 0x4E819402 (dotprod/ASIMDDP)
|
|
463458 memcheck/tests/vcpu_fnfns fails when glibc is built for x86-64-v3
|
|
463463 none/tests/amd64/fma fails when executed on a x86-64-v3 system
|
|
466762 Add redirs for C23 free_sized() and free_aligned_sized()
|
|
466884 Missing writev uninit padding suppression for _XSend
|
|
471036 disInstr_AMD64: disInstr miscalculated next %rip on RORX imm8, m32/64, r32/6
|
|
471222 support tracking of file descriptors being double closed
|
|
474160 If errors-for-leak-kinds is specified, exit-on-first-error should only exit
|
|
on one of the listed errors.
|
|
475498 Add reallocarray wrapper
|
|
476025 Vbit expected test results for Iop_CmpGT64Ux2 are wrong
|
|
476320 Build failure with GCC
|
|
476331 clean up generated/distributed filter scripts
|
|
476535 Difference in allocation size for massif/tests/overloaded-new between
|
|
clang++/libc++ and g++/libstdc++
|
|
476548 valgrind 3.22.0 fails on assertion when loading debuginfo file
|
|
produced by mold
|
|
476708 valgrind-monitor.py regular expressions should use raw strings
|
|
476780 Extend strlcat and strlcpy wrappers to GNU libc
|
|
476787 Build of Valgrind 3.21.0 fails when SOLARIS_PT_SUNDWTRACE_THRP is
|
|
defined
|
|
476887 WARNING: unhandled amd64-freebsd syscall: 578
|
|
477198 Add fchmodat2 syscall on linux
|
|
477628 Add mremap support for Solaris
|
|
477630 Include ucontext.h rather than sys/ucontext.h in Solaris sources
|
|
477719 vgdb incorrectly replies to qRcmd packet
|
|
478211 Redundant code for vgdb.c and Valgrind core tools
|
|
478624 Valgrind incompatibility with binutils-2.42 on x86 with new nop patterns
|
|
(unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26
|
|
478837 valgrind fails to read debug info for rust binaries
|
|
479041 Executables without RW sections do not trigger debuginfo reading
|
|
480052 WARNING: unhandled amd64-freebsd syscall: 580
|
|
480126 Build failure on Raspberry Pi 5 / OS 6.1.0-rpi7-rpi-v8
|
|
480405 valgrind 3.22.0 "m_debuginfo/image.c:586 (set_CEnt):
|
|
Assertion '!sr_isError(sr)' failed."
|
|
480488 Add support for FreeBSD 13.3
|
|
480706 Unhandled syscall 325 (mlock2)
|
|
481127 amd64: Implement VFMADD213 for Iop_MAddF32
|
|
481131 [PATCH] x86 regtest: fix clobber lists in generated asm statements
|
|
481676 Build failure on Raspberry Pi 5 Ubuntu 23.10 with clang
|
|
481874 Add arm64 support for FreeBSD
|
|
483786 Incorrect parameter indexing in FreeBSD clock_nanosleep syscall wrapper
|
|
484002 Add suppression for invalid read in glibc's __wcpncpy_avx2() via wcsxfrm()
|
|
484426 aarch64: 0.5 gets rounded to 0
|
|
484480 False positives when using sem_trywait
|
|
484935 [patch] Valgrind reports false "Conditional jump or move depends on
|
|
uninitialised value" errors for aarch64 signal handlers
|
|
485148 vfmadd213ss instruction is instrumented incorrectly (the remaining
|
|
part of the register is cleared instead of kept unmodified)
|
|
485487 glibc built with -march=x86-64-v3 does not work due to ld.so strcmp
|
|
485778 Crash with --track-fds=all and --gen-suppressions=all
|
|
n-i-bz Add redirect for memccpy
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.23.0.RC1: 19 Apr 2024)
|
|
(3.23.0.RC2: 24 Apr 2024)
|
|
|
|
Release 3.22.0 (31 Oct 2023)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
|
|
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
|
|
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
|
|
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
|
|
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
|
|
AMD64/macOS 10.13 and nanoMIPS/Linux.
|
|
|
|
* ==================== CORE CHANGES ===================
|
|
|
|
* A new configure option --with-gdbscripts-dir lets you install
|
|
the gdb valgrind python monitor scripts in a specific location.
|
|
For example a distro could use it to install the scripts in a
|
|
safe load location --with-gdbscripts-dir=%{_datadir}/gdb/auto-load
|
|
It is also possible to configure --without-gdb-scripts-dir so no
|
|
.debug_gdb_scripts section is added to the vgpreload library and
|
|
no valgrind-monitor python scripts are installed at all.
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
* Support has been added for FreeBSD 14 and FreeBSD 15.
|
|
* Add support for the folllowing FreeBSD system calls:
|
|
close_range, kqueuex, membarrier, timerfd_create,
|
|
timerfd_settime and timerfd_gettime (all added in FreeBSD 15).
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* Memcheck now tests and warns about the values used for
|
|
alignment and size. These apply to various functions: memalign,
|
|
posix_memalign and aligned_alloc in C and various overloads
|
|
of operators new and delete in C++. The kinds of error that can
|
|
be detected are
|
|
- invalid alignment, for instance the alignment is usually required
|
|
to be a power of 2
|
|
- mismatched alignment between aligned allocation and aligned
|
|
deallocation
|
|
- mismatched size when sized delete is used
|
|
- bad size for functions that have implementation defined behaviour
|
|
when the requested size is zero
|
|
|
|
* Cachegrind:
|
|
- You can now profile part of a program's execution using the new
|
|
`CACHEGRIND_START_INSTRUMENTATION` and `CACHEGRIND_STOP_INSTRUMENTATION`
|
|
client requests, along with the new `--instr-at-start` option. The
|
|
behaviour is the same as Callgrind's equivalent functionality.
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
390871 ELF debug info reader confused with multiple .rodata* sections
|
|
417993 vbit-test fail on s390x with Iop_Add32: spurious dependency on uninit
|
|
426751 Valgrind reports "still reachable" memory using musl
|
|
(alpine running inside docker)
|
|
432801 Valgrind 3.16.1 reports a jump based on uninitialized memory somehow
|
|
related to clang and signals
|
|
433857 Add validation to C++17 aligned new/delete alignment size
|
|
433859 Add mismatched detection to C++ 17 aligned new/delete
|
|
460192 Add epoll_pwait2
|
|
461074 DWARF2 CFI reader: unhandled DW_OP_ 0x11 (consts) DW_OP_ 0x92 (bregx)
|
|
465782 s390x: Valgrind doesn't compile with Clang on s390x
|
|
466105 aligned_alloc problems, part 2
|
|
467441 Add mismatched detection to C++ 14 sized delete
|
|
469049 link failure on ppc64 (big endian) valgrind 3.20
|
|
469146 massif --ignore-fn does not ignore inlined functions
|
|
469768 Make it possible to install gdb scripts in a different location
|
|
470121 Can't run callgrind_control with valgrind 3.21.0 because of perl errors
|
|
470132 s390x: Assertion failure on VGM instruction
|
|
470520 Multiple realloc zero errors crash in MC_(eq_Error)
|
|
470713 Failure on the Yosys project: valgrind: m_libcfile.c:1802
|
|
(Bool vgPlain_realpath(const HChar *, HChar *)):
|
|
Assertion 'resolved' failed
|
|
470830 Don't print actions vgdb me ... continue for vgdb --multi mode
|
|
470978 s390x: Valgrind cannot start qemu-kvm when "sysctl vm.allocate_pgste=0"
|
|
471311 gdb --multi mode stdout redirecting to stderr
|
|
471807 Add support for lazy reading and downloading of DWARF debuginfo
|
|
472219 Syscall param ppoll(ufds.events) points to uninitialised byte(s)
|
|
472875 none/tests/s390x/dfp-1 failure
|
|
472963 Broken regular expression in configure.ac
|
|
473604 Fix bug472219.c compile failure with Clang 16
|
|
473677 make check compile failure with Clang 16 based on GCC 13.x
|
|
473745 must-be-redirected function - strlen
|
|
473870 FreeBSD 14 applications fail early at startup
|
|
473944 Handle mold linker split RW PT_LOAD segments correctly
|
|
474332 aligned_alloc under Valgrind returns nullptr when alignment is not a multiple of sizeof(void *)
|
|
475650 DRD does not work with C11 threads
|
|
475652 Missing suppression for __wcsncpy_avx2 (strncpy-avx2.S:308)?
|
|
476108 vg_replace_malloc DELETE checks size
|
|
n-i-bz Allow arguments with spaces in .valgrindrc files
|
|
n-i-bz FreeBSD fixed reading of Valgrind tools own debuginfo
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.22.0.RC1: 17 Oct 2023)
|
|
(3.22.0.RC2: 26 Oct 2023)
|
|
|
|
Release 3.21.0 (28 Apr 2023)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
|
|
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
|
|
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
|
|
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
|
|
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
|
|
AMD64/macOS 10.13 and nanoMIPS/Linux.
|
|
|
|
* ==================== CORE CHANGES ===================
|
|
|
|
* When GDB is used to debug a program running under valgrind using
|
|
the valgrind gdbserver, GDB will automatically load some
|
|
python code provided in valgrind defining GDB front end commands
|
|
corresponding to the valgrind monitor commands.
|
|
These GDB front end commands accept the same format as
|
|
the monitor commands directly sent to the Valgrind gdbserver.
|
|
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.
|
|
For example, instead of having to print the address of a variable
|
|
to pass it to a subsequent monitor command, the GDB front end
|
|
command will evaluate the address argument. It is for example
|
|
possible to do:
|
|
(gdb) memcheck who_points_at &some_struct sizeof(some_struct)
|
|
instead of:
|
|
(gdb) p &some_struct
|
|
$2 = (some_struct_type *) 0x1130a0 <some_struct>
|
|
(gdb) p sizeof(some_struct)
|
|
$3 = 40
|
|
(gdb) monitor who_point_at 0x1130a0 40
|
|
|
|
* 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. So for example to start your program
|
|
in gdb and run it under valgrind you can do:
|
|
$ gdb prog
|
|
(gdb) set remote exec-file prog
|
|
(gdb) set sysroot /
|
|
(gdb) target extended-remote | vgdb --multi
|
|
(gdb) start
|
|
|
|
* The behaviour of realloc with a size of zero can now
|
|
be changed for tools that intercept malloc. Those
|
|
tools are memcheck, helgrind, drd, massif and dhat.
|
|
Realloc implementations generally do one of two things
|
|
- free the memory like free() and return NULL
|
|
(GNU libc and ptmalloc).
|
|
- either free the memory and then allocate a
|
|
minimum sized block or just return the
|
|
original pointer. Return NULL if the
|
|
allocation of the minimum sized block fails
|
|
(jemalloc, musl, snmalloc, Solaris, macOS).
|
|
When Valgrind is configured and built it will
|
|
try to match the OS and libc behaviour. However
|
|
if you are using a non-default library to replace
|
|
malloc and family (e.g., musl on a glibc Linux or
|
|
tcmalloc on FreeBSD) then you can use a command line
|
|
option to change the behaviour of Valgrind:
|
|
--realloc-zero-bytes-frees=yes|no [yes on Linux glibc, no otherwise]
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
* Make the address space limit on FreeBSD amd64 128Gbytes
|
|
(the same as Linux and Solaris, it was 32Gbytes)
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* Memcheck:
|
|
- When doing a delta leak_search, it is now possible to only
|
|
output the new loss records compared to the previous leak search.
|
|
This is available in the memcheck monitor command 'leak_search'
|
|
by specifying the "new" keyword or in your program by using
|
|
the client request VALGRIND_DO_NEW_LEAK_CHECK.
|
|
Whenever a "delta" leak search is done (i.e. when specifying
|
|
"new" or "increased" or "changed" in the monitor command),
|
|
the new loss records have a "new" marker.
|
|
- Valgrind now contains python code that defines GDB memcheck
|
|
front end monitor commands. See CORE CHANGES.
|
|
- Performs checks for the use of realloc with a size of zero.
|
|
This is non-portable and a source of errors. If memcheck
|
|
detects such a usage it will generate an error
|
|
realloc() with size 0
|
|
followed by the usual callstacks.
|
|
A switch has been added to allow this to be turned off:
|
|
--show-realloc-size-zero=yes|no [yes]
|
|
|
|
* Helgrind:
|
|
- The option ---history-backtrace-size=<number> allows to configure
|
|
the number of entries to record in the stack traces of "old"
|
|
accesses. Previously, this number was hardcoded to 8.
|
|
- Valgrind now contains python code that defines GDB helgrind
|
|
front end monitor commands. See CORE CHANGES.
|
|
|
|
* Cachegrind:
|
|
- `--cache-sim=no` is now the default. The cache simulation is old and
|
|
unlikely to match any real modern machine. This means only the `Ir`
|
|
event are gathered by default, but that is by far the most useful
|
|
event.
|
|
- `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` has some functional changes.
|
|
- It's 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.
|
|
There are now "File:function" and "Function:file" sections. These
|
|
are very useful for programs that use inlining a lot.
|
|
- Support for user-annotated files and the `-I`/`--include` option
|
|
has been removed, because it was of little use and blocked other
|
|
improvements.
|
|
- The `--auto` option is renamed `--annotate`, though the old
|
|
`--auto=yes`/`--auto=no` forms are still supported.
|
|
- `cg_diff` and `cg_merge` are now deprecated, because `cg_annotate`
|
|
now does a better job of diffing and merging.
|
|
- The Cachegrind output file format has changed very slightly, but in
|
|
ways nobody is likely to notice.
|
|
|
|
* Callgrind:
|
|
- Valgrind now contains python code that defines GDB callgrind
|
|
front end monitor commands. See CORE CHANGES.
|
|
|
|
* Massif:
|
|
- Valgrind now contains python code that defines GDB massif
|
|
front end monitor commands. See CORE CHANGES.
|
|
|
|
* DHAT:
|
|
- A new kind of user request has been added which allows you to
|
|
override the 1024 byte limit on access count histograms for blocks
|
|
of memory. The client request is DHAT_HISTOGRAM_MEMORY.
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
170510 Don't warn about ioctl of size 0 without direction hint
|
|
241072 List tools in --help output
|
|
327548 false positive while destroying mutex
|
|
382034 Testcases build fixes for musl
|
|
351857 confusing error message about valid command line option
|
|
374596 inconsistent RDTSCP support on x86_64
|
|
392331 Spurious lock not held error from inside pthread_cond_timedwait
|
|
397083 Likely false positive "uninitialised value(s)" for __wmemchr_avx2 and __wmemcmp_avx2_movbe
|
|
400793 pthread_rwlock_timedwrlock false positive
|
|
419054 Unhandled syscall getcpu on arm32
|
|
433873 openat2 syscall unimplemented on Linux
|
|
434057 Add stdio mode to valgrind's gdbserver
|
|
435441 valgrind fails to interpose malloc on musl 1.2.2 due to weak symbol name and no libc soname
|
|
436413 Warn about realloc of size zero
|
|
439685 compiler warning in callgrind/main.c
|
|
444110 priv/guest_ppc_toIR.c:36198:31: warning: duplicated 'if' condition.
|
|
444487 hginfo test detects an extra lock inside data symbol "_rtld_local"
|
|
444488 Use glibc.pthread.stack_cache_size tunable
|
|
444568 drd/tests/pth_barrier_thr_cr fails on Fedora 38
|
|
445743 "The impossible happened: mutex is locked simultaneously by two threads"
|
|
while using mutexes with priority inheritance and signals
|
|
449309 Missing loopback device ioctl(s)
|
|
459476 vgdb: allow address reuse to avoid "address already in use" errorsuse" errors
|
|
460356 s390: Sqrt32Fx4 -- cannot reduce tree
|
|
462830 WARNING: unhandled amd64-freebsd syscall: 474
|
|
463027 broken check for MPX instruction support in assembler
|
|
464103 Enhancement: add a client request to DHAT to mark memory to be histogrammed
|
|
464476 Firefox fails to start under Valgrind
|
|
464609 Valgrind memcheck should support Linux pidfd_open
|
|
464680 Show issues caused by memory policies like selinux deny_execmem
|
|
464859 Build failures with GCC-13 (drd tsan_unittest)
|
|
464969 D language demangling
|
|
465435 m_libcfile.c:66 (vgPlain_safe_fd): Assertion 'newfd >= VG_(fd_hard_limit)' failed.
|
|
466104 aligned_alloc problems, part 1
|
|
467036 Add time cost statistics for Regtest
|
|
467482 Build failure on aarch64 Alpine
|
|
467714 fdleak_* and rlimit tests fail when parent process has more than
|
|
64 descriptors opened
|
|
467839 Gdbserver: Improve compatibility of library directory name
|
|
468401 [PATCH] Add a style file for clang-format
|
|
468556 Build failure for vgdb
|
|
468606 build: remove "Valgrind relies on GCC" check/output
|
|
469097 ppc64(be) doesn't support SCV syscall instruction
|
|
n-i-bz FreeBSD rfork syscall fail with EINVAL or ENOSYS rather than VG_(unimplemented)
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
* ==================== KNOWN ISSUES ===================
|
|
|
|
* configure --enable-lto=yes is know to not work in all setups.
|
|
See bug 469049. Workaround: Build without LTO.
|
|
|
|
(3.21.0.RC1: 14 Apr 2023)
|
|
(3.21.0.RC2: 21 Apr 2023)
|
|
|
|
Release 3.20.0 (24 Oct 2022)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
|
|
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
|
|
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
|
|
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
|
|
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
|
|
AMD64/macOS 10.13 and nanoMIPS/Linux.
|
|
|
|
* ==================== CORE CHANGES ===================
|
|
|
|
* 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=<no|yes> [default: yes] has been added on
|
|
Linux.
|
|
* More DWARF5 support as generated by clang14.
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
131186 writev reports error in (vector[...])
|
|
434764 iconv_open causes ld.so v2.28+ to use optimised strncmp
|
|
446754 Improve error codes from alloc functions under memcheck
|
|
452274 memcheck crashes with Assertion 'sci->status.what == SsIdle' failed
|
|
452779 Valgrind fails to build on FreeBSD 13.0 with llvm-devel (15.0.0)
|
|
453055 shared_timed_mutex drd test fails with "Lock shared failed" message
|
|
453602 Missing command line option to enable/disable debuginfod
|
|
452802 Handle lld 9+ split RW PT_LOAD segments correctly
|
|
454040 s390x: False-positive memcheck:cond in memmem on arch13 systems
|
|
456171 [PATCH] FreeBSD: Don't record address errors when accessing the 'kern.ps_strings' sysctl struct
|
|
n-i-bz Implement vgdb invoker on FreeBSD
|
|
458845 PowerPC: The L field for the dcbf and sync instruction should be
|
|
3 bits in ISA 3.1.
|
|
458915 Remove register cache to fix 458915 gdbserver causes wrong syscall return
|
|
459031 Documentation on --error-exitcode incomplete
|
|
459477 XERROR messages lacks ending '\n' in vgdb
|
|
462007 Implicit int in none/tests/faultstatus.c
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.20.0.RC1: 20 Oct 2022)
|
|
|
|
|
|
Release 3.19.0 (11 Apr 2022)
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
This release supports X86/Linux, AMD64/Linux, ARM32/Linux, ARM64/Linux,
|
|
PPC32/Linux, PPC64BE/Linux, PPC64LE/Linux, S390X/Linux, MIPS32/Linux,
|
|
MIPS64/Linux, ARM/Android, ARM64/Android, MIPS32/Android, X86/Android,
|
|
X86/Solaris, AMD64/Solaris, AMD64/MacOSX 10.12, X86/FreeBSD and
|
|
AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
|
|
AMD64/macOS 10.13 and nanoMIPS/Linux.
|
|
|
|
* ==================== CORE CHANGES ===================
|
|
|
|
* 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
|
|
|
|
* ================== PLATFORM CHANGES =================
|
|
|
|
* arm64:
|
|
- ignore the "v8.x" architecture levels, only look at actual CPU features
|
|
present. Fixes mismatch detected between RDMA and atomics features
|
|
preventing startup on some QEMU configurations.
|
|
- Implement LD{,A}XP and ST{,L}XP
|
|
- Fix incorrect code emitted for doubleword CAS.
|
|
|
|
* s390:
|
|
- Fix sys_ipc semtimedop syscall
|
|
- Fix VFLRX and WFLRX instructions
|
|
- Fix EXRL instruction with negative offset
|
|
|
|
* ppc64:
|
|
- Reimplement the vbpermq instruction support to generate less Iops and
|
|
avoid overflowing internal buffers.
|
|
- Fix checking for scv support to avoid "Facility 'SCV' unavailable (12),
|
|
exception" messages in dmsg.
|
|
- Fix setting condition code for Vector Compare quad word instructions.
|
|
- Fix fix lxsibzx, lxsihzx and lxsihzx instructions so they only load
|
|
their respective sized data.
|
|
- Fix the prefixed stq instruction in PC relative mode.
|
|
|
|
* ==================== TOOL CHANGES ===================
|
|
|
|
* Memcheck:
|
|
- Speed up --track-origins=yes for large (in the range of hundreds to
|
|
thousands of megabytes) mmap/munmaps.
|
|
* DRD/Helgrind:
|
|
- Several fixes for new versions of libstd++ using new posix try_lock
|
|
functions
|
|
|
|
* ==================== FIXED BUGS ====================
|
|
|
|
The following bugs have been fixed or resolved. Note that "n-i-bz"
|
|
stands for "not in bugzilla" -- that is, a bug that was reported to us
|
|
but never got a bugzilla entry. We encourage you to file bugs in
|
|
bugzilla (https://bugs.kde.org/enter_bug.cgi?product=valgrind) rather
|
|
than mailing the developers (or mailing lists) directly -- bugs that
|
|
are not entered into bugzilla tend to get forgotten about or ignored.
|
|
|
|
403802 leak_cpp_interior fails with some reachable blocks different than expected
|
|
435732 memcheck/tests/leak_cpp_interior fails with gcc11
|
|
444242 s390x: Valgrind crashes on EXRL with negative offset
|
|
444399 arm64: unhandled instruction 0xC87F2D89 (LD{,A}XP and ST{,L}XP).
|
|
== 434283
|
|
444481 gdb_server test failures on s390x
|
|
444495 dhat/tests/copy fails on s390x
|
|
444552 memcheck/tests/sem fails on s390x with glibc 2.34
|
|
444571 PPC, fix the lxsibzx and lxsihzx so they only load their respective
|
|
sized data.
|
|
444836 PPC, pstq instruction for R=1 is not storing to the correct address.
|
|
444925 fexecve syscall wrapper not properly implemented
|
|
445032 valgrind/memcheck crash with SIGSEGV when SIGVTALRM timer used and
|
|
libthr.so associated
|
|
445211 Fix out of tree builds
|
|
445300 [PATCH] Fix building tests with Musl
|
|
445011 SIGCHLD is sent when valgrind uses debuginfod-find
|
|
445354 arm64 backend: incorrect code emitted for doubleword CAS
|
|
445415 arm64 front end: alignment checks missing for atomic instructions
|
|
445504 Using C++ condition_variable results in bogus "mutex is locked simultaneously by two threads" warning
|
|
445607 Unhandled amd64-freebsd syscall: 247
|
|
445668 Inline stack frame generation is broken for Rust binaries
|
|
445916 Demangle Rust v0 symbols with .llvm suffix
|
|
446139 DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false positives
|
|
446138 DRD/Helgrind with std::timed_mutex::try_lock_until false positives
|
|
446281 Add a DRD suppression for fwrite
|
|
446103 Memcheck: `--track-origins=yes` causes extreme slowdowns for large mmap/munmap
|
|
446139 DRD/Helgrind with std::shared_timed_mutex::try_lock_until and try_lock_shared_until false
|
|
446251 TARGET_SIGNAL_THR added to enum target_signal
|
|
446823 FreeBSD - missing syscalls when using libzm4
|
|
447991 s390x: Valgrind indicates illegal instruction on wflrx
|
|
447995 Valgrind segfault on power10 due to hwcap checking code
|
|
449483 Powerpc: vcmpgtsq., vcmpgtuq,, vcmpequq. instructions not setting the
|
|
condition code correctly.
|
|
449672 ppc64 --track-origins=yes failures because of bad cmov addHRegUse
|
|
449838 sigsegv liburing the 'impossible' happened for io_uring_setup
|
|
450025 Powerc: ACC file not implemented as a logical overlay of the VSR
|
|
registers.
|
|
450437 Warn for execve syscall with argv or argv[0] being NULL
|
|
450536 Powerpc: valgrind throws 'facility scv unavailable exception'
|
|
451626 Syscall param bpf(attr->raw_tracepoint.name) points to unaddressable byte(s)
|
|
451827 [ppc64le] VEX temporary storage exhausted with several vbpermq instructions
|
|
451843 valgrind fails to start on a FreeBSD system which enforces W^X
|
|
495483 Control building documentation via BUILD_DOCS
|
|
506211 Constant folding improvements
|
|
506453 Unexpected behaviour with IR injection and vex-guest-chase=yes
|
|
509157 riscv64: Shift instructions can behave wrong
|
|
|
|
To see details of a given bug, visit
|
|
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
|
|
where XXXXXX is the bug number as listed above.
|
|
|
|
(3.19.0.RC1: 02 Apr 2022)
|
|
(3.19.0.RC2: 08 Apr 2022)
|