Log message:
valgrind: updated to 3.20.0
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
|
Log message:
valgrind: update to 3.17.0
Release 3.17.0 (19 Mar 2021)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.17.0 fixes a number of bugs and adds some functional changes: support for
GCC 11, Clang 11, DWARF5 debuginfo, the 'debuginfod' debuginfo server, and
some new instructions for Arm64, S390 and POWER. There are also some tool
updates.
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 and AMD64/MacOSX 10.12. There is also preliminary
support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
* ==================== CORE CHANGES ===================
* DWARF version 5 support. Valgrind can now read DWARF version 5 debuginfo as
produced by GCC 11.
* Valgrind now supports debuginfod, an HTTP server for distributing ELF/DWARF
debugging information. When a debuginfo file cannot be found locally,
Valgrind is able to query debuginfod servers for the file using its
build-id. See the user manual for more information about debuginfod support.
* ================== PLATFORM CHANGES =================
* arm64:
- Inaccuracies resulting from double-rounding in the simulation of
floating-point multiply-add/subtract instructions have been fixed. These
should now behave exactly as the hardware does.
- Partial support for the ARM v8.2 instruction set. v8.2 support work is
ongoing. Support for the half-word variants of at least the following
instructions has been added:
FABS <Hd>, <Hn>
FABS <Vd>.<T>, <Vn>.<T>
FNEG <Hd>, <Hn>
FNEG <Vd>.<T>, <Vn>.<T>
FSQRT <Hd>, <Hn>
FSQRT <Vd>.<T>, <Vn>.<T>
FADDP
* s390:
- Implement the new instructions/features that were added to z/Architecture
with the vector-enhancements facility 1. Also cover the instructions from
the vector-packed-decimal facility that are defined outside the chapter
"Vector Decimal Instructions", but not the ones from that chapter \
itself.
For a detailed list of newly supported instructions see the updates to
`docs/internals/s390-opcodes.csv'.
Since the miscellaneous instruction extensions facility 2 was already
added in Valgrind 3.16.0, this completes the support necessary to run
general programs built with `--march=z14' under Valgrind. The
vector-packed-decimal facility is currently not exploited by the standard
toolchain and libraries.
* ppc64:
- Various bug fixes. Fix for the sync field to limit setting just two of
the two bits in the L-field. Fix the write size for the stxsibx and
stxsihx instructions. Fix the modsw and modsd instructions.
- Partial support for ISA 3.1 has been added. Support for the VSX PCV mask
instructions, bfloat16 GER instructions, and bfloat16 to/from float 32-bit
conversion instructions are still missing.
* ==================== TOOL CHANGES ====================
* General tool changes
- All the tools and their vgpreload libraries are now installed under
libexec because they cannot be executed directly and should be run through
the valgrind executable. This should be an internal, not user visible,
change, but might impact valgrind packagers.
- The --track-fds option now respects -q, --quiet and won't output anything
if no file descriptors are leaked. It also won't report the standard stdin
(0), stdout (1) or stderr (2) descriptors as being leaked with
--trace-fds=yes anymore. To track whether the standard file descriptors
are still open at the end of the program run use --trace-fds=all.
* DHAT:
- DHAT has been extended, with two new modes of operation. The new
--mode=copy flag triggers copy profiling, which records calls to memcpy,
strcpy, and similar functions. The new --mode=ad-hoc flag triggers ad hoc
profiling, which records calls to the DHAT_AD_HOC_EVENT client request in
the new dhat/dhat.h file. This is useful for learning more about hot code
paths. See the user manual for more information about the new modes.
- Because of these changes, DHAT's file format has changed. DHAT output
files produced with earlier versions of DHAT will not work with this
version of DHAT's viewer, and DHAT output files produced with this version
of DHAT will not work with earlier versions of DHAT's viewer.
* ==================== 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.
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 below.
140178 open("/proc/self/exe", ...); doesn't quite work
140939 --track-fds reports leakage of stdout/in/err and doesn't respect -q
217695 malloc/calloc/realloc/memalign failure doesn't set errno to ENOMEM
338633 gdbserver_tests/nlcontrolc.vgtest hangs on arm64
345077 linux syscall execveat support (linux 3.19)
361770 Missing F_ADD_SEALS
369029 handle linux syscalls sched_getattr and sched_setattr
384729 __libc_freeres inhibits cross-platform valgrind
388787 Support for C++17 new/delete
391853 Makefile.all.am:L247 and @SOLARIS_UNDEF_LARGESOURCE@ being empty
396656 Warnings while reading debug info
397605 ioctl FICLONE mishandled
401416 Compile failure with openmpi 4.0
408663 Suppression file for musl libc
404076 s390x: z14 vector instructions not implemented
410743 shmat() calls for 32-bit programs fail when running in 64-bit valgrind
(actually affected all x86 and nanomips regardless of host bitness)
413547 regression test does not check for Arm 64 features.
414268 Enable AArch64 feature detection and decoding for v8.x instructions
415293 Incorrect call-graph tracking due to new _dl_runtime_resolve_xsave*
422174 unhandled instruction bytes: 0x48 0xE9 (REX prefixed JMP instruction)
422261 platform selection fails for unqualified client name
422623 epoll_ctl warns for uninitialized padding on non-amd64 64bit arches
423021 PPC: Add missing ISA 3.0 documentation link and HWCAPS test.
423195 PPC ISA 3.1 support is missing, part 1
423361 Adds io_uring support on arm64/aarch64 (and all other arches)
424012 crash with readv/writev having invalid but not NULL arg2 iovec
424298 amd64: Implement RDSEED
425232 PPC ISA 3.1 support is missing, part 2
425820 Failure to recognize vpcmpeqq as a dependency breaking idiom.
426014 arm64: implement fmadd and fmsub as Iop_MAdd/Sub
426123 PPC ISA 3.1 support is missing, part 3
426144 Fix "condition variable has not been initialized" on Fedora 33.
427400 PPC ISA 3.1 support is missing, part 4
427401 PPC ISA 3.1 support is missing, part 5
427404 PPC ISA 3.1 support is missing, part 6
427870 lmw, lswi and related PowerPC insns aren't allowed on ppc64le
427787 Support new faccessat2 linux syscall (439)
427969 debuginfo section duplicates a section in the main ELF file
428035 drd: Unbreak the musl build
428648 s390_emit_load_mem panics due to 20-bit offset for vector load
428716 cppcheck detects potential leak in VEX/useful/smchash.c
428909 helgrind: need to intercept duplicate libc definitions for Fedora 33
429352 PPC ISA 3.1 support is missing, part 7
429354 PPC ISA 3.1 support is missing, part 8
429692 unhandled ppc64le-linux syscall: 147 (getsid)
429864 s390x: C++ atomic test_and_set yields false-positive memcheck
diagnostics
429952 Errors when building regtest with clang
430354 ppc stxsibx and stxsihx instructions write too much data
430429 valgrind.h doesn't compile on s390x with clang
430485 expr_is_guardable doesn't handle Iex_Qop
431556 Complete arm64 FADDP v8.2 instruction support
432102 Add support for DWARF5 as produced by GCC11
432161 Addition of arm64 v8.2 FADDP, FNEG and FSQRT
432381 drd: Process STACK_REGISTER client requests
432552 [AArch64] invalid error emitted for pre-decremented byte/hword addresses
432672 vg_regtest: test-specific environment variables not reset between tests
432809 VEX should support REX.W + POPF
432861 PPC modsw and modsd give incorrect results for 1 mod 12
432870 gdbserver_tests:nlcontrolc hangs with newest glibc2.33 x86-64
432215 Add debuginfod functionality
433323 Use pkglibexecdir as vglibdir
433500 DRD regtest faulures when libstdc++ and libgcc debuginfo are installed
433629 valgrind/README has type "abd" instead of "and"
433641 Rust std::sys::unix::fs::try_statx Syscall param fstatat(file_name)
433898 arm64: Handle sp, lr, fp as DwReg in CfiExpr
434193 GCC 9+ inlined strcmp causes "Conditional jump or move [..] \
value" report
n-i-bz helgrind: If hg_cli__realloc fails, return NULL.
n-i-bz arm64 front end: avoid Memcheck false positives relating to CPUID
|
Log message:
valgrind: update to 3.16.1
Release 3.16.1 (22 June 2020)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.16.1 fixes two critical bugs discovered after 3.16.0 was frozen. It also
fixes character encoding problems in the documentation HTML.
Release 3.16.0 (27 May 2020)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.16.0 is a feature release with many improvements and the usual collection of
bug fixes.
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 and AMD64/MacOSX 10.12. There is also preliminary
support for X86/macOS 10.13, AMD64/macOS 10.13 and nanoMIPS/Linux.
* ==================== CORE CHANGES ===================
* It is now possible to dynamically change the value of many command line
options while your program (or its children) are running under Valgrind.
To see the list of dynamically changeable options, run
"valgrind --help-dyn-options".
You can change the options from the shell by using vgdb to launch
the monitor command "v.clo <clo option>...".
The same monitor command can be used from a gdb connected
to the valgrind gdbserver.
Your program can also change the dynamically changeable options using
the client request VALGRIND_CLO_CHANGE(option).
* ================== PLATFORM CHANGES =================
* MIPS: preliminary support for nanoMIPS instruction set has been added.
* ==================== TOOL CHANGES ====================
* DHAT:
- The implicit memcpy done by each call to realloc now counts towards the
read and write counts of resized heap blocks, making those counts higher
and more accurate.
* Cachegrind:
- cg_annotate's --auto and --show-percs options now default to 'yes', because
they are usually wanted.
* Callgrind:
- callgrind_annotate's --auto and --show-percs options now default to 'yes',
because they are usually wanted.
- The command option --collect-systime has been enhanced to specify
the unit used to record the elapsed time spent during system calls.
The command option now accepts the values no|yes|msec|usec|nsec,
where yes is a synonym of msec. When giving the value nsec, the
system cpu time of system calls is also recorded.
* Memcheck:
- Several memcheck options are now dynamically changeable.
Use valgrind --help-dyn-options to list them.
- The release 3.15 introduced a backward incompatible change for
some suppression entries related to preadv and pwritev syscalls.
When reading a suppression entry using the unsupported 3.14 format,
valgrind will now produce a warning to say the suppression entry will not
work, and suggest the needed change.
- Significantly fewer false positive errors on optimised code generated by
Clang and GCC. In particular, Memcheck now deals better with the
situation where the compiler will transform C-level "A && \
B" into "B && A"
under certain circumstances (in which the transformation is valid).
Handling of integer equality/non-equality checks on partially defined
values is also improved on some architectures.
* exp-sgcheck:
- The exprimental Stack and Global Array Checking tool has been removed.
It only ever worked on x86 and amd64, and even on those it had a
high false positive rate and was slow. An alternative for detecting
stack and global array overruns is using the AddressSanitizer (ASAN)
facility of the GCC and Clang compilers, which require you to rebuild
your code with -fsanitize=address.
* ==================== OTHER CHANGES ====================
* New and modified GDB server monitor features:
- Option -T tells vgdb to output a timestamp in the vgdb information messages.
- The gdbserver monitor commands that require an address and an optional
length argument now accepts the alternate 'C like' syntax \
"address[length]".
For example, the memcheck command "monitor who_points_at 0x12345678 \
120"
can now also be given as "monitor who_points_at 0x12345678[120]".
Release 3.15.0 (12 April 2019)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.15.0 is a feature release with many improvements and the usual collection of
bug fixes.
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 and AMD64/MacOSX 10.12. There is also preliminary
support for X86/macOS 10.13 and AMD64/macOS 10.13.
* ==================== CORE CHANGES ===================
* The XTree Massif output format now makes use of the information obtained
when specifying --read-inline-info=yes.
* amd64 (x86_64): the RDRAND and F16C insn set extensions are now supported.
* ==================== TOOL CHANGES ====================
* DHAT:
- DHAT been thoroughly overhauled, improved, and given a GUI. As a result,
it has been promoted from an experimental tool to a regular tool. Run it
with --tool=dhat instead of --tool=exp-dhat.
- DHAT now prints only minimal data when the program ends, instead writing
the bulk of the profiling data to a file. As a result, the --show-top-n
and --sort-by options have been removed.
- Profile results can be viewed with the new viewer, dh_view.html. When
a run ends, a short message is printed, explaining how to view the result.
- See the documentation for more details.
* Cachegrind:
- cg_annotate has a new option, --show-percs, which prints percentages next
to all event counts.
* Callgrind:
- callgrind_annotate has a new option, --show-percs, which prints percentages
next to all event counts.
- callgrind_annotate now inserts commas in call counts, and
sort the caller/callee lists in the call tree.
* Massif:
- The default value for --read-inline-info is now "yes" on
Linux/Android/Solaris. It is still "no" on other OS.
* Memcheck:
- The option --xtree-leak=yes (to output leak result in xtree format)
automatically activates the option --show-leak-kinds=all, as xtree
visualisation tools such as kcachegrind can in any case select what kind
of leak to visualise.
- There has been further work to avoid false positives. In particular,
integer equality on partially defined inputs (C == and !=) is now handled
better.
* ==================== OTHER CHANGES ====================
* The new option --show-error-list=no|yes displays, at the end of the run, the
list of detected errors and the used suppressions. Prior to this change,
showing this information could only be done by specifying "-v -v", \
but that
also produced a lot of other possibly-non-useful messages. The option -s is
equivalent to --show-error-list=yes.
Release 3.14.0 (9 October 2018)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.14.0 is a feature release with many improvements and the usual collection of
bug fixes.
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 and AMD64/MacOSX 10.12. There is also preliminary
support for X86/macOS 10.13, AMD64/macOS 10.13.
* ==================== CORE CHANGES ===================
* The new option --keep-debuginfo=no|yes (default no) can be used to retain
debug info for unloaded code. This allows saved stack traces (e.g. for
memory leaks) to include file/line info for code that has been dlclose'd (or
similar). See the user manual for more information and known limitations.
* Ability to specify suppressions based on source file name and line number.
* Majorly overhauled register allocator. No end-user changes, but the JIT
generates code a bit more quickly now.
* ================== PLATFORM CHANGES =================
* Preliminary support for macOS 10.13 has been added.
* mips: support for MIPS32/MIPS64 Revision 6 has been added.
* mips: support for MIPS SIMD architecture (MSA) has been added.
* mips: support for MIPS N32 ABI has been added.
* s390: partial support for vector instructions (integer and string) has been
added.
* ==================== TOOL CHANGES ====================
* Helgrind: Addition of a flag
--delta-stacktrace=no|yes [yes on linux amd64/x86]
which specifies how full history stack traces should be computed.
Setting this to =yes can speed up Helgrind by 25% when using
--history-level=full.
* Memcheck: reduced false positive rate for optimised code created by Clang 6
/ LLVM 6 on x86, amd64 and arm64. In particular, Memcheck analyses code
blocks more carefully to determine where it can avoid expensive definedness
checks without loss of precision. This is controlled by the flag
--expensive-definedness-checks=no|auto|yes [auto].
* ==================== OTHER CHANGES ====================
* Valgrind is now buildable with link-time optimisation (LTO). A new
configure option --enable-lto=yes allows building Valgrind with LTO. If the
toolchain supports it, this produces a smaller/faster Valgrind (up to 10%).
Note that if you are doing Valgrind development, --enable-lto=yes massively
slows down the build process.
|