+Release 3.23.0 (?? 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 and
+AMD64/FreeBSD. There is also preliminary support for X86/macOS 10.13,
+AMD64/macOS 10.13 and nanoMIPS/Linux.
+
+* ==================== CORE CHANGES ===================
+
+* ================== PLATFORM CHANGES =================
+
+* ==================== 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.
+
+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: ?? Apr 2024)
+
Release 3.22.0 (31 Oct 2023)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(3.19.0.RC1: 02 Apr 2022)
(3.19.0.RC2: 08 Apr 2022)
-
-
-Release 3.18.0 (15 Oct 2021)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-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 libiberty demangler has been updated, which brings support for
- Rust v0 name demangling. [Update: alas, due to a bug, this support
- isn't working in 3.18.0.]
-
-* __libc_freeres isn't called anymore after the program recieves a
- fatal signal. Causing some internal glibc resources to hang around,
- but preventing any crashes after the program has ended.
-
-* The DWARF reader is now very much faster at startup when just
- --read-inline-info=yes (the default in most cases) is given.
-
-* glibc 2.34, which moved various functions from libpthread.so into
- libc.so, is now supported.
-
-* ================== PLATFORM CHANGES =================
-
-* arm64:
-
- - v8.2 scalar and vector FABD, FACGE, FACGT and FADD.
- - v8.2 FP compare & conditional compare instructions.
- - Zero variants of v8.2 FP compare instructions.
-
-* s390:
-
- - Support the miscellaneous-instruction-extensions facility 3 and
- the vector-enhancements facility 2. This enables programs
- compiled with "-march=arch13" or "-march=z15" to be executed
- under Valgrind.
-
-* ppc64:
-
- - ISA 3.1 support is now complete
- - ISA 3.0 support for the darn instruction added.
- - ISA 3.0 support for the vector system call instruction scv added.
- - ISA 3.0 support for the copy, paste and cpabort instructions added.
-
-* Support for X86/FreeBSD and AMD64/FreeBSD has been added.
-
-* ==================== OTHER CHANGES ====================
-
-* Memcheck on amd64: minor fixes to remove some false positive
- undef-value errors
-
-* ==================== 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.
-
-208531 [PATCH]: FreeBSD support for valgrind
-368960 WARNING: unhandled amd64-linux syscall: 163 (acct)
-407589 [Linux] Add support for C11 aligned_alloc() and GNU reallocarray()
-423963 Error in child thread when CLONE_PIDFD is used
-426148 crash with "impossible happened" when running BPF CO-RE programs
-429375 PPC ISA 3.1 support is missing, part 9
-431157 PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2
-431306 Update demangler to support Rust v0 name mangling
-432387 s390x: z15 instructions support
-433437 FreeBSD support, part 1
-433438 FreeBSD support, part 2
-433439 FreeBSD support, part 3
-433469 FreeBSD support, part 4
-433473 FreeBSD support, part 5
-433477 FreeBSD support, part 6
-433479 FreeBSD support, part 7
-433504 FreeBSD support, part 8
-433506 FreeBSD support, part 9
-433507 FreeBSD support, part 10
-433508 FreeBSD support, part 11
-433510 FreeBSD support, part 12
-433801 PPC ISA 3.1 support is missing, part 10 (ISA 3.1 support complete)
-433863 s390x: memcheck/tests/s390x/{cds,cs,csg} failures
-434296 s390x: False-positive memcheck diagnostics from vector string
- instructions
-434840 PPC64 darn instruction not supported
-435665 PPC ISA 3.0 copy, paste, cpabort instructions are not supported
-435908 valgrind tries to fetch from deubginfod for files which already
- have debug information
-438871 unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2
-439046 valgrind is unusably large when linked with lld
-439090 Implement close_range(2)
-439326 Valgrind 3.17.0 won't compile with Intel 2021 oneAPI compilers
-439590 glibc-2.34 breaks suppressions against obj:*/lib*/libc-2.*so*
-440670 unhandled ppc64le-linux syscall: 252 statfs64 and 253 fstatfs64
-440906 Fix impossible constraint issue in P10 testcase.
-441512 Remove a unneeded / unnecessary prefix check.
-441534 Update the expected output for test_isa_3_1_VRT.
-442061 very slow execution under Fedora 34 (readdwarf3)
-443031 Gcc -many change requires explicit .machine directives
-443033 Add support for the ISA 3.0 mcrxrx instruction
-443034 Sraw, srawi, srad, sradi, mfs
-443178 Powerpc, test jm-mfspr expected output needs to be updated.
-443179 Need new test for the lxvx and stxvx instructions on ISA 2.07 and
- ISA 3.0 systems.
-443180 The subnormal test and the ISA 3.0 test generate compiler warnings
-443314 In the latest GIT version, Valgrind with "--trace-flags" crashes
- at "al" register
-443605 Don't call final_tidyup (__libc_freeres) on FatalSignal
-
-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.
-
-(3.18.0.RC1: 12 Oct 2021)
-(3.18.0: 15 Oct 2021)
-
-
-
-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
-
-(3.17.0.RC1: 13 Mar 2021)
-(3.17.0.RC2: 17 Mar 2021)
-(3.17.0: 19 Mar 2021)
-
-
-
-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.
-
-422677 PPC sync instruction L field should only be 2 bits in ISA 3.0
-422715 32-bit x86: vex: the `impossible' happened: expr_is_guardable: unhandled expr
-
-(3.16.1, 22 June 2020, 36d6727e1d768333a536f274491e5879cab2c2f7)
-
-
-
-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]".
-
-* ==================== 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.
-
-343099 Linux setns syscall wrapper missing, unhandled syscall: 308
- == 368923 WARNING: unhandled arm64-linux syscall: 268 (setns)
- == 369031 WARNING: unhandled amd64-linux syscall: 308 (setns)
-385386 Assertion failed "szB >= CACHE_ENTRY_SIZE" at m_debuginfo/image.c:517
-400162 Patch: Guard against __GLIBC_PREREQ for musl libc
-400593 In Coregrind, use statx for some internal syscalls if [f]stat[64] fail
-400872 Add nanoMIPS support to Valgrind
-403212 drd/tests/trylock hangs on FreeBSD
-404406 s390x: z14 miscellaneous instructions not implemented
-405201 Incorrect size of struct vki_siginfo on 64-bit Linux architectures
-406561 mcinfcallWSRU gdbserver_test fails on ppc64
-406824 Unsupported baseline
-407218 Add support for the copy_file_range syscall
-407307 Intercept stpcpy also in ld.so for arm64
-407376 Update Xen support to 4.12 (4.13, actually) and add more coverage
- == 390553
-407764 drd cond_post_wait gets wrong (?) condition on s390x z13 system
-408009 Expose rdrand and f16c even on avx if host cpu supports them
-408091 Missing pkey syscalls
-408414 Add support for missing for preadv2 and pwritev2 syscalls
-409141 Valgrind hangs when SIGKILLed
-409206 Support for Linux PPS and PTP ioctls
-409367 exit_group() after signal to thread waiting in futex() causes hangs
-409429 amd64: recognize 'cmpeq' variants as a dependency breaking idiom
-409780 References to non-existent configure.in
-410556 Add support for BLKIO{MIN,OPT} and BLKALIGNOFF ioctls
-410599 Non-deterministic behaviour of pth_self_kill_15_other test
-410757 discrepancy for preadv2/pwritev2 syscalls across different versions
-411134 Allow the user to change a set of command line options during execution
-411451 amd64->IR of bt/btc/bts/btr with immediate clears zero flag
-412344 Problem setting mips flags with specific paths
-412408 unhandled arm-linux syscall: 124 - adjtime - on arm-linux
-413119 Ioctl wrapper for DRM_IOCTL_I915_GEM_MMAP
-413330 avx-1 test fails on AMD EPYC 7401P 24-Core Processor
-413603 callgrind_annotate/cg_annotate truncate function names at '#'
-414565 Specific use case bug found in SysRes VG_(do_sys_sigprocmask)
-415136 ARMv8.1 Compare-and-Swap instructions are not supported
-415757 vex x86->IR: 0x66 0xF 0xCE 0x4F (bswapw)
-416239 valgrind crashes when handling clock_adjtime
-416285 Use prlimit64 in VG_(getrlimit) and VG_(setrlimit)
-416286 DRD reports "conflicting load" error on std::mutex::lock()
-416301 s390x: "compare and signal" not supported
-416387 finit_module and bpf syscalls are unhandled on arm64
-416464 Fix false reports for uninitialized memory for PR_CAPBSET_READ/DROP
-416667 gcc10 ppc64le impossible constraint in 'asm' in test_isa.
-416753 new 32bit time syscalls for 2038+
-417075 pwritev(vector[...]) suppression ignored
- 417075 is not fixed, but incompatible supp entries are detected
- and a warning is produced for these.
-417187 [MIPS] Conditional branch problem since 'grail' changes
-417238 Test memcheck/tests/vbit-test fails on mips64 BE
-417266 Make memcheck/tests/linux/sigqueue usable with musl
-417281 s390x: /bin/true segfaults with "grail" enabled
-417427 commit to fix vki_siginfo_t definition created numerous regression
- errors on ppc64
-417452 s390_insn_store_emit: dst->tag for HRcVec128
-417578 Add suppressions for glibc DTV leaks
-417906 clone with CLONE_VFORK and no CLONE_VM fails
-418004 Grail code additions break ppc64.
-418435 s390x: spurious "Conditional jump or move depends on uninitialised [..]"
-418997 s390x: Support Iex_ITE for float and vector types
-419503 s390x: Avoid modifying registers returned from isel functions
-421321 gcc10 arm64 build needs __getauxval for linking with libgcc
-421570 std_mutex fails on Arm v8.1 h/w
-434035 vgdb might crash if valgrind is killed
-n-i-bz Fix minor one time leaks in dhat.
-n-i-bz Add --run-cxx-freeres=no in outer args to avoid inner crashes.
-n-i-bz Add support for the Linux io_uring system calls
-n-i-bz sys_statx: don't complain if both |filename| and |buf| are NULL.
-n-i-bz Fix non-glibc build of test suite with s390x_features
-n-i-bz MinGW, include/valgrind.h: Fix detection of 64-bit mode
-423195 PPC ISA 3.1 support is missing, part 1
-
-(3.16.0.RC1: 18 May 2020, git 6052ee66a0cf5234e8e2a2b49a8760226bc13b92)
-(3.16.0.RC2: 19 May 2020, git 940ec1ca69a09f7fdae3e800b7359f85c13c4b37)
-(3.16.0: 27 May 2020, git bf5e647edb9e96cbd5c57cc944984402eeee296d)
-
-
-
-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.
-
-* ==================== 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.
-
-385411 s390x: z13 vector floating-point instructions not implemented
-397187 z13 vector register support for vgdb gdbserver
-398183 Vex errors with _mm256_shuffle_epi8/vpshufb
-398870 Please add support for instruction vcvtps2ph
-399287 amd64 front end: Illegal Instruction vcmptrueps
-399301 Use inlined frames in Massif XTree output.
-399322 Improve callgrind_annotate output
-399444 VEX/priv/guest_s390_toIR.c:17407: (style) Mismatching assignment [..]
-400164 helgrind test encounters mips x-compiler warnings and assembler error
-400490 s390x: VRs allocated as if separate from FPRs
-400491 s390x: Operand of LOCH treated as unsigned integer
-400975 Compile error: error: '-mips64r2' conflicts with the other architecture
- options, which specify a mips64 processor
-401112 LLVM 5.0 generates comparison against partially initialized data
-401277 More bugs in z13 support
-401454 Add a --show-percs option to cg_annotate and callgrind_annotate.
-401578 drd: crashes sometimes on fork()
-401627 memcheck errors with glibc avx2 optimized wcsncmp
-401822 none/tests/ppc64/jm-vmx fails and produces assembler warnings
-401827 none/tests/ppc64/test_isa_2_06_part3 failure on ppc64le (xvrsqrtesp)
-401828 none/tests/ppc64/test_isa_2_06_part1 failure on ppc64le (fcfids and
- fcfidus)
-402006 mark helper regs defined in final_tidyup before freeres_wrapper call
-402048 WARNING: unhandled ppc64[be|le]-linux syscall: 26 (ptrace)
-402123 invalid assembler opcodes for mips32r2
-402134 assertion fail in mc_translate.c (noteTmpUsesIn) Iex_VECRET on arm64
-402327 Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x13 (DW_OP_drop)
-402341 drd/tests/tsan_thread_wrappers_pthread.h:369: suspicious code ?
-402351 mips64 libvexmultiarch_test fails on s390x
-402369 Overhaul DHAT
-402395 coregrind/vgdb-invoker-solaris.c: 2 * poor error checking
-402480 Do not use %rsp in clobber list
-402481 vbit-test fails on x86 for Iop_CmpEQ64 iselInt64Expr Sar64
-402515 Implement new option --show-error-list=no|yes / -s
-402519 POWER 3.0 addex instruction incorrectly implemented
-402781 Redo the cache used to process indirect branch targets
-403123 vex amd64->IR:0xF3 0x48 0xF 0xAE 0xD3 (wrfsbase)
-403552 s390x: wrong facility bit checked for vector facility
-404054 memcheck powerpc subfe x, x, x initializes x to 0 or -1 based on CA
-404638 Add VG_(replaceIndexXA)
-404843 s390x: backtrace sometimes ends prematurely
-404888 autotools cleanup series
-405079 unhandled ppc64le-linux syscall: 131 (quotactl)
-405182 Valgrind fails to build with Clang
-405205 filter_libc: remove the line holding the futex syscall error entirely
-405356 PPC64, xvcvsxdsp, xvcvuxdsp are supposed to write the 32-bit result to
- the upper and lower 32-bits of the 64-bit result
-405362 PPC64, vmsummbm instruction doesn't handle overflow case correctly
-405363 PPC64, xvcvdpsxws, xvcvdpuxws, do not handle NaN arguments correctly.
-405365 PPC64, function _get_maxmin_fp_NaN() doesn't handle QNaN, SNaN case
- correctly.
-405403 s390x disassembler cannot be used on x86
-405430 Use gcc -Wimplicit-fallthrough=2 by default if available
-405458 MIPS mkFormVEC arguments swapped?
-405716 drd: Fix an integer overflow in the stack margin calculation
-405722 Support arm64 core dump
-405733 PPC64, xvcvdpsp should write 32-bit result to upper and lower 32-bits
- of the 64-bit destination field.
-405734 PPC64, vrlwnm, vrlwmi, vrldrm, vrldmi do not work properly when me < mb
-405782 "VEX temporary storage exhausted" when attempting to debug slic3r-pe
-406198 none/tests/ppc64/test_isa_3_0_other test sporadically including CA
- bit in output.
-406256 PPC64, vector floating point instructions don't handle subnormal
- according to VSCR[NJ] bit setting.
-406352 cachegrind/callgrind fails ann tests because of missing a.c
-406354 dhat is broken on x86 (32bit)
-406355 mcsignopass, mcsigpass, mcbreak fail due to difference in gdb output
-406357 gdbserver_tests fails because of gdb output change
-406360 memcheck/tests/libstdc++.supp needs more supression variants
-406422 none/tests/amd64-linux/map_32bits.vgtest fails too easily
-406465 arm64 insn selector fails on "t0 = <expr>" where <expr> has type Ity_F16
-407340 PPC64, does not support the vlogefp, vexptefp instructions.
-n-i-bz add syswrap for PTRACE_GET|SET_THREAD_AREA on amd64.
-n-i-bz Fix callgrind_annotate non deterministic order for equal total
-n-i-bz callgrind_annotate --threshold=100 does not print all functions.
-n-i-bz callgrind_annotate Use of uninitialized value in numeric gt (>)
-n-i-bz amd64 (x86_64): RDRAND and F16C insn set extensions are supported
-
-(3.15.0.RC1: 8 April 2019, git ce94d674de5b99df173aad4c3ee48fc2a92e5d9c)
-(3.15.0.RC2: 11 April 2019, git 0c8be9bbede189ec580ec270521811766429595f)
-(3.15.0: 14 April 2019, git 270037da8b508954f0f7d703a0bebf5364eec548)
-
-
-
-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.
-
-* ==================== 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.
-
-79362 Debug info is lost for .so files when they are dlclose'd
-208052 strlcpy error when n = 0
-255603 exp-sgcheck Assertion '!already_present' failed
-338252 building valgrind with -flto (link time optimisation) fails
-345763 MIPS N32 ABI support
-368913 WARNING: unhandled arm64-linux syscall: 117 (ptrace)
- == 388664 unhandled arm64-linux syscall: 117 (ptrace)
-372347 Replacement problem of the additional c++14/c++17 new/delete operators
-373069 memcheck/tests/leak_cpp_interior fails with GCC 5.1+
-376257 helgrind history full speed up using a cached stack
-379373 Fix syscall param msg->desc.port.name points to uninitialised byte(s)
- on macOS 10.12
-379748 Fix missing pselect syscall (OS X 10.11)
-379754 Fix missing syscall ulock_wait (OS X 10.12)
-380397 s390x: __GI_strcspn() replacemenet needed
-381162 possible array overrun in VEX register allocator
-381272 ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
-381274 powerpc too chatty even with --sigill-diagnostics=no
-381289 epoll_pwait can have a NULL sigmask
-381553 VEX register allocator v3
-381556 arm64: Handle feature registers access on 4.11 Linux kernel or later
-381769 Use ucontext_t instead of struct ucontext
-381805 arm32 needs ld.so index hardwire for new glibc security fixes
-382256 gz compiler flag test doesn't work for gold
-382407 vg_perf needs "--terse" command line option
-382515 "Assertion 'di->have_dinfo' failed." on wine's dlls/mscoree/tests/[..]
-382563 MIPS MSA ASE support
-382998 xml-socket doesn't work
-383275 massif: m_xarray.c:162 (ensureSpaceXA): Assertion '!xa->arr' failed
-383723 Fix missing kevent_qos syscall (macOS 10.11)
- == 385604 illegal hardware instruction (OpenCV cv::namedWindow)
-384096 Mention AddrCheck at Memcheck's command line option [..]
-384230 vex x86->IR: 0x67 0xE8 0xAB 0x68
- == 384156 vex x86->IR: 0x67 0xE8 0x6B 0x6A
- == 386115 vex x86->IR: 0x67 0xE8 0xD3 0x8B any program
- == 388407 vex x86->IR: 0x67 0xE8 0xAB 0x29
- == 394903 vex x86->IR: 0x67 0xE8 0x1B 0xDA
-384337 performance improvements to VEX register allocator v2 and v3
-384526 reduce number of spill insns generated by VEX register allocator v3
-384584 Callee saved regs listed first for AMD64, X86, and PPC architectures
-384631 Sanitise client args as printed with -v
-384633 Add a simple progress-reporting facility
-384987 VEX regalloc: allocate caller-save registers for short lived vregs
-385055 PPC VEX temporary storage exhausted
-385182 PPC64 is missing support for the DSCR
-385183 PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp
-385207 PPC64, generate_store_FPRF() generates too many Iops
-385208 PPC64, xxperm instruction exhausts temporary memory
-385210 PPC64, vpermr instruction could exhaust temporary memory
-385279 unhandled syscall: mach:43 (mach_generate_activity_id)
- == 395136 valgrind: m_syswrap/syswrap-main.c:438 (Bool eq_Syscall[..]
- == 387045 Valgrind crashing on High Sierra when testing any newly [..]
-385334 PPC64, fix vpermr, xxperm, xxpermr mask value.
-385408 s390x: z13 vector "support" instructions not implemented
-385409 s390x: z13 vector integer instructions not implemented
-385410 s390x: z13 vector string instructions not implemented
-385412 s390x: new non-vector z13 instructions not implemented
-385868 glibc ld.so _dl_runtime_resolve_avx_slow conditional jump warning.
-385912 none/tests/rlimit_nofile fails on newer glibc/kernel.
-385939 Optionally exit on the first error
-386318 valgrind.org/info/tools.html is missing SGCheck
-386425 running valgrind + wine on armv7l gives illegal opcode
-386397 PPC64, valgrind truncates powerpc timebase to 32-bits.
-387410 MIPSr6 support
-387664 Memcheck: make expensive-definedness-checks be the default
-387712 s390x cgijnl reports Conditional jump depends on uninitialised value
-387766 asm shifts cause false positive "Conditional jump or move depends
- on uninitialised value"
-387773 .gnu_debugaltlink paths resolve relative to .debug file, not symlink
-388174 valgrind with Wine quits with "Assertion 'cfsi_fits' failed"
-388786 Support bpf syscall in amd64 Linux
-388862 Add replacements for wmemchr and wcsnlen on Linux
-389065 valgrind meets gcc flag -Wlogical-op
-389373 exp-sgcheck the 'impossible' happened as Ist_LoadG is not instrumented
-390471 suppression by specification of source-file line number
-390723 make xtree dump files world wide readable, similar to log files
-391164 constraint bug in tests/ppc64/test_isa_2_07_part1.c for mtfprwa
-391861 Massif Assertion 'n_ips >= 1 && n_ips <= VG_(clo_backtrace_size)'
-392118 unhandled amd64-linux syscall: 332 (statx)
-392449 callgrind not clearing the number of calls properly
-393017 Add missing support for xsmaxcdp instruction, bug fixes for xsmincdp,
- lxssp, stxssp and stxvl instructions.
-393023 callgrind_control risks using the wrong vgdb
-393062 build-id ELF phdrs read causes "debuginfo reader: ensure_valid failed"
-393099 posix_memalign() invalid write if alignment == 0
-393146 failing assert "is_DebugInfo_active(di)"
-395709 PPC64 is missing support for the xvnegsp instruction
-395682 Accept read-only PT_LOAD segments and .rodata by ld -z separate-code
- == 384727
-396475 valgrind OS-X build: config.h not found (out-of-tree macOS builds)
-395991 arm-linux: wine's unit tests enter a signal delivery loop [..]
-396839 s390x: Trap instructions not implemented
-396887 arch_prctl should return EINVAL on unknown option
- == 397286 crash before launching binary (Unsupported arch_prctl option)
- == 397393 valgrind: the 'impossible' happened: (Archlinux)
- == 397521 valgrind: the 'impossible' happened: Unsupported [..]
-396906 compile tests failure on mips32-linux: broken inline asm in tests on
- mips32-linux
-397012 glibc ld.so uses arch_prctl on i386
-397089 amd64: Incorrect decoding of three-register vmovss/vmovsd opcode 11h
-397354 utimensat should ignore timespec tv_sec if tv_nsec is UTIME_NOW/OMIT
-397424 glibc 2.27 and gdb_server tests
-398028 Assertion `cfsi_fits` failing in simple C program
-398066 s390x: cgijl dep1, 0 reports false unitialised values warning
-
-n-i-bz Fix missing workq_ops operations (macOS)
-n-i-bz fix bug in strspn replacement
-n-i-bz Add support for the Linux BLKFLSBUF ioctl
-n-i-bz Add support for the Linux BLKREPORTZONE and BLKRESETZONE ioctls
-n-i-bz Fix possible stack trashing by semctl syscall wrapping
-n-i-bz Add support for the Linux membarrier() system call
-n-i-bz x86 front end: recognise and handle UD2 correctly
-n-i-bz Signal delivery for x86-linux: ensure that the stack pointer is
- correctly aligned before entering the handler.
-
-(3.14.0.RC1: 30 September 2018, git c2aeea2d28acb0639bcc8cc1e4ab115067db1eae)
-(3.14.0.RC2: 3 October 2018, git 3e214c4858a6fdd5697e767543a0c19e30505582)
-(3.14.0: 9 October 2018, git 353a3587bb0e2757411f9138f5e936728ed6cc4f)
-
-
-
-Release 3.13.0 (15 June 2017)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.13.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.
-
-* ==================== CORE CHANGES ===================
-
-* The translation cache size has been increased to keep up with the demands of
- large applications. The maximum number of sectors has increased from 24 to
- 48. The default number of sectors has increased from 16 to 32 on all
- targets except Android, where the increase is from 6 to 12.
-
-* The amount of memory that Valgrind can use has been increased from 64GB to
- 128GB. In particular this means your application can allocate up to about
- 60GB when running on Memcheck.
-
-* Valgrind's default load address has been changed from 0x3800'0000 to
- 0x5800'0000, so as to make it possible to load larger executables. This
- should make it possible to load executables of size at least 1200MB.
-
-* A massive spaceleak caused by reading compressed debuginfo files has been
- fixed. Valgrind should now be entirely usable with gcc-7.0 "-gz" created
- debuginfo.
-
-* The C++ demangler has been updated.
-
-* Support for demangling Rust symbols has been added.
-
-* A new representation of stack traces, the "XTree", has been added. An XTree
- is a tree of stacktraces with data associated with the stacktraces. This is
- used by various tools (Memcheck, Helgrind, Massif) to report on the heap
- consumption of your program. Reporting is controlled by the new options
- --xtree-memory=none|allocs|full and --xtree-memory-file=<file>.
-
- A report can also be produced on demand using the gdbserver monitor command
- 'xtmemory [<filename>]>'. The XTree can be output in 2 formats: 'callgrind
- format' and 'massif format. The existing visualisers for these formats (e.g.
- callgrind_annotate, KCachegrind, ms_print) can be used to visualise and
- analyse these reports.
-
- Memcheck can also produce XTree leak reports using the Callgrind file
- format. For more details, see the user manual.
-
-* ================== PLATFORM CHANGES =================
-
-* ppc64: support for ISA 3.0B and various fixes for existing 3.0 support
-
-* amd64: fixes for JIT failure problems on long AVX2 code blocks
-
-* amd64 and x86: support for CET prefixes has been added
-
-* arm32: a few missing ARMv8 instructions have been implemented
-
-* arm64, mips64, mips32: an alternative implementation of Load-Linked and
- Store-Conditional instructions has been added. This is to deal with
- processor implementations that implement the LL/SC specifications strictly
- and as a result cause Valgrind to hang in certain situations. The
- alternative implementation is automatically enabled at startup, as required.
- You can use the option --sim-hints=fallback-llsc to force-enable it if you
- want.
-
-* Support for OSX 10.12 has been improved.
-
-* On Linux, clone handling has been improved to honour CLONE_VFORK that
- involves a child stack. Note however that CLONE_VFORK | CLONE_VM is handled
- like CLONE_VFORK (by removing CLONE_VM), so applications that depend on
- CLONE_VM exact semantics will (still) not work.
-
-* The TileGX/Linux port has been removed because it appears to be both unused
- and unsupported.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
- - Memcheck should give fewer false positives when running optimised
- Clang/LLVM generated code.
-
- - Support for --xtree-memory and 'xtmemory [<filename>]>'.
-
- - New command line options --xtree-leak=no|yes and --xtree-leak-file=<file>
- to produce the end of execution leak report in a xtree callgrind format
- file.
-
- - New option 'xtleak' in the memcheck leak_check monitor command, to produce
- the leak report in an xtree file.
-
-* Massif:
-
- - Support for --xtree-memory and 'xtmemory [<filename>]>'.
-
- - For some workloads (typically, for big applications), Massif memory
- consumption and CPU consumption has decreased significantly.
-
-* Helgrind:
-
- - Support for --xtree-memory and 'xtmemory [<filename>]>'.
-
- - addition of client request VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, useful
- for Ada gnat compiled applications.
-
-* ==================== OTHER CHANGES ====================
-
-* For Valgrind developers: in an outer/inner setup, the outer Valgrind will
- append the inner guest stacktrace to the inner host stacktrace. This helps
- to investigate the errors reported by the outer, when they are caused by the
- inner guest program (such as an inner regtest). See README_DEVELOPERS for
- more info.
-
-* To allow fast detection of callgrind files by desktop environments and file
- managers, the format was extended to have an optional first line that
- uniquely identifies the format ("# callgrind format"). Callgrind creates
- this line now, as does the new xtree functionality.
-
-* File name template arguments (such as --log-file, --xtree-memory-file, ...)
- have a new %n format letter that is replaced by a sequence number.
-
-* "--version -v" now shows the SVN revision numbers from which Valgrind was
- built.
-
-* ==================== 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.
-
-162848 --log-file output isn't split when a program forks
-340777 Illegal instruction on mips (ar71xx)
-341481 MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms
-342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones
- to a different stack.
-344139 x86 stack-seg overrides, needed by the Wine people
-344524 store conditional of guest applications always fail - observed on
- Octeon3(MIPS)
-348616 Wine/valgrind: noted but unhandled ioctl 0x5390 [..] (DVD_READ_STRUCT)
-352395 Please provide SVN revision info in --version -v
-352767 Wine/valgrind: noted but unhandled ioctl 0x5307 [..] (CDROMSTOP)
-356374 Assertion 'DRD_(g_threadinfo)[tid].pt_threadid !=
- INVALID_POSIX_THREADID' failed
-358213 helgrind/drd bar_bad testcase hangs or crashes with new glibc pthread
- barrier implementation
-358697 valgrind.h: Some code remains even when defining NVALGRIND
-359202 Add musl libc configure/compile
-360415 amd64 instructions ADCX and ADOX are not implemented in VEX
- == 372828 (vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10)
-360429 unhandled ioctl 0x530d with no size/direction hints (CDROMREADMODE1)
-362223 assertion failed when .valgrindrc is a directory instead of a file
-367543 bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags
-367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
-368507 can't malloc chunks larger than about 34GB
-368529 Android arm target link error, missing atexit and pthread_atfork
-368863 WARNING: unhandled arm64-linux syscall: 100 (get_robust_list)
-368865 WARNING: unhandled arm64-linux syscall: 272 (kcmp)
-368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
-368917 WARNING: unhandled arm64-linux syscall: 218 (request_key)
-368918 WARNING: unhandled arm64-linux syscall: 127 (sched_rr_get_interval)
-368922 WARNING: unhandled arm64-linux syscall: 161 (sethostname)
-368924 WARNING: unhandled arm64-linux syscall: 84 (sync_file_range)
-368925 WARNING: unhandled arm64-linux syscall: 130 (tkill)
-368926 WARNING: unhandled arm64-linux syscall: 97 (unshare)
-369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
-370028 Reduce the number of compiler warnings on MIPS platforms
-370635 arm64 missing syscall getcpu
-371225 Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64
-371227 Clean AArch64 syscall table
-371412 Rename wrap_sys_shmat to sys_shmat like other wrappers
-371471 Valgrind complains about non legit memory leaks on placement new (C++)
-371491 handleAddrOverrides() is [incorrect] when ASO prefix is used
-371503 disInstr(arm64): unhandled instruction 0xF89F0000
-371869 support '%' in symbol Z-encoding
-371916 execution tree xtree concept
-372120 c++ demangler demangles symbols which are not c++
-372185 Support of valgrind on ARMv8 with 32 bit executable
-372188 vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10)
-372195 Power PC, xxsel instruction is not always recognized.
-372504 Hanging on exit_group
-372600 process loops forever when fatal signals are arriving quickly
-372794 LibVEX (arm32 front end): 'Assertion szBlg2 <= 3' failed
-373046 Stacks registered by core are never deregistered
-373069 memcheck/tests/leak_cpp_interior fails with GCC 5.1+
-373086 Implement additional Xen hypercalls
-373192 Calling posix_spawn in glibc 2.24 completely broken
-373488 Support for fanotify API on ARM64 architecture
- == 368864 WARNING: unhandled arm64-linux syscall: 262 (fanotify_init)
-373555 Rename BBPTR to GSPTR as it denotes guest state pointer only
-373938 const IRExpr arguments for matchIRExpr()
-374719 some spelling fixes
-374963 increase valgrind's load address to prevent mmap failure
-375514 valgrind_get_tls_addr() does not work in case of static TLS
-375772 +1 error in get_elf_symbol_info() when computing value of 'hi' address
- for ML_(find_rx_mapping)()
-375806 Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24
-375839 Temporary storage exhausted, with long sequence of vfmadd231ps insns
- == 377159 "vex: the `impossible' happened" still present
- == 375150 Assertion 'tres.status == VexTransOK' failed
- == 378068 valgrind crashes on AVX2 function in FFmpeg
-376142 Segfaults on MIPS Cavium Octeon boards
-376279 disInstr(arm64): unhandled instruction 0xD50320FF
-376455 Solaris: unhandled syscall lgrpsys(180)
-376518 Solaris: unhandled fast trap getlgrp(6)
-376611 ppc64 and arm64 don't know about prlimit64 syscall
-376729 PPC64, remove R2 from the clobber list
- == 371668
-376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses
- to be wrongly marked as addressable
-377066 Some Valgrind unit tests fail to compile on Ubuntu 16.10 with
- PIE enabled by default
-377376 memcheck/tests/linux/getregset fails with glibc2.24
-377427 PPC64, lxv instruction failing on odd destination register
-377478 PPC64: ISA 3.0 setup fixes
-377698 Missing memory check for futex() uaddr arg for FUTEX_WAKE
- and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET,
- and 2 args for FUTEX_TRYLOCK_PI
-377717 Fix massive space leak when reading compressed debuginfo sections
-377891 Update Xen 4.6 domctl wrappers
-377930 fcntl syscall wrapper is missing flock structure check
-378524 libvexmultiarch_test regression on s390x and ppc64
-378535 Valgrind reports INTERNAL ERROR in execve syscall wrapper
-378673 Update libiberty demangler
-378931 Add ISA 3.0B additional isnstructions, add OV32, CA32 setting support
-379039 syscall wrapper for prctl(PR_SET_NAME) must not check more than 16 bytes
-379094 Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper
-379371 UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603]
- (task_register_dyld_image_infos)
-379372 UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603]
- (task_register_dyld_shared_cache_image_info)
-379390 unhandled syscall: mach:70 (host_create_mach_voucher_trap)
-379473 MIPS: add support for rdhwr cycle counter register
-379504 remove TileGX/Linux port
-379525 Support more x86 nop opcodes
-379838 disAMode(x86): not an addr!
-379703 PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions
-379890 arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4)
-379895 clock_gettime does not execute POST syscall wrapper
-379925 PPC64, mtffs does not set the FPCC and C bits in the FPSCR correctly
-379966 WARNING: unhandled amd64-linux syscall: 313 (finit_module)
-380200 xtree generated callgrind files refer to files without directory name
-380202 Assertion failure for cache line size (cls == 64) on aarch64.
-380397 s390x: __GI_strcspn() replacement needed
-n-i-bz Fix pub_tool_basics.h build issue with g++ 4.4.7.
-
-(3.13.0.RC1: 2 June 2017, vex r3386, valgrind r16434)
-(3.13.0.RC2: 9 June 2017, vex r3389, valgrind r16443)
-(3.13.0: 14 June 2017, vex r3396, valgrind r16446)
-
-
-
-Release 3.12.0 (20 October 2016)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.12.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, X86/MacOSX
-10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
-X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
-
-* ================== PLATFORM CHANGES =================
-
-* POWER: Support for ISA 3.0 has been added
-
-* mips: support for O32 FPXX ABI has been added.
-* mips: improved recognition of different processors
-* mips: determination of page size now done at run time
-
-* amd64: Partial support for AMD FMA4 instructions.
-
-* arm, arm64: Support for v8 crypto and CRC instructions.
-
-* Improvements and robustification of the Solaris port.
-
-* Preliminary support for MacOS 10.12 (Sierra) has been added.
-
-Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we
-would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64)
-where possible. Valgrind's support for 32-bit x86 has stagnated in
-recent years and has fallen far behind that for 64-bit x86
-instructions. By contrast 64-bit x86 is well supported, up to and
-including AVX2.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
- - Added meta mempool support for describing a custom allocator which:
- - Auto-frees all chunks assuming that destroying a pool destroys all
- objects in the pool
- - Uses itself to allocate other memory blocks
-
- - New flag --ignore-range-below-sp to ignore memory accesses below
- the stack pointer, if you really have to. The related flag
- --workaround-gcc296-bugs=yes is now deprecated. Use
- --ignore-range-below-sp=1024-1 as a replacement.
-
-* DRD:
-
- - Improved thread startup time significantly on non-Linux platforms.
-
-* DHAT
-
- - Added collection of the metric "tot-blocks-allocd"
-
-* ==================== OTHER CHANGES ====================
-
-* Replacement/wrapping of malloc/new related functions is now done not just
- for system libraries by default, but for any globally defined malloc/new
- related function (both in shared libraries and statically linked alternative
- malloc implementations). The dynamic (runtime) linker is excluded, though.
- To only intercept malloc/new related functions in
- system libraries use --soname-synonyms=somalloc=nouserintercepts (where
- "nouserintercepts" can be any non-existing library name).
- This new functionality is not implemented for MacOS X.
-
-* The maximum number of callers in a suppression entry is now equal to
- the maximum size for --num-callers (500).
- Note that --gen-suppressions=yes|all similarly generates suppressions
- containing up to --num-callers frames.
-
-* New and modified GDB server monitor features:
-
- - Valgrind's gdbserver now accepts the command 'catch syscall'.
- Note that you must have GDB >= 7.11 to use 'catch syscall' with
- gdbserver.
-
-* New option --run-cxx-freeres=<yes|no> can be used to change whether
- __gnu_cxx::__freeres() cleanup function is called or not. Default is
- 'yes'.
-
-* Valgrind is able to read compressed debuginfo sections in two formats:
- - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib)
- - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu)
-
-* Modest JIT-cost improvements: the cost of instrumenting code blocks
- for the most common use case (x86_64-linux, Memcheck) has been
- reduced by 10%-15%.
-
-* Improved performance for programs that do a lot of discarding of
- instruction address ranges of 8KB or less.
-
-* The C++ symbol demangler has been updated.
-
-* More robustness against invalid syscall parameters on Linux.
-
-* ==================== 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.
-
-191069 Exiting due to signal not reported in XML output
-199468 Suppressions: stack size limited to 25
- while --num-callers allows more frames
-212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
-278744 cvtps2pd with redundant RexW
-303877 valgrind doesn't support compressed debuginfo sections.
-345307 Warning about "still reachable" memory when using libstdc++ from gcc 5
-348345 Assertion fails for negative lineno
-348924 MIPS: Load doubles through memory so the code compiles with the FPXX ABI
-351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1
-351692 Dumps created by valgrind are not readable by gdb (mips32 specific)
-351804 Crash on generating suppressions for "printf" call on OS X 10.10
-352197 mips: mmap2() not wrapped correctly for page size > 4096
-353083 arm64 doesn't implement various xattr system calls
-353084 arm64 doesn't support sigpending system call
-353137 www: update info for Supported Platforms
-353138 www: update "The Valgrind Developers" page
-353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
- == 365325
- == 357873
-353384 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62)
-353398 WARNING: unhandled amd64-solaris syscall: 207
-353660 XML in auxwhat tag not escaping reserved symbols properly
-353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN
-353727 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72)
-353802 ELF debug info reader confused with multiple .rodata sections
-353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed
-353917 unhandled amd64-solaris syscall fchdir(120)
-353920 unhandled amd64-solaris syscall: 170
-354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3)
-354392 unhandled amd64-solaris syscall: 171
-354797 Vbit test does not include Iops for Power 8 instruction support
-354883 tst->os_state.pthread - magic_delta assertion failure on OSX 10.11
- == 361351
- == 362920
- == 366222
-354933 Fix documentation of --kernel-variant=android-no-hw-tls option
-355188 valgrind should intercept all malloc related global functions
-355454 do not intercept malloc related symbols from the runtime linker
-355455 stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained
-356044 Dwarf line info reader misinterprets is_stmt register
-356112 mips: replace addi with addiu
-356393 valgrind (vex) crashes because isZeroU happened
- == 363497
- == 364497
-356676 arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min)
-356678 arm64-linux: unhandled syscall 232 (mincore)
-356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND
-356823 Unsupported ARM instruction: stlex
-357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state
-357338 Unhandled instruction for SHA instructions libcrypto Boring SSL
-357673 crash if I try to run valgrind with a binary link with libcurl
-357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+
-357871 pthread_spin_destroy not properly wrapped
-357887 Calls to VG_(fclose) do not close the file descriptor
-357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
-358030 support direct socket calls on x86 32bit (new in linux 4.3)
-358478 drd/tests/std_thread.cpp doesn't build with GCC6
-359133 Assertion 'eltSzB <= ddpa->poolSzB' failed
-359181 Buffer Overflow during Demangling
-359201 futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET
-359289 s390x: popcnt (B9E1) not implemented
-359472 The Power PC vsubuqm instruction doesn't always give the correct result
-359503 Add missing syscalls for aarch64 (arm64)
-359645 "You need libc6-dbg" help message could be more helpful
-359703 s390: wire up separate socketcalls system calls
-359724 getsockname might crash - deref_UInt should call safe_to_deref
-359733 amd64 implement ld.so strchr/index override like x86
-359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5
-359829 Power PC test suite none/tests/ppc64/test_isa_2_07.c uses
- uninitialized data
-359838 arm64: Unhandled instruction 0xD5033F5F (clrex)
-359871 Incorrect mask handling in ppoll
-359952 Unrecognised PCMPESTRM variants (0x70, 0x19)
-360008 Contents of Power vr registers contents is not printed correctly when
- the --vgdb-shadow-registers=yes option is used
-360035 POWER PC instruction bcdadd and bcdsubtract generate result with
- non-zero shadow bits
-360378 arm64: Unhandled instruction 0x5E280844 (sha1h s4, s2)
-360425 arm64 unsupported instruction ldpsw
- == 364435
-360519 none/tests/arm64/memory.vgtest might fail with newer gcc
-360571 Error about the Android Runtime reading below the stack pointer on ARM
-360574 Wrong parameter type for an ashmem ioctl() call on Android and ARM64
-360749 kludge for multiple .rodata sections on Solaris no longer needed
-360752 raise the number of reserved fds in m_main.c from 10 to 12
-361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5
-361226 s390x: risbgn (EC59) not implemented
-361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create'
-361354 ppc64[le]: wire up separate socketcalls system calls
-361615 Inconsistent termination for multithreaded process terminated by signal
-361926 Unhandled Solaris syscall: sysfs(84)
-362009 V dumps core on unimplemented functionality before threads are created
-362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
-362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64)
-362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed
-362953 Request for an update to the Valgrind Developers page
-363680 add renameat2() support
-363705 arm64 missing syscall name_to_handle_at and open_by_handle_at
-363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at
-363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5
-364058 clarify in manual limitations of array overruns detections
-364413 pselect sycallwrapper mishandles NULL sigmask
-364728 Power PC, missing support for several HW registers in
- get_otrack_shadow_offset_wrk()
-364948 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5
-365273 Invalid write to stack location reported after signal handler runs
-365912 ppc64BE segfault during jm-insns test (RELRO)
-366079 FPXX Support for MIPS32 Valgrind
-366138 Fix configure errors out when using Xcode 8 (clang 8.0.0)
-366344 Multiple unhandled instruction for Aarch64
- (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060)
-367995 Integration of memcheck with custom memory allocator
-368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer
-368412 False positive result for altivec capability check
-368416 Add tc06_two_races_xml.exp output for ppc64
-368419 Perf Events ioctls not implemented
-368461 mmapunmap test fails on ppc64
-368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
-369000 AMD64 fma4 instructions unsupported.
-369169 ppc64 fails jm_int_isa_2_07 test
-369175 jm_vec_isa_2_07 test crashes on ppc64
-369209 valgrind loops and eats up all memory if cwd doesn't exist.
-369356 pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr
-369359 msghdr_foreachfield can crash when handling bad iovec
-369360 Bad sigprocmask old or new sets can crash valgrind
-369361 vmsplice syscall wrapper crashes on bad iovec
-369362 Bad sigaction arguments crash valgrind
-369383 x86 sys_modify_ldt wrapper crashes on bad ptr
-369402 Bad set/get_thread_area pointer crashes valgrind
-369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers
-369446 valgrind crashes on unknown fcntl command
-369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER
-369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter)
-370265 ISA 3.0 HW cap stuff needs updating
-371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work
-372195 Power PC, xxsel instruction is not always recognized
-
-n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
-n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap
-n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments
-n-i-bz Fix ppoll_alarm exclusion on OS X
-n-i-bz Document brk segment limitation, reference manual in limit reached msg.
-n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
-n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
-n-i-bz amd64: memcheck false positive with shr %edx
-n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]"
-n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion
-n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
-n-i-bz DHAT: added collection of the metric "tot-blocks-allocd"
-
-(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094)
-(3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096)
-(3.12.0: 21 October 2016, vex r3282, valgrind r16098)
-
-
-
-Release 3.11.0 (22 September 2015)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.11.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, X86/MacOSX
-10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
-X86/MacOSX 10.11, AMD64/MacOSX 10.11 and TILEGX/Linux.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for Solaris/x86 and Solaris/amd64 has been added.
-
-* Preliminary support for Mac OS X 10.11 (El Capitan) has been added.
-
-* Preliminary support for the Tilera TileGX architecture has been added.
-
-* s390x: It is now required for the host to have the "long displacement"
- facility. The oldest supported machine model is z990.
-
-* x86: on an SSE2 only host, Valgrind in 32 bit mode now claims to be a
- Pentium 4. 3.10.1 wrongly claimed to be a Core 2, which is SSSE3.
-
-* The JIT's register allocator is significantly faster, making the JIT
- as a whole somewhat faster, so JIT-intensive activities, for example
- program startup, are modestly faster, around 5%.
-
-* There have been changes to the default settings of several command
- line flags, as detailed below.
-
-* Intel AVX2 support is more complete (64 bit targets only). On AVX2
- capable hosts, the simulated CPUID will now indicate AVX2 support.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
- - The default value for --leak-check-heuristics has been changed from
- "none" to "all". This helps to reduce the number of possibly
- lost blocks, in particular for C++ applications.
-
- - The default value for --keep-stacktraces has been changed from
- "malloc-then-free" to "malloc-and-free". This has a small cost in
- memory (one word per malloc-ed block) but allows Memcheck to show the
- 3 stacktraces of a dangling reference: where the block was allocated,
- where it was freed, and where it is acccessed after being freed.
-
- - The default value for --partial-loads-ok has been changed from "no" to
- "yes", so as to avoid false positive errors resulting from some kinds
- of vectorised loops.
-
- - A new monitor command 'xb <addr> <len>' shows the validity bits of
- <len> bytes at <addr>. The monitor command 'xb' is easier to use
- than get_vbits when you need to associate byte data value with
- their corresponding validity bits.
-
- - The 'block_list' monitor command has been enhanced:
- o it can print a range of loss records
- o it now accepts an optional argument 'limited <max_blocks>'
- to control the number of blocks printed.
- o if a block has been found using a heuristic, then
- 'block_list' now shows the heuristic after the block size.
- o the loss records/blocks to print can be limited to the blocks
- found via specified heuristics.
-
- - The C helper functions used to instrument loads on
- x86-{linux,solaris} and arm-linux (both 32-bit only) have been
- replaced by handwritten assembly sequences. This gives speedups
- in the region of 0% to 7% for those targets only.
-
- - A new command line option, --expensive-definedness-checks=yes|no,
- has been added. This is useful for avoiding occasional invalid
- uninitialised-value errors in optimised code. Watch out for
- runtime degradation, as this can be up to 25%. As always, though,
- the slowdown is highly application specific. The default setting
- is "no".
-
-* Massif:
-
- - A new monitor command 'all_snapshots <filename>' dumps all
- snapshots taken so far.
-
-* Helgrind:
-
- - Significant memory reduction and moderate speedups for
- --history-level=full for applications accessing a lot of memory
- with many different stacktraces.
-
- - The default value for --conflict-cache-size=N has been doubled to
- 2000000. Users that were not using the default value should
- preferably also double the value they give.
-
- The default was changed due to the changes in the "full history"
- implementation. Doubling the value gives on average a slightly more
- complete history and uses similar memory (or significantly less memory
- in the worst case) than the previous implementation.
-
- - The Helgrind monitor command 'info locks' now accepts an optional
- argument 'lock_addr', which shows information about the lock at the
- given address only.
-
- - When using --history-level=full, the new Helgrind monitor command
- 'accesshistory <addr> [<len>]' will show the recorded accesses for
- <len> (or 1) bytes at <addr>.
-
-* ==================== OTHER CHANGES ====================
-
-* The default value for the --smc-check option has been changed from
- "stack" to "all-non-file" on targets that provide automatic D-I
- cache coherence (x86, amd64 and s390x). The result is to provide,
- by default, transparent support for JIT generated and self-modifying
- code on all targets.
-
-* Mac OS X only: the default value for the --dsymutil option has been
- changed from "no" to "yes", since any serious usage on Mac OS X
- always required it to be "yes".
-
-* The command line options --db-attach and --db-command have been removed.
- They were deprecated in 3.10.0.
-
-* When a process dies due to a signal, Valgrind now shows the signal
- and the stacktrace at default verbosity (i.e. verbosity 1).
-
-* The address description logic used by Memcheck and Helgrind now
- describes addresses in anonymous segments, file mmap-ed segments,
- shared memory segments and the brk data segment.
-
-* The new option --error-markers=<begin>,<end> can be used to mark the
- begin/end of errors in textual output mode, to facilitate
- searching/extracting errors in output files that mix valgrind errors
- with program output.
-
-* The new option --max-threads=<number> can be used to change the number
- of threads valgrind can handle. The default is 500 threads which
- should be more than enough for most applications.
-
-* The new option --valgrind-stacksize=<number> can be used to change the
- size of the private thread stacks used by Valgrind. This is useful
- for reducing memory use or increasing the stack size if Valgrind
- segfaults due to stack overflow.
-
-* The new option --avg-transtab-entry-size=<number> can be used to specify
- the expected instrumented block size, either to reduce memory use or
- to avoid excessive retranslation.
-
-* Valgrind can be built with Intel's ICC compiler, version 14.0 or later.
-
-* New and modified GDB server monitor features:
-
- - When a signal is reported in GDB, you can now use the GDB convenience
- variable $_siginfo to examine detailed signal information.
-
- - Valgrind's gdbserver now allows the user to change the signal
- to deliver to the process. So, use 'signal SIGNAL' to continue execution
- with SIGNAL instead of the signal reported to GDB. Use 'signal 0' to
- continue without passing the signal to the process.
-
- - With GDB >= 7.10, the command 'target remote'
- will automatically load the executable file of the process running
- under Valgrind. This means you do not need to specify the executable
- file yourself, GDB will discover it itself. See GDB documentation about
- 'qXfer:exec-file:read' packet for more info.
-
-* ==================== 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.
-
-116002 VG_(printf): Problems with justification of strings and integers
-155125 avoid cutting away file:lineno after long function name
-197259 Unsupported arch_prtctl PR_SET_GS option
-201152 ppc64: Assertion in ppc32g_dirtyhelper_MFSPR_268_269
-201216 Fix Valgrind does not support pthread_sigmask() on OS X
-201435 Fix Darwin: -v does not show kernel version
-208217 "Warning: noted but unhandled ioctl 0x2000747b" on Mac OS X
-211256 Fixed an outdated comment regarding the default platform.
-211529 Incomplete call stacks for code compiled by newer versions of MSVC
-211926 Avoid compilation warnings in valgrind.h with -pedantic
-212291 Fix unhandled syscall: unix:132 (mkfifo) on OS X
- == 263119
-226609 Crediting upstream authors in man page
-231257 Valgrind omits path when executing script from shebang line
-254164 OS X task_info: UNKNOWN task message [id 3405, to mach_task_self() [..]
-294065 Improve the pdb file reader by avoiding hardwired absolute pathnames
-269360 s390x: Fix addressing mode selection for compare-and-swap
-302630 Memcheck: Assertion failed: 'sizeof(UWord) == sizeof(UInt)'
- == 326797
-312989 ioctl handling needs to do POST handling on generic ioctls and [..]
-319274 Fix unhandled syscall: unix:410 (sigsuspend_nocancel) on OS X
-324181 mmap does not handle MAP_32BIT (handle it now, rather than fail it)
-327745 Fix valgrind 3.9.0 build fails on Mac OS X 10.6.8
-330147 libmpiwrap PMPI_Get_count returns undefined value
-333051 mmap of huge pages fails due to incorrect alignment
- == 339163
-334802 valgrind does not always explain why a given option is bad
-335618 mov.w rN, pc/sp (ARM32)
-335785 amd64->IR 0xC4 0xE2 0x75 0x2F (vmaskmovpd)
- == 307399
- == 343175
- == 342740
- == 346912
-335907 segfault when running wine's ddrawex/tests/surface.c under valgrind
-338602 AVX2 bit in CPUID missing
-338606 Strange message for scripts with invalid interpreter
-338731 ppc: Fix testuite build for toolchains not supporting -maltivec
-338995 shmat with hugepages (SHM_HUGETLB) fails with EINVAL
-339045 Getting valgrind to compile and run on OS X Yosemite (10.10)
- == 340252
-339156 gdbsrv not called for fatal signal
-339215 Valgrind 3.10.0 contain 2013 in copyrights notice
-339288 support Cavium Octeon MIPS specific BBIT*32 instructions
-339636 Use fxsave64 and fxrstor64 mnemonics instead of old-school rex64 prefix
-339442 Fix testsuite build failure on OS X 10.9
-339542 Enable compilation with Intel's ICC compiler
-339563 The DVB demux DMX_STOP ioctl doesn't have a wrapper
-339688 Mac-specific ASM does not support .version directive (cpuid,
- tronical and pushfpopf tests)
-339745 Valgrind crash when check Marmalade app (partial fix)
-339755 Fix known deliberate memory leak in setenv() on Mac OS X 10.9
-339778 Linux/TileGx platform support for Valgrind
-339780 Fix known uninitialised read in pthread_rwlock_init() on Mac OS X 10.9
-339789 Fix none/tests/execve test on Mac OS X 10.9
-339808 Fix none/tests/rlimit64_nofile test on Mac OS X 10.9
-339820 vex amd64->IR: 0x66 0xF 0x3A 0x63 0xA 0x42 0x74 0x9 (pcmpistri $0x42)
-340115 Fix none/tests/cmdline[1|2] tests on systems which define TMPDIR
-340392 Allow user to select more accurate definedness checking in memcheck
- to avoid invalid complaints on optimised code
-340430 Fix some grammatical weirdness in the manual.
-341238 Recognize GCC5/DWARFv5 DW_LANG constants (Go, C11, C++11, C++14)
-341419 Signal handler ucontext_t not filled out correctly on OS X
-341539 VG_(describe_addr) should not describe address as belonging to client
- segment if it is past the heap end
-341613 Enable building of manythreads and thread-exits tests on Mac OS X
-341615 Fix none/tests/darwin/access_extended test on Mac OS X
-341698 Valgrind's AESKEYGENASSIST gives wrong result in words 0 and 2 [..]
-341789 aarch64: shmat fails with valgrind on ARMv8
-341997 MIPS64: Cavium OCTEON insns - immediate operand handled incorrectly
-342008 valgrind.h needs type cast [..] for clang/llvm in 64-bit mode
-342038 Unhandled syscalls on aarch64 (mbind/get/set_mempolicy)
-342063 wrong format specifier for test mcblocklistsearch in gdbserver_tests
-342117 Hang when loading PDB file for MSVC compiled Firefox under Wine
-342221 socket connect false positive uninit memory for unknown af family
-342353 Allow dumping full massif output while valgrind is still running
-342571 Valgrind chokes on AVX compare intrinsic with _CMP_GE_QS
- == 346476
- == 348387
- == 350593
-342603 Add I2C_SMBUS ioctl support
-342635 OS X 10.10 (Yosemite) - missing system calls and fcntl code
-342683 Mark memory past the initial brk limit as unaddressable
-342783 arm: unhandled instruction 0xEEFE1ACA = "vcvt.s32.f32 s3, s3, #12"
-342795 Internal glibc __GI_mempcpy call should be intercepted
-342841 s390x: Support instructions fiebr(a) and fidbr(a)
-343012 Unhandled syscall 319 (memfd_create)
-343069 Patch updating v4l2 API support
-343173 helgrind crash during stack unwind
-343219 fix GET_STARTREGS for arm
-343303 Fix known deliberate memory leak in setenv() on Mac OS X 10.10
-343306 OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
-343332 Unhandled instruction 0x9E310021 (fcvtmu) on aarch64
-343335 unhandled instruction 0x1E638400 (fccmp) aarch64
-343523 OS X mach_ports_register: UNKNOWN task message [id 3403, to [..]
-343525 OS X host_get_special_port: UNKNOWN host message [id 412, to [..]
-343597 ppc64le: incorrect use of offseof macro
-343649 OS X host_create_mach_voucher: UNKNOWN host message [id 222, to [..]
-343663 OS X 10.10 Memchecj always reports a leak regardless of [..]
-343732 Unhandled syscall 144 (setgid) on aarch64
-343733 Unhandled syscall 187 (msgctl and related) on aarch64
-343802 s390x: False positive "conditional jump or move depends on [..]
-343902 --vgdb=yes doesn't break when --xml=yes is used
-343967 Don't warn about setuid/setgid/setcap executable for directories
-343978 Recognize DWARF5/GCC5 DW_LANG_Fortran 2003 and 2008 constants
-344007 accept4 syscall unhandled on arm64 (242) and ppc64 (344)
-344033 Helgrind on ARM32 loses track of mutex state in pthread_cond_wait
-344054 www - update info for Solaris/illumos
-344416 'make regtest' does not work cleanly on OS X
-344235 Remove duplicate include of pub_core_aspacemgr.h
-344279 syscall sendmmsg on arm64 (269) and ppc32/64 (349) unhandled
-344295 syscall recvmmsg on arm64 (243) and ppc32/64 (343) unhandled
-344307 2 unhandled syscalls on aarch64/arm64: umount2(39), mount (40)
-344314 callgrind_annotate ... warnings about commands containing newlines
-344318 socketcall should wrap recvmmsg and sendmmsg
-344337 Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap)
-344416 Fix 'make regtest' does not work cleanly on OS X
-344499 Fix compilation for Linux kernel >= 4.0.0
-344512 OS X: unhandled syscall: unix:348 (__pthread_chdir),
- unix:349 (__pthread_fchdir)
-344559 Garbage collection of unused segment names in address space manager
-344560 Fix stack traces missing penultimate frame on OS X
-344621 Fix memcheck/tests/err_disable4 test on OS X
-344686 Fix suppression for pthread_rwlock_init on OS X 10.10
-344702 Fix missing libobjc suppressions on OS X 10.10
- == 344543
-344936 Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
-344939 Fix memcheck/tests/xml1 on OS X 10.10
-345016 helgrind/tests/locked_vs_unlocked2 is failing sometimes
-345079 Fix build problems in VEX/useful/test_main.c
-345126 Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT
-345177 arm64: prfm (reg) not implemented
-345215 Performance improvements for the register allocator
-345248 add support for Solaris OS in valgrind
-345338 TIOCGSERIAL and TIOCSSERIAL ioctl support on Linux
-345394 Fix memcheck/tests/strchr on OS X
-345637 Fix memcheck/tests/sendmsg on OS X
-345695 Add POWERPC support for AT_DCACHESIZE and HWCAP2
-345824 Fix aspacem segment mismatch: seen with none/tests/bigcode
-345887 Fix an assertion in the address space manager
-345928 amd64: callstack only contains current function for small stacks
-345984 disInstr(arm): unhandled instruction: 0xEE193F1E
-345987 MIPS64: Implement cavium LHX instruction
-346031 MIPS: Implement support for the CvmCount register (rhwr %0, 31)
-346185 Fix typo saving altivec register v24
-346267 Compiler warnings for PPC64 code on call to LibVEX_GuestPPC64_get_XER()
- and LibVEX_GuestPPC64_get_CR()
-346270 Regression tests none/tests/jm_vec/isa_2_07 and
- none/tests/test_isa_2_07_part2 have failures on PPC64 little endian
-346307 fuse filesystem syscall deadlocks
-346324 PPC64 missing support for lbarx, lharx, stbcx and sthcx instructions
-346411 MIPS: SysRes::_valEx handling is incorrect
-346416 Add support for LL_IOC_PATH2FID and LL_IOC_GETPARENT Lustre ioctls
-346474 PPC64 Power 8, spr TEXASRU register not supported
-346487 Compiler generates "note" about a future ABI change for PPC64
-346562 MIPS64: lwl/lwr instructions are performing 64bit loads
- and causing spurious "invalid read of size 8" warnings
-346801 Fix link error on OS X: _vgModuleLocal_sf_maybe_extend_stack
-347151 Fix suppression for pthread_rwlock_init on OS X 10.8
-347233 Fix memcheck/tests/strchr on OS X 10.10 (Haswell)
-347322 Power PC regression test cleanup
-347379 valgrind --leak-check=full leak errors from system libs on OS X 10.8
- == 217236
-347389 unhandled syscall: 373 (Linux ARM syncfs)
-347686 Patch set to cleanup PPC64 regtests
-347978 Remove bash dependencies where not needed
-347982 OS X: undefined symbols for architecture x86_64: "_global" [..]
-347988 Memcheck: the 'impossible' happened: unexpected size for Addr (OSX/wine)
- == 345929
-348102 Patch updating v4l2 API support
-348247 amd64 front end: jno jumps wrongly when overflow is not set
-348269 Improve mmap MAP_HUGETLB support.
-348334 (ppc) valgrind does not simulate dcbfl - then my program terminates
-348345 Assertion fails for negative lineno
-348377 Unsupported ARM instruction: yield
-348565 Fix detection of command line option availability for clang
-348574 vex amd64->IR pcmpistri SSE4.2 unsupported (pcmpistri $0x18)
-348728 Fix broken check for VIDIOC_G_ENC_INDEX
-348748 Fix redundant condition
-348890 Fix clang warning about unsupported --param inline-unit-growth=900
-348949 Bogus "ERROR: --ignore-ranges: suspiciously large range"
-349034 Add Lustre ioctls LL_IOC_GROUP_LOCK and LL_IOC_GROUP_UNLOCK
-349086 Fix UNKNOWN task message [id 3406, to mach_task_self(), [..]
-349087 Fix UNKNOWN task message [id 3410, to mach_task_self(), [..]
-349626 Implemented additional Xen hypercalls
-349769 Clang/osx: ld: warning: -read_only_relocs cannot be used with x86_64
-349790 Clean up of the hardware capability checking utilities.
-349828 memcpy intercepts memmove causing src/dst overlap error (ppc64 ld.so)
-349874 Fix typos in source code
-349879 memcheck: add handwritten assembly for helperc_LOADV*
-349941 di_notify_mmap might create wrong start/size DebugInfoMapping
-350062 vex x86->IR: 0x66 0xF 0x3A 0xB (ROUNDSD) on OS X
-350202 Add limited param to 'monitor block_list'
-350290 s390x: Support instructions fixbr(a)
-350359 memcheck/tests/x86/fxsave hangs indefinetely on OS X
-350809 Fix none/tests/async-sigs for Solaris
-350811 Remove reference to --db-attach which has been removed.
-350813 Memcheck/x86: enable handwritten assembly helpers for x86/Solaris too
-350854 hard-to-understand code in VG_(load_ELF)()
-351140 arm64 syscalls setuid (146) and setresgid (149) not implemented
-351386 Solaris: Cannot run ld.so.1 under Valgrind
-351474 Fix VG_(iseqsigset) as obvious
-351531 Typo in /include/vki/vki-xen-physdev.h header guard
-351756 Intercept platform_memchr$VARIANT$Haswell on OS X
-351858 ldsoexec support on Solaris
-351873 Newer gcc doesn't allow __builtin_tabortdc[i] in ppc32 mode
-352130 helgrind reports false races for printfs using mempcpy on FILE* state
-352284 s390: Conditional jump depends on uninitialised value(s) in vfprintf
-352320 arm64 crash on none/tests/nestedfs
-352765 Vbit test fails on Power 6
-352768 The mbar instruction is missing from the Power PC support
-352769 Power PC program priority register (PPR) is not supported
-n-i-bz Provide implementations of certain compiler builtins to support
- compilers that may not provide those
-n-i-bz Old STABS code is still being compiled, but never used. Remove it.
-n-i-bz Fix compilation on distros with glibc < 2.5
-n-i-bz (vex 3098) Avoid generation of Neon insns on non-Neon hosts
-n-i-bz Enable rt_sigpending syscall on ppc64 linux.
-n-i-bz mremap did not work properly on shared memory
-n-i-bz Fix incorrect sizeof expression in syswrap-xen.c reported by Coverity
-n-i-bz In VALGRIND_PRINTF write out thread name, if any, to xml
-
-(3.11.0.TEST1: 8 September 2015, vex r3187, valgrind r15646)
-(3.11.0.TEST2: 21 September 2015, vex r3193, valgrind r15667)
-(3.11.0: 22 September 2015, vex r3195, valgrind r15674)
-
-
-
-Release 3.10.1 (25 November 2014)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.10.1 is a bug fix release. It fixes various bugs reported in 3.10.0
-and backports fixes for all reported missing AArch64 ARMv8 instructions
-and syscalls from the trunk. If you package or deliver 3.10.0 for others
-to use, you might want to consider upgrading to 3.10.1 instead.
-
-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.
-
-335440 arm64: ld1 (single structure) is not implemented
-335713 arm64: unhanded instruction: prfm (immediate)
-339020 ppc64: memcheck/tests/ppc64/power_ISA2_05 failing in nightly build
-339182 ppc64: AvSplat ought to load destination vector register with [..]
-339336 PPC64 store quad instruction (stq) is not supposed to change [..]
-339433 ppc64 lxvw4x instruction uses four 32-byte loads
-339645 Use correct tag names in sys_getdents/64 wrappers
-339706 Fix false positive for ioctl(TIOCSIG) on linux
-339721 assertion 'check_sibling == sibling' failed in readdwarf3.c ...
-339853 arm64 times syscall unknown
-339855 arm64 unhandled getsid/setsid syscalls
-339858 arm64 dmb sy not implemented
-339926 Unhandled instruction 0x1E674001 (frintx) on aarm64
-339927 Unhandled instruction 0x9E7100C6 (fcvtmu) on aarch64
-339938 disInstr(arm64): unhandled instruction 0x4F8010A4 (fmla)
- == 339950
-339940 arm64: unhandled syscall: 83 (sys_fdatasync) + patch
-340033 arm64: unhandled insn dmb ishld and some other isb-dmb-dsb variants
-340028 unhandled syscalls for arm64 (msync, pread64, setreuid and setregid)
-340036 arm64: Unhandled instruction ld4 (multiple structures, no offset)
-340236 arm64: unhandled syscalls: mknodat, fchdir, chroot, fchownat
-340509 arm64: unhandled instruction fcvtas
-340630 arm64: fchmod (52) and fchown (55) syscalls not recognized
-340632 arm64: unhandled instruction fcvtas
-340722 Resolve "UNKNOWN attrlist flags 0:0x10000000"
-340725 AVX2: Incorrect decoding of vpbroadcast{b,w} reg,reg forms
-340788 warning: unhandled syscall: 318 (getrandom)
-340807 disInstr(arm): unhandled instruction: 0xEE989B20
-340856 disInstr(arm64): unhandled instruction 0x1E634C45 (fcsel)
-340922 arm64: unhandled getgroups/setgroups syscalls
-350251 Fix typo in VEX utility program (test_main.c).
-350407 arm64: unhandled instruction ucvtf (vector, integer)
-350809 none/tests/async-sigs breaks when run under cron on Solaris
-350811 update README.solaris after r15445
-350813 Use handwritten memcheck assembly helpers on x86/Solaris [..]
-350854 strange code in VG_(load_ELF)()
-351140 arm64 syscalls setuid (146) and setresgid (149) not implemented
-n-i-bz DRD and Helgrind: Handle Imbe_CancelReservation (clrex on ARM)
-n-i-bz Add missing ]] to terminate CDATA.
-n-i-bz Glibc versions prior to 2.5 do not define PTRACE_GETSIGINFO
-n-i-bz Enable sys_fadvise64_64 on arm32.
-n-i-bz Add test cases for all remaining AArch64 SIMD, FP and memory insns.
-n-i-bz Add test cases for all known arm64 load/store instructions.
-n-i-bz PRE(sys_openat): when checking whether ARG1 == VKI_AT_FDCWD [..]
-n-i-bz Add detection of old ppc32 magic instructions from bug 278808.
-n-i-bz exp-dhat: Implement missing function "dh_malloc_usable_size".
-n-i-bz arm64: Implement "fcvtpu w, s".
-n-i-bz arm64: implement ADDP and various others
-n-i-bz arm64: Implement {S,U}CVTF (scalar, fixedpt).
-n-i-bz arm64: enable FCVT{A,N}S X,S.
-
-(3.10.1: 25 November 2014, vex r3026, valgrind r14785)
-
-
-
-Release 3.10.0 (10 September 2014)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-3.10.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, MIPS32/Android, X86/Android, X86/MacOSX 10.9
-and AMD64/MacOSX 10.9. Support for MacOSX 10.8 and 10.9 is
-significantly improved relative to the 3.9.0 release.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for the 64-bit ARM Architecture (AArch64 ARMv8). This port
- is mostly complete, and is usable, but some SIMD instructions are as
- yet unsupported.
-
-* Support for little-endian variant of the 64-bit POWER architecture.
-
-* Support for Android on MIPS32.
-
-* Support for 64bit FPU on MIPS32 platforms.
-
-* Both 32- and 64-bit executables are supported on MacOSX 10.8 and 10.9.
-
-* Configuration for and running on Android targets has changed.
- See README.android in the source tree for details.
-
-* ================== DEPRECATED FEATURES =================
-
-* --db-attach is now deprecated and will be removed in the next
- valgrind feature release. The built-in GDB server capabilities are
- superior and should be used instead. Learn more here:
- http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
- - Client code can now selectively disable and re-enable reporting of
- invalid address errors in specific ranges using the new client
- requests VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and
- VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.
-
- - Leak checker: there is a new leak check heuristic called
- "length64". This is used to detect interior pointers pointing 8
- bytes inside a block, on the assumption that the first 8 bytes
- holds the value "block size - 8". This is used by
- sqlite3MemMalloc, for example.
-
- - Checking of system call parameters: if a syscall parameter
- (e.g. bind struct sockaddr, sendmsg struct msghdr, ...) has
- several fields not initialised, an error is now reported for each
- field. Previously, an error was reported only for the first
- uninitialised field.
-
- - Mismatched alloc/free checking: a new flag
- --show-mismatched-frees=no|yes [yes] makes it possible to turn off
- such checks if necessary.
-
-* Helgrind:
-
- - Improvements to error messages:
-
- o Race condition error message involving heap allocated blocks also
- show the thread number that allocated the raced-on block.
-
- o All locks referenced by an error message are now announced.
- Previously, some error messages only showed the lock addresses.
-
- o The message indicating where a lock was first observed now also
- describes the address/location of the lock.
-
- - Helgrind now understands the Ada task termination rules and
- creates a happens-before relationship between a terminated task
- and its master. This avoids some false positives and avoids a big
- memory leak when a lot of Ada tasks are created and terminated.
- The interceptions are only activated with forthcoming releases of
- gnatpro >= 7.3.0w-20140611 and gcc >= 5.0.
-
- - A new GDB server monitor command "info locks" giving the list of
- locks, their location, and their status.
-
-* Callgrind:
-
- - callgrind_control now supports the --vgdb-prefix argument,
- which is needed if valgrind was started with this same argument.
-
-* ==================== OTHER CHANGES ====================
-
-* Unwinding through inlined function calls. Stack unwinding can now
- make use of Dwarf3 inlined-unwind information if it is available.
- The practical effect is that inlined calls become visible in stack
- traces. The suppression matching machinery has been adjusted
- accordingly. This is controlled by the new option
- --read-inline-info=yes|no. Currently this is enabled by default
- only on Linux and Android targets and only for the tools Memcheck,
- Helgrind and DRD.
-
-* Valgrind can now read EXIDX unwind information on 32-bit ARM
- targets. If an object contains both CFI and EXIDX unwind
- information, Valgrind will prefer the CFI over the EXIDX. This
- facilitates unwinding through system libraries on arm-android
- targets.
-
-* Address description logic has been improved and is now common
- between Memcheck and Helgrind, resulting in better address
- descriptions for some kinds of error messages.
-
-* Error messages about dubious arguments (eg, to malloc or calloc) are
- output like other errors. This means that they can be suppressed
- and they have a stack trace.
-
-* The C++ demangler has been updated for better C++11 support.
-
-* New and modified GDB server monitor features:
-
- - Thread local variables/storage (__thread) can now be displayed.
-
- - The GDB server monitor command "v.info location <address>"
- displays information about an address. The information produced
- depends on the tool and on the options given to valgrind.
- Possibly, the following are described: global variables, local
- (stack) variables, allocated or freed blocks, ...
-
- - The option "--vgdb-stop-at=event1,event2,..." allows the user to
- ask the GDB server to stop at the start of program execution, at
- the end of the program execution and on Valgrind internal errors.
-
- - A new monitor command "v.info stats" shows various Valgrind core
- and tool statistics.
-
- - A new monitor command "v.set hostvisibility" allows the GDB server
- to provide access to Valgrind internal host status/memory.
-
-* A new option "--aspace-minaddr=<address>" can in some situations
- allow the use of more memory by decreasing the address above which
- Valgrind maps memory. It can also be used to solve address
- conflicts with system libraries by increasing the default value.
- See user manual for details.
-
-* The amount of memory used by Valgrind to store debug info (unwind
- info, line number information and symbol data) has been
- significantly reduced, even though Valgrind now reads more
- information in order to support unwinding of inlined function calls.
-
-* Dwarf3 handling with --read-var-info=yes has been improved:
-
- - Ada and C struct containing VLAs no longer cause a "bad DIE" error
-
- - Code compiled with
- -ffunction-sections -fdata-sections -Wl,--gc-sections
- no longer causes assertion failures.
-
-* Improved checking for the --sim-hints= and --kernel-variant=
- options. Unknown strings are now detected and reported to the user
- as a usage error.
-
-* The semantics of stack start/end boundaries in the valgrind.h
- VALGRIND_STACK_REGISTER client request has been clarified and
- documented. The convention is that start and end are respectively
- the lowest and highest addressable bytes of the stack.
-
-* ==================== 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.
-
-175819 Support for ipv6 socket reporting with --track-fds
-232510 make distcheck fails
-249435 Analyzing wine programs with callgrind triggers a crash
-278972 support for inlined function calls in stacktraces and suppression
- == 199144
-291310 FXSAVE instruction marks memory as undefined on amd64
-303536 ioctl for SIOCETHTOOL (ethtool(8)) isn't wrapped
-308729 vex x86->IR: unhandled instruction bytes 0xf 0x5 (syscall)
-315199 vgcore file for threaded app does not show which thread crashed
-315952 tun/tap ioctls are not supported
-323178 Unhandled instruction: PLDW register (ARM)
-323179 Unhandled instruction: PLDW immediate (ARM)
-324050 Helgrind: SEGV because of unaligned stack when using movdqa
-325110 Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
-325124 [MIPSEL] Compilation error
-325477 Phase 4 support for IBM Power ISA 2.07
-325538 cavium octeon mips64, valgrind reported "dumping core" [...]
-325628 Phase 5 support for IBM Power ISA 2.07
-325714 Empty vgcore but RLIMIT_CORE is big enough (too big)
-325751 Missing the two privileged Power PC Transactional Memory Instructions
-325816 Phase 6 support for IBM Power ISA 2.07
-325856 Make SGCheck fail gracefully on unsupported platforms
-326026 Iop names for count leading zeros/sign bits incorrectly imply [..]
-326436 DRD: False positive in libstdc++ std::list::push_back
-326444 Cavium MIPS Octeon Specific Load Indexed Instructions
-326462 Refactor vgdb to isolate invoker stuff into separate module
-326469 amd64->IR: 0x66 0xF 0x3A 0x63 0xC1 0xE (pcmpistri 0x0E)
-326623 DRD: false positive conflict report in a field assignment
-326724 Valgrind does not compile on OSX 1.9 Mavericks
-326816 Intercept for __strncpy_sse2_unaligned missing?
-326921 coregrind fails to compile m_trampoline.S with MIPS/Linux port of V
-326983 Clear direction flag after tests on amd64.
-327212 Do not prepend the current directory to absolute path names.
-327223 Support for Cavium MIPS Octeon Atomic and Count Instructions
-327238 Callgrind Assertion 'passed <= last_bb->cjmp_count' failed
-327284 s390x: Fix translation of the risbg instruction
-327639 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x34
-327837 dwz compressed alternate .debug_info and .debug_str not read correctly
-327916 DW_TAG_typedef may have no name
-327943 s390x: add a redirection for the 'index' function
-328100 XABORT not implemented
-328205 Implement additional Xen hypercalls
-328454 add support Backtraces with ARM unwind tables (EXIDX)
-328455 s390x: SIGILL after emitting wrong register pair for ldxbr
-328711 valgrind.1 manpage "memcheck options" section is badly generated
-328878 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x14
-329612 Incorrect handling of AT_BASE for image execution
-329694 clang warns about using uninitialized variable
-329956 valgrind crashes when lmw/stmw instructions are used on ppc64
-330228 mmap must align to VKI_SHMLBA on mips32
-330257 LLVM does not support `-mno-dynamic-no-pic` option
-330319 amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)
-330459 --track-fds=yes doesn't track eventfds
-330469 Add clock_adjtime syscall support
-330594 Missing sysalls on PowerPC / uClibc
-330622 Add test to regression suite for POWER instruction: dcbzl
-330939 Support for AMD's syscall instruction on x86
- == 308729
-330941 Typo in PRE(poll) syscall wrapper
-331057 unhandled instruction: 0xEEE01B20 (vfma.f64) (has patch)
-331254 Fix expected output for memcheck/tests/dw4
-331255 Fix race condition in test none/tests/coolo_sigaction
-331257 Fix type of jump buffer in test none/tests/faultstatus
-331305 configure uses bash specific syntax
-331337 s390x WARNING: unhandled syscall: 326 (dup3)
-331380 Syscall param timer_create(evp) points to uninitialised byte(s)
-331476 Patch to handle ioctl 0x5422 on Linux (x86 and amd64)
-331829 Unexpected ioctl opcode sign extension
-331830 ppc64: WARNING: unhandled syscall: 96/97
-331839 drd/tests/sem_open specifies invalid semaphore name
-331847 outcome of drd/tests/thread_name is nondeterministic
-332037 Valgrind cannot handle Thumb "add pc, reg"
-332055 drd asserts on platforms with VG_STACK_REDZONE_SZB == 0 and
- consistency checks enabled
-332263 intercepts for pthread_rwlock_timedrdlock and
- pthread_rwlock_timedwrlock are incorrect
-332265 drd could do with post-rwlock_init and pre-rwlock_destroy
- client requests
-332276 Implement additional Xen hypercalls
-332658 ldrd.w r1, r2, [PC, #imm] does not adjust for 32bit alignment
-332765 Fix ms_print to create temporary files in a proper directory
-333072 drd: Add semaphore annotations
-333145 Tests for missaligned PC+#imm access for arm
-333228 AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
-333230 AAarch64 missing instruction encodings: dc, ic, dsb.
-333248 WARNING: unhandled syscall: unix:443
-333428 ldr.w pc [rD, #imm] instruction leads to assertion
-333501 cachegrind: assertion: Cache set count is not a power of two.
- == 336577
- == 292281
-333666 Recognize MPX instructions and bnd prefix.
-333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
-333817 Valgrind reports the memory areas written to by the SG_IO
- ioctl as untouched
-334049 lzcnt fails silently (x86_32)
-334384 Valgrind does not have support Little Endian support for
- IBM POWER PPC 64
-334585 recvmmsg unhandled (+patch) (arm)
-334705 sendmsg and recvmsg should guard against bogus msghdr fields.
-334727 Build fails with -Werror=format-security
-334788 clarify doc about --log-file initial program directory
-334834 PPC64 Little Endian support, patch 2
-334836 PPC64 Little Endian support, patch 3 testcase fixes
-334936 patch to fix false positives on alsa SNDRV_CTL_* ioctls
-335034 Unhandled ioctl: HCIGETDEVLIST
-335155 vgdb, fix error print statement.
-335262 arm64: movi 8bit version is not supported
-335263 arm64: dmb instruction is not implemented
-335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind
-335496 arm64: sbc/abc instructions are not implemented
-335554 arm64: unhandled instruction: abs
-335564 arm64: unhandled instruction: fcvtpu Xn, Sn
-335735 arm64: unhandled instruction: cnt
-335736 arm64: unhandled instruction: uaddlv
-335848 arm64: unhandled instruction: {s,u}cvtf
-335902 arm64: unhandled instruction: sli
-335903 arm64: unhandled instruction: umull (vector)
-336055 arm64: unhandled instruction: mov (element)
-336062 arm64: unhandled instruction: shrn{,2}
-336139 mip64: [...] valgrind hangs and spins on a single core [...]
-336189 arm64: unhandled Instruction: mvn
-336435 Valgrind hangs in pthread_spin_lock consuming 100% CPU
-336619 valgrind --read-var-info=yes doesn't handle DW_TAG_restrict_type
-336772 Make moans about unknown ioctls more informative
-336957 Add a section about the Solaris/illumos port on the webpage
-337094 ifunc wrapper is broken on ppc64
-337285 fcntl commands F_OFD_SETLK, F_OFD_SETLKW, and F_OFD_GETLK not supported
-337528 leak check heuristic for block prefixed by length as 64bit number
-337740 Implement additional Xen hypercalls
-337762 guest_arm64_toIR.c:4166 (dis_ARM64_load_store): Assertion `0' failed.
-337766 arm64-linux: unhandled syscalls mlock (228) and mlockall (230)
-337871 deprecate --db-attach
-338023 Add support for all V4L2/media ioctls
-338024 inlined functions are not shown if DW_AT_ranges is used
-338106 Add support for 'kcmp' syscall
-338115 DRD: computed conflict set differs from actual after fork
-338160 implement display of thread local storage in gdbsrv
-338205 configure.ac and check for -Wno-tautological-compare
-338300 coredumps are missing one byte of every segment
-338445 amd64 vbit-test fails with unknown opcodes used by arm64 VEX
-338499 --sim-hints parsing broken due to wrong order in tokens
-338615 suppress glibc 2.20 optimized strcmp implementation for ARMv7
-338681 Unable to unwind through clone thread created on i386-linux
-338698 race condition between gdbsrv and vgdb on startup
-338703 helgrind on arm-linux gets false positives in dynamic loader
-338791 alt dwz files can be relative of debug/main file
-338878 on MacOS: assertion 'VG_IS_PAGE_ALIGNED(clstack_end+1)' failed
-338932 build V-trunk with gcc-trunk
-338974 glibc 2.20 changed size of struct sigaction sa_flags field on s390
-345079 Fix build problems in VEX/useful/test_main.c
-n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
-n-i-bz s390x: Fix memory corruption for multithreaded applications
-n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
-n-i-bz internal error in Valgrind if vgdb transmit signals when ptrace invoked
-n-i-bz Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
-n-i-bz drd manual: Document how to C++11 programs that use class "std::thread"
-n-i-bz Add command-line option --default-suppressions
-n-i-bz Add support for BLKDISCARDZEROES ioctl
-n-i-bz ppc32/64: fix a regression with the mtfsb0/mtfsb1 instructions
-n-i-bz Add support for sys_pivot_root and sys_unshare
-
-(3.10.0.BETA1: 2 September 2014, vex r2940, valgrind r14428)
-(3.10.0.BETA2: 8 September 2014, vex r2950, valgrind r14503)
-(3.10.0: 10 September 2014, vex r2950, valgrind r14514)
-
-
-
-Release 3.9.0 (31 October 2013)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.9.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android,
-X86/Android, X86/MacOSX 10.7 and AMD64/MacOSX 10.7. Support for
-MacOSX 10.8 is significantly improved relative to the 3.8.0 release.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for MIPS64 LE and BE running Linux. Valgrind has been
- tested on MIPS64 Debian Squeeze and Debian Wheezy distributions.
-
-* Support for MIPS DSP ASE on MIPS32 platforms.
-
-* Support for s390x Decimal Floating Point instructions on hosts that
- have the DFP facility installed.
-
-* Support for POWER8 (Power ISA 2.07) instructions
-
-* Support for Intel AVX2 instructions. This is available only on 64
- bit code.
-
-* Initial support for Intel Transactional Synchronization Extensions,
- both RTM and HLE.
-
-* Initial support for Hardware Transactional Memory on POWER.
-
-* Improved support for MacOSX 10.8 (64-bit only). Memcheck can now
- run large GUI apps tolerably well.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck:
-
- - Improvements in handling of vectorised code, leading to
- significantly fewer false error reports. You need to use the flag
- --partial-loads-ok=yes to get the benefits of these changes.
-
- - Better control over the leak checker. It is now possible to
- specify which leak kinds (definite/indirect/possible/reachable)
- should be displayed, which should be regarded as errors, and which
- should be suppressed by a given leak suppression. This is done
- using the options --show-leak-kinds=kind1,kind2,..,
- --errors-for-leak-kinds=kind1,kind2,.. and an optional
- "match-leak-kinds:" line in suppression entries, respectively.
-
- Note that generated leak suppressions contain this new line and
- are therefore more specific than in previous releases. To get the
- same behaviour as previous releases, remove the "match-leak-kinds:"
- line from generated suppressions before using them.
-
- - Reduced "possible leak" reports from the leak checker by the use
- of better heuristics. The available heuristics provide detection
- of valid interior pointers to std::stdstring, to new[] allocated
- arrays with elements having destructors and to interior pointers
- pointing to an inner part of a C++ object using multiple
- inheritance. They can be selected individually using the
- option --leak-check-heuristics=heur1,heur2,...
-
- - Better control of stacktrace acquisition for heap-allocated
- blocks. Using the --keep-stacktraces option, it is possible to
- control independently whether a stack trace is acquired for each
- allocation and deallocation. This can be used to create better
- "use after free" errors or to decrease Valgrind's resource
- consumption by recording less information.
-
- - Better reporting of leak suppression usage. The list of used
- suppressions (shown when the -v option is given) now shows, for
- each leak suppressions, how many blocks and bytes it suppressed
- during the last leak search.
-
-* Helgrind:
-
- - False errors resulting from the use of statically initialised
- mutexes and condition variables (PTHREAD_MUTEX_INITIALISER, etc)
- have been removed.
-
- - False errors resulting from the use of pthread_cond_waits that
- timeout, have been removed.
-
-* ==================== OTHER CHANGES ====================
-
-* Some attempt to tune Valgrind's space requirements to the expected
- capabilities of the target:
-
- - The default size of the translation cache has been reduced from 8
- sectors to 6 on Android platforms, since each sector occupies
- about 40MB when using Memcheck.
-
- - The default size of the translation cache has been increased to 16
- sectors on all other platforms, reflecting the fact that large
- applications require instrumentation and storage of huge amounts
- of code. For similar reasons, the number of memory mapped
- segments that can be tracked has been increased by a factor of 6.
-
- - In all cases, the maximum number of sectors in the translation
- cache can be controlled by the new flag --num-transtab-sectors.
-
-* Changes in how debug info (line numbers, etc) is read:
-
- - Valgrind no longer temporarily mmaps the entire object to read
- from it. Instead, reading is done through a small fixed sized
- buffer. This avoids virtual memory usage spikes when Valgrind
- reads debuginfo from large shared objects.
-
- - A new experimental remote debug info server. Valgrind can read
- debug info from a different machine (typically, a build host)
- where debuginfo objects are stored. This can save a lot of time
- and hassle when running Valgrind on resource-constrained targets
- (phones, tablets) when the full debuginfo objects are stored
- somewhere else. This is enabled by the --debuginfo-server=
- option.
-
- - Consistency checking between main and debug objects can be
- disabled using the --allow-mismatched-debuginfo option.
-
-* Stack unwinding by stack scanning, on ARM. Unwinding by stack
- scanning can recover stack traces in some cases when the normal
- unwind mechanisms fail. Stack scanning is best described as "a
- nasty, dangerous and misleading hack" and so is disabled by default.
- Use --unw-stack-scan-thresh and --unw-stack-scan-frames to enable
- and control it.
-
-* Detection and merging of recursive stack frame cycles. When your
- program has recursive algorithms, this limits the memory used by
- Valgrind for recorded stack traces and avoids recording
- uninteresting repeated calls. This is controlled by the command
- line option --merge-recursive-frame and by the monitor command
- "v.set merge-recursive-frames".
-
-* File name and line numbers for used suppressions. The list of used
- suppressions (shown when the -v option is given) now shows, for each
- used suppression, the file name and line number where the suppression
- is defined.
-
-* New and modified GDB server monitor features:
-
- - valgrind.h has a new client request, VALGRIND_MONITOR_COMMAND,
- that can be used to execute gdbserver monitor commands from the
- client program.
-
- - A new monitor command, "v.info open_fds", that gives the list of
- open file descriptors and additional details.
-
- - An optional message in the "v.info n_errs_found" monitor command,
- for example "v.info n_errs_found test 1234 finished", allowing a
- comment string to be added to the process output, perhaps for the
- purpose of separating errors of different tests or test phases.
-
- - A new monitor command "v.info execontext" that shows information
- about the stack traces recorded by Valgrind.
-
- - A new monitor command "v.do expensive_sanity_check_general" to run
- some internal consistency checks.
-
-* New flag --sigill-diagnostics to control whether a diagnostic
- message is printed when the JIT encounters an instruction it can't
- translate. The actual behavior -- delivery of SIGILL to the
- application -- is unchanged.
-
-* The maximum amount of memory that Valgrind can use on 64 bit targets
- has been increased from 32GB to 64GB. This should make it possible
- to run applications on Memcheck that natively require up to about 35GB.
-
-* ==================== 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.
-
-123837 system call: 4th argument is optional, depending on cmd
-135425 memcheck should tell you where Freed blocks were Mallocd
-164485 VG_N_SEGNAMES and VG_N_SEGMENTS are (still) too small
-207815 Adds some of the drm ioctls to syswrap-linux.c
-251569 vex amd64->IR: 0xF 0x1 0xF9 0xBF 0x90 0xD0 0x3 0x0 (RDTSCP)
-252955 Impossible to compile with ccache
-253519 Memcheck reports auxv pointer accesses as invalid reads.
-263034 Crash when loading some PPC64 binaries
-269599 Increase deepest backtrace
-274695 s390x: Support "compare to/from logical" instructions (z196)
-275800 s390x: Autodetect cache info (part 2)
-280271 Valgrind reports possible memory leaks on still-reachable std::string
-284540 Memcheck shouldn't count suppressions matching still-reachable [..]
-289578 Backtraces with ARM unwind tables (stack scan flags)
-296311 Wrong stack traces due to -fomit-frame-pointer (x86)
-304832 ppc32: build failure
-305431 Use find_buildid shdr fallback for separate .debug files
-305728 Add support for AVX2 instructions
-305948 ppc64: code generation for ShlD64 / ShrD64 asserts
-306035 s390x: Fix IR generation for LAAG and friends
-306054 s390x: Condition code computation for convert-to-int/logical
-306098 s390x: alternate opcode form for convert to/from fixed
-306587 Fix cache line detection from auxiliary vector for PPC.
-306783 Mips unhandled syscall : 4025 / 4079 / 4182
-307038 DWARF2 CFI reader: unhandled DW_OP_ opcode 0x8 (DW_OP_const1u et al)
-307082 HG false positive: pthread_cond_destroy: destruction of unknown CV
-307101 sys_capget second argument can be NULL
-307103 sys_openat: If pathname is absolute, then dirfd is ignored.
-307106 amd64->IR: f0 0f c0 02 (lock xadd byte)
-307113 s390x: DFP support
-307141 valgrind does't work in mips-linux system
-307155 filter_gdb should filter out syscall-template.S T_PSEUDO
-307285 x86_amd64 feature test for avx in test suite is wrong
-307290 memcheck overlap testcase needs memcpy version filter
-307463 Please add "&limit=0" to the "all open bugs" link
-307465 --show-possibly-lost=no should reduce the error count / exit code
-307557 Leaks on Mac OS X 10.7.5 libraries at ImageLoader::recursiveInit[..]
-307729 pkgconfig support broken valgrind.pc
-307828 Memcheck false errors SSE optimized wcscpy, wcscmp, wcsrchr, wcschr
-307955 Building valgrind 3.7.0-r4 fails in Gentoo AMD64 when using clang
-308089 Unhandled syscall on ppc64: prctl
-308135 PPC32 MPC8xx has 16 bytes cache size
-308321 testsuite memcheck filter interferes with gdb_filter
-308333 == 307106
-308341 vgdb should report process exit (or fatal signal)
-308427 s390 memcheck reports tsearch cjump/cmove depends on uninit
-308495 Remove build dependency on installed Xen headers
-308573 Internal error on 64-bit instruction executed in 32-bit mode
-308626 == 308627
-308627 pmovmskb validity bit propagation is imprecise
-308644 vgdb command for having the info for the track-fds option
-308711 give more info about aspacemgr and arenas in out_of_memory
-308717 ARM: implement fixed-point VCVT.F64.[SU]32
-308718 ARM implement SMLALBB family of instructions
-308886 Missing support for PTRACE_SET/GETREGSET
-308930 syscall name_to_handle_at (303 on amd64) not handled
-309229 V-bit tester does not report number of tests generated
-309323 print unrecognized instuction on MIPS
-309425 Provide a --sigill-diagnostics flag to suppress illegal [..]
-309427 SSE optimized stpncpy trigger uninitialised value [..] errors
-309430 Self hosting ppc64 encounters a vassert error on operand type
-309600 valgrind is a bit confused about 0-sized sections
-309823 Generate errors for still reachable blocks
-309921 PCMPISTRI validity bit propagation is imprecise
-309922 none/tests/ppc64/test_dfp5 sometimes fails
-310169 The Iop_CmpORD class of Iops is not supported by the vbit checker.
-310424 --read-var-info does not properly describe static variables
-310792 search additional path for debug symbols
-310931 s390x: Message-security assist (MSA) instruction extension [..]
-311100 PPC DFP implementation of the integer operands is inconsistent [..]
-311318 ARM: "128-bit constant is not implemented" error message
-311407 ssse3 bcopy (actually converted memcpy) causes invalid read [..]
-311690 V crashes because it redirects branches inside of a redirected function
-311880 x86_64: make regtest hangs at shell_valid1
-311922 WARNING: unhandled syscall: 170
-311933 == 251569
-312171 ppc: insn selection for DFP
-312571 Rounding mode call wrong for the DFP Iops [..]
-312620 Change to Iop_D32toD64 [..] for s390 DFP support broke ppc [..]
-312913 Dangling pointers error should also report the alloc stack trace
-312980 Building on Mountain Lion generates some compiler warnings
-313267 Adding MIPS64/Linux port to Valgrind
-313348 == 251569
-313354 == 251569
-313811 Buffer overflow in assert_fail
-314099 coverity pointed out error in VEX guest_ppc_toIR.c insn_suffix
-314269 ppc: dead code in insn selection
-314718 ARM: implement integer divide instruction (sdiv and udiv)
-315345 cl-format.xml and callgrind/dump.c don't agree on using cfl= or cfi=
-315441 sendmsg syscall should ignore unset msghdr msg_flags
-315534 msgrcv inside a thread causes valgrind to hang (block)
-315545 Assertion '(UChar*)sec->tt[tteNo].tcptr <= (UChar*)hcode' failed
-315689 disInstr(thumb): unhandled instruction: 0xF852 0x0E10 (LDRT)
-315738 disInstr(arm): unhandled instruction: 0xEEBE0BEE (vcvt.s32.f64)
-315959 valgrind man page has bogus SGCHECK (and no BBV) OPTIONS section
-316144 valgrind.1 manpage contains unknown ??? strings [..]
-316145 callgrind command line options in manpage reference (unknown) [..]
-316145 callgrind command line options in manpage reference [..]
-316181 drd: Fixed a 4x slowdown for certain applications
-316503 Valgrind does not support SSE4 "movntdqa" instruction
-316535 Use of |signed int| instead of |size_t| in valgrind messages
-316696 fluidanimate program of parsec 2.1 stuck
-316761 syscall open_by_handle_at (304 on amd64, 342 on x86) not handled
-317091 Use -Wl,-Ttext-segment when static linking if possible [..]
-317186 "Impossible happens" when occurs VCVT instruction on ARM
-317318 Support for Threading Building Blocks "scalable_malloc"
-317444 amd64->IR: 0xC4 0x41 0x2C 0xC2 0xD2 0x8 (vcmpeq_uqps)
-317461 Fix BMI assembler configure check and avx2/bmi/fma vgtest prereqs
-317463 bmi testcase IR SANITY CHECK FAILURE
-317506 memcheck/tests/vbit-test fails with unknown opcode after [..]
-318050 libmpiwrap fails to compile with out-of-source build
-318203 setsockopt handling needs to handle SOL_SOCKET/SO_ATTACH_FILTER
-318643 annotate_trace_memory tests infinite loop on arm and ppc [..]
-318773 amd64->IR: 0xF3 0x48 0x0F 0xBC 0xC2 0xC3 0x66 0x0F
-318929 Crash with: disInstr(thumb): 0xF321 0x0001 (ssat16)
-318932 Add missing PPC64 and PPC32 system call support
-319235 --db-attach=yes is broken with Yama (ptrace scoping) enabled
-319395 Crash with unhandled instruction on STRT (Thumb) instructions
-319494 VEX Makefile-gcc standalone build update after r2702
-319505 [MIPSEL] Crash: unhandled UNRAY operator.
-319858 disInstr(thumb): unhandled instruction on instruction STRBT
-319932 disInstr(thumb): unhandled instruction on instruction STRHT
-320057 Problems when we try to mmap more than 12 memory pages on MIPS32
-320063 Memory from PTRACE_GET_THREAD_AREA is reported uninitialised
-320083 disInstr(thumb): unhandled instruction on instruction LDRBT
-320116 bind on AF_BLUETOOTH produces warnings because of sockaddr_rc padding
-320131 WARNING: unhandled syscall: 369 on ARM (prlimit64)
-320211 Stack buffer overflow in ./coregrind/m_main.c with huge TMPDIR
-320661 vgModuleLocal_read_elf_debug_info(): "Assertion '!di->soname'
-320895 add fanotify support (patch included)
-320998 vex amd64->IR pcmpestri and pcmpestrm SSE4.2 instruction
-321065 Valgrind updates for Xen 4.3
-321148 Unhandled instruction: PLI (Thumb 1, 2, 3)
-321363 Unhandled instruction: SSAX (ARM + Thumb)
-321364 Unhandled instruction: SXTAB16 (ARM + Thumb)
-321466 Unhandled instruction: SHASX (ARM + Thumb)
-321467 Unhandled instruction: SHSAX (ARM + Thumb)
-321468 Unhandled instruction: SHSUB16 (ARM + Thumb)
-321619 Unhandled instruction: SHSUB8 (ARM + Thumb)
-321620 Unhandled instruction: UASX (ARM + Thumb)
-321621 Unhandled instruction: USAX (ARM + Thumb)
-321692 Unhandled instruction: UQADD16 (ARM + Thumb)
-321693 Unhandled instruction: LDRSBT (Thumb)
-321694 Unhandled instruction: UQASX (ARM + Thumb)
-321696 Unhandled instruction: UQSAX (Thumb + ARM)
-321697 Unhandled instruction: UHASX (ARM + Thumb)
-321703 Unhandled instruction: UHSAX (ARM + Thumb)
-321704 Unhandled instruction: REVSH (ARM + Thumb)
-321730 Add cg_diff and cg_merge man pages
-321738 Add vgdb and valgrind-listener man pages
-321814 == 315545
-321891 Unhandled instruction: LDRHT (Thumb)
-321960 pthread_create() then alloca() causing invalid stack write errors
-321969 ppc32 and ppc64 don't support [lf]setxattr
-322254 Show threadname together with tid if set by application
-322294 Add initial support for IBM Power ISA 2.07
-322368 Assertion failure in wqthread_hijack under OS X 10.8
-322563 vex mips->IR: 0x70 0x83 0xF0 0x3A
-322807 VALGRIND_PRINTF_BACKTRACE writes callstack to xml and text to stderr
-322851 0bXXX binary literal syntax is not standard
-323035 Unhandled instruction: LDRSHT(Thumb)
-323036 Unhandled instruction: SMMLS (ARM and Thumb)
-323116 The memcheck/tests/ppc64/power_ISA2_05.c fails to build [..]
-323175 Unhandled instruction: SMLALD (ARM + Thumb)
-323177 Unhandled instruction: SMLSLD (ARM + Thumb)
-323432 Calling pthread_cond_destroy() or pthread_mutex_destroy() [..]
-323437 Phase 2 support for IBM Power ISA 2.07
-323713 Support mmxext (integer sse) subset on i386 (athlon)
-323803 Transactional memory instructions are not supported for Power
-323893 SSE3 not available on amd cpus in valgrind
-323905 Probable false positive from Valgrind/drd on close()
-323912 valgrind.h header isn't compatible for mingw64
-324047 Valgrind doesn't support [LDR,ST]{S}[B,H]T ARM instructions
-324149 helgrind: When pthread_cond_timedwait returns ETIMEDOUT [..]
-324181 mmap does not handle MAP_32BIT
-324227 memcheck false positive leak when a thread calls exit+block [..]
-324421 Support for fanotify API on ARM architecture
-324514 gdbserver monitor cmd output behaviour consistency [..]
-324518 ppc64: Emulation of dcbt instructions does not handle [..]
-324546 none/tests/ppc32 test_isa_2_07_part2 requests -m64
-324582 When access is made to freed memory, report both allocation [..]
-324594 Fix overflow computation for Power ISA 2.06 insns: mulldo/mulldo.
-324765 ppc64: illegal instruction when executing none/tests/ppc64/jm-misc
-324816 Incorrect VEX implementation for xscvspdp/xvcvspdp for SNaN inputs
-324834 Unhandled instructions in Microsoft C run-time for x86_64
-324894 Phase 3 support for IBM Power ISA 2.07
-326091 drd: Avoid false race reports from optimized strlen() impls
-326113 valgrind libvex hwcaps error on AMD64
-n-i-bz Some wrong command line options could be ignored
-n-i-bz patch to allow fair-sched on android
-n-i-bz report error for vgdb snapshot requested before execution
-n-i-bz same as 303624 (fixed in 3.8.0), but for x86 android
-
-(3.9.0: 31 October 2013, vex r2796, valgrind r13708)
-
-
-
-Release 3.8.1 (19 September 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.8.1 is a bug fix release. It fixes some assertion failures in 3.8.0
-that occur moderately frequently in real use cases, adds support for
-some missing instructions on ARM, and fixes a deadlock condition on
-MacOSX. If you package or deliver 3.8.0 for others to use, you might
-want to consider upgrading to 3.8.1 instead.
-
-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.
-
-284004 == 301281
-289584 Unhandled instruction: 0xF 0x29 0xE5 (MOVAPS)
-295808 amd64->IR: 0xF3 0xF 0xBC 0xC0 (TZCNT)
-298281 wcslen causes false(?) uninitialised value warnings
-301281 valgrind hangs on OS X when the process calls system()
-304035 disInstr(arm): unhandled instruction 0xE1023053
-304867 implement MOVBE instruction in x86 mode
-304980 Assertion 'lo <= hi' failed in vgModuleLocal_find_rx_mapping
-305042 amd64: implement 0F 7F encoding of movq between two registers
-305199 ARM: implement QDADD and QDSUB
-305321 amd64->IR: 0xF 0xD 0xC (prefetchw)
-305513 killed by fatal signal: SIGSEGV
-305690 DRD reporting invalid semaphore when sem_trywait fails
-305926 Invalid alignment checks for some AVX instructions
-306297 disInstr(thumb): unhandled instruction 0xE883 0x000C
-306310 3.8.0 release tarball missing some files
-306612 RHEL 6 glibc-2.X default suppressions need /lib*/libc-*patterns
-306664 vex amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x46 0x66 0xF
-n-i-bz shmat of a segment > 4Gb does not work
-n-i-bz simulate_control_c script wrong USR1 signal number on mips
-n-i-bz vgdb ptrace calls wrong on mips [...]
-n-i-bz Fixes for more MPI false positives
-n-i-bz exp-sgcheck's memcpy causes programs to segfault
-n-i-bz OSX build w/ clang: asserts at startup
-n-i-bz Incorrect undef'dness prop for Iop_DPBtoBCD and Iop_BCDtoDPB
-n-i-bz fix a couple of union tag-vs-field mixups
-n-i-bz OSX: use __NR_poll_nocancel rather than __NR_poll
-
-The following bugs were fixed in 3.8.0 but not listed in this NEWS
-file at the time:
-
-254088 Valgrind should know about UD2 instruction
-301280 == 254088
-301902 == 254088
-304754 NEWS blows TeX's little mind
-
-(3.8.1: 19 September 2012, vex r2537, valgrind r12996)
-
-
-
-Release 3.8.0 (10 August 2012)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.8.0 is a feature release with many improvements and the usual
-collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, S390X/Linux, MIPS/Linux, ARM/Android, X86/Android,
-X86/MacOSX 10.6/10.7 and AMD64/MacOSX 10.6/10.7. Support for recent
-distros and toolchain components (glibc 2.16, gcc 4.7) has been added.
-There is initial support for MacOSX 10.8, but it is not usable for
-serious work at present.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for MIPS32 platforms running Linux. Valgrind has been
- tested on MIPS32 and MIPS32r2 platforms running different Debian
- Squeeze and MeeGo distributions. Both little-endian and big-endian
- cores are supported. The tools Memcheck, Massif and Lackey have
- been tested and are known to work. See README.mips for more details.
-
-* Preliminary support for Android running on x86.
-
-* Preliminary (as-yet largely unusable) support for MacOSX 10.8.
-
-* Support for Intel AVX instructions and for AES instructions. This
- support is available only for 64 bit code.
-
-* Support for POWER Decimal Floating Point instructions.
-
-* ==================== TOOL CHANGES ====================
-
-* Non-libc malloc implementations are now supported. This is useful
- for tools that replace malloc (Memcheck, Massif, DRD, Helgrind).
- Using the new option --soname-synonyms, such tools can be informed
- that the malloc implementation is either linked statically into the
- executable, or is present in some other shared library different
- from libc.so. This makes it possible to process statically linked
- programs, and programs using other malloc libraries, for example
- TCMalloc or JEMalloc.
-
-* For tools that provide their own replacement for malloc et al, the
- option --redzone-size=<number> allows users to specify the size of
- the padding blocks (redzones) added before and after each client
- allocated block. Smaller redzones decrease the memory needed by
- Valgrind. Bigger redzones increase the chance to detect blocks
- overrun or underrun. Prior to this change, the redzone size was
- hardwired to 16 bytes in Memcheck.
-
-* Memcheck:
-
- - The leak_check GDB server monitor command now can
- control the maximum nr of loss records to output.
-
- - Reduction of memory use for applications allocating
- many blocks and/or having many partially defined bytes.
-
- - Addition of GDB server monitor command 'block_list' that lists
- the addresses/sizes of the blocks of a leak search loss record.
-
- - Addition of GDB server monitor command 'who_points_at' that lists
- the locations pointing at a block.
-
- - If a redzone size > 0 is given, VALGRIND_MALLOCLIKE_BLOCK now will
- detect an invalid access of these redzones, by marking them
- noaccess. Similarly, if a redzone size is given for a memory
- pool, VALGRIND_MEMPOOL_ALLOC will mark the redzones no access.
- This still allows to find some bugs if the user has forgotten to
- mark the pool superblock noaccess.
-
- - Performance of memory leak check has been improved, especially in
- cases where there are many leaked blocks and/or many suppression
- rules used to suppress leak reports.
-
- - Reduced noise (false positive) level on MacOSX 10.6/10.7, due to
- more precise analysis, which is important for LLVM/Clang
- generated code. This is at the cost of somewhat reduced
- performance. Note there is no change to analysis precision or
- costs on Linux targets.
-
-* DRD:
-
- - Added even more facilities that can help finding the cause of a data
- race, namely the command-line option --ptrace-addr and the macro
- DRD_STOP_TRACING_VAR(x). More information can be found in the manual.
-
- - Fixed a subtle bug that could cause false positive data race reports.
-
-* ==================== OTHER CHANGES ====================
-
-* The C++ demangler has been updated so as to work well with C++
- compiled by up to at least g++ 4.6.
-
-* Tool developers can make replacement/wrapping more flexible thanks
- to the new option --soname-synonyms. This was reported above, but
- in fact is very general and applies to all function
- replacement/wrapping, not just to malloc-family functions.
-
-* Round-robin scheduling of threads can be selected, using the new
- option --fair-sched= yes. Prior to this change, the pipe-based
- thread serialisation mechanism (which is still the default) could
- give very unfair scheduling. --fair-sched=yes improves
- responsiveness of interactive multithreaded applications, and
- improves repeatability of results from the thread checkers Helgrind
- and DRD.
-
-* For tool developers: support to run Valgrind on Valgrind has been
- improved. We can now routinely Valgrind on Helgrind or Memcheck.
-
-* gdbserver now shows the float shadow registers as integer
- rather than float values, as the shadow values are mostly
- used as bit patterns.
-
-* Increased limit for the --num-callers command line flag to 500.
-
-* Performance improvements for error matching when there are many
- suppression records in use.
-
-* Improved support for DWARF4 debugging information (bug 284184).
-
-* Initial support for DWZ compressed Dwarf debug info.
-
-* Improved control over the IR optimiser's handling of the tradeoff
- between performance and precision of exceptions. Specifically,
- --vex-iropt-precise-memory-exns has been removed and replaced by
- --vex-iropt-register-updates, with extended functionality. This
- allows the Valgrind gdbserver to always show up to date register
- values to GDB.
-
-* Modest performance gains through the use of translation chaining for
- JIT-generated code.
-
-* ==================== 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.
-
-197914 Building valgrind from svn now requires automake-1.10
-203877 increase to 16Mb maximum allowed alignment for memalign et al
-219156 Handle statically linked malloc or other malloc lib (e.g. tcmalloc)
-247386 make perf does not run all performance tests
-270006 Valgrind scheduler unfair
-270777 Adding MIPS/Linux port to Valgrind
-270796 s390x: Removed broken support for the TS insn
-271438 Fix configure for proper SSE4.2 detection
-273114 s390x: Support TR, TRE, TROO, TROT, TRTO, and TRTT instructions
-273475 Add support for AVX instructions
-274078 improved configure logic for mpicc
-276993 fix mremap 'no thrash checks'
-278313 Fedora 15/x64: err read debug info with --read-var-info=yes flag
-281482 memcheck incorrect byte allocation count in realloc() for silly argument
-282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit
-283413 Fix wrong sanity check
-283671 Robustize alignment computation in LibVEX_Alloc
-283961 Adding support for some HCI IOCTLs
-284124 parse_type_DIE: confused by: DWARF 4
-284864 == 273475 (Add support for AVX instructions)
-285219 Too-restrictive constraints for Thumb2 "SP plus/minus register"
-285662 (MacOSX): Memcheck needs to replace memcpy/memmove
-285725 == 273475 (Add support for AVX instructions)
-286261 add wrapper for linux I2C_RDWR ioctl
-286270 vgpreload is not friendly to 64->32 bit execs, gives ld.so warnings
-286374 Running cachegrind with --branch-sim=yes on 64-bit PowerPC program fails
-286384 configure fails "checking for a supported version of gcc"
-286497 == 273475 (Add support for AVX instructions)
-286596 == 273475 (Add support for AVX instructions)
-286917 disInstr(arm): unhandled instruction: QADD (also QSUB)
-287175 ARM: scalar VFP fixed-point VCVT instructions not handled
-287260 Incorrect conditional jump or move depends on uninitialised value(s)
-287301 vex amd64->IR: 0x66 0xF 0x38 0x41 0xC0 0xB8 0x0 0x0 (PHMINPOSUW)
-287307 == 273475 (Add support for AVX instructions)
-287858 VG_(strerror): unknown error
-288298 (MacOSX) unhandled syscall shm_unlink
-288995 == 273475 (Add support for AVX instructions)
-289470 Loading of large Mach-O thin binaries fails.
-289656 == 273475 (Add support for AVX instructions)
-289699 vgdb connection in relay mode erroneously closed due to buffer overrun
-289823 == 293754 (PCMPxSTRx not implemented for 16-bit characters)
-289839 s390x: Provide support for unicode conversion instructions
-289939 monitor cmd 'leak_check' with details about leaked or reachable blocks
-290006 memcheck doesn't mark %xmm as initialized after "pcmpeqw %xmm %xmm"
-290655 Add support for AESKEYGENASSIST instruction
-290719 valgrind-3.7.0 fails with automake-1.11.2 due to"pkglibdir" usage
-290974 vgdb must align pages to VKI_SHMLBA (16KB) on ARM
-291253 ES register not initialised in valgrind simulation
-291568 Fix 3DNOW-related crashes with baseline x86_64 CPU (w patch)
-291865 s390x: Support the "Compare Double and Swap" family of instructions
-292300 == 273475 (Add support for AVX instructions)
-292430 unrecognized instruction in __intel_get_new_mem_ops_cpuid
-292493 == 273475 (Add support for AVX instructions)
-292626 Missing fcntl F_SETOWN_EX and F_GETOWN_EX support
-292627 Missing support for some SCSI ioctls
-292628 none/tests/x86/bug125959-x86.c triggers undefined behavior
-292841 == 273475 (Add support for AVX instructions)
-292993 implement the getcpu syscall on amd64-linux
-292995 Implement the “cross memory attach” syscalls introduced in Linux 3.2
-293088 Add some VEX sanity checks for ppc64 unhandled instructions
-293751 == 290655 (Add support for AESKEYGENASSIST instruction)
-293754 PCMPxSTRx not implemented for 16-bit characters
-293755 == 293754 (No tests for PCMPxSTRx on 16-bit characters)
-293808 CLFLUSH not supported by latest VEX for amd64
-294047 valgrind does not correctly emulate prlimit64(..., RLIMIT_NOFILE, ...)
-294048 MPSADBW instruction not implemented
-294055 regtest none/tests/shell fails when locale is not set to C
-294185 INT 0x44 (and others) not supported on x86 guest, but used by Jikes RVM
-294190 --vgdb-error=xxx can be out of sync with errors shown to the user
-294191 amd64: fnsave/frstor and 0x66 size prefixes on FP instructions
-294260 disInstr_AMD64: disInstr miscalculated next %rip
-294523 --partial-loads-ok=yes causes false negatives
-294617 vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A
-294736 vex amd64->IR: 0x48 0xF 0xD7 0xD6 0x48 0x83
-294812 patch allowing to run (on x86 at least) helgrind/drd on tool.
-295089 can not annotate source for both helgrind and drd
-295221 POWER Processor decimal floating point instruction support missing
-295427 building for i386 with clang on darwin11 requires "-new_linker linker"
-295428 coregrind/m_main.c has incorrect x86 assembly for darwin
-295590 Helgrind: Assertion 'cvi->nWaiters > 0' failed
-295617 ARM - Add some missing syscalls
-295799 Missing \n with get_vbits in gdbserver when line is % 80 [...]
-296229 Linux user input device ioctls missing wrappers
-296318 ELF Debug info improvements (more than one rx/rw mapping)
-296422 Add translation chaining support
-296457 vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A (dup of AES)
-296792 valgrind 3.7.0: add SIOCSHWTSTAMP (0x89B0) ioctl wrapper
-296983 Fix build issues on x86_64/ppc64 without 32-bit toolchains
-297078 gdbserver signal handling problems [..]
-297147 drd false positives on newly allocated memory
-297329 disallow decoding of IBM Power DFP insns on some machines
-297497 POWER Processor decimal floating point instruction support missing
-297701 Another alias for strncasecmp_l in libc-2.13.so
-297911 'invalid write' not reported when using APIs for custom mem allocators.
-297976 s390x: revisit EX implementation
-297991 Valgrind interferes with mmap()+ftell()
-297992 Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux)
-297993 Fix compilation of valgrind with gcc -g3.
-298080 POWER Processor DFP support missing, part 3
-298227 == 273475 (Add support for AVX instructions)
-298335 == 273475 (Add support for AVX instructions)
-298354 Unhandled ARM Thumb instruction 0xEB0D 0x0585 (streq)
-298394 s390x: Don't bail out on an unknown machine model. [..]
-298421 accept4() syscall (366) support is missing for ARM
-298718 vex amd64->IR: 0xF 0xB1 0xCB 0x9C 0x8F 0x45
-298732 valgrind installation problem in ubuntu with kernel version 3.x
-298862 POWER Processor DFP instruction support missing, part 4
-298864 DWARF reader mis-parses DW_FORM_ref_addr
-298943 massif asserts with --pages-as-heap=yes when brk is changing [..]
-299053 Support DWARF4 DW_AT_high_pc constant form
-299104 == 273475 (Add support for AVX instructions)
-299316 Helgrind: hg_main.c:628 (map_threads_lookup): Assertion 'thr' failed.
-299629 dup3() syscall (358) support is missing for ARM
-299694 POWER Processor DFP instruction support missing, part 5
-299756 Ignore --free-fill for MEMPOOL_FREE and FREELIKE client requests
-299803 == 273475 (Add support for AVX instructions)
-299804 == 273475 (Add support for AVX instructions)
-299805 == 273475 (Add support for AVX instructions)
-300140 ARM - Missing (T1) SMMUL
-300195 == 296318 (ELF Debug info improvements (more than one rx/rw mapping))
-300389 Assertion `are_valid_hwcaps(VexArchAMD64, [..])' failed.
-300414 FCOM and FCOMP unimplemented for amd64 guest
-301204 infinite loop in canonicaliseSymtab with ifunc symbol
-301229 == 203877 (increase to 16Mb maximum allowed alignment for memalign etc)
-301265 add x86 support to Android build
-301984 configure script doesn't detect certain versions of clang
-302205 Fix compiler warnings for POWER VEX code and POWER test cases
-302287 Unhandled movbe instruction on Atom processors
-302370 PPC: fnmadd, fnmsub, fnmadds, fnmsubs insns always negate the result
-302536 Fix for the POWER Valgrind regression test: memcheck-ISA2.0.
-302578 Unrecognized isntruction 0xc5 0x32 0xc2 0xca 0x09 vcmpngess
-302656 == 273475 (Add support for AVX instructions)
-302709 valgrind for ARM needs extra tls support for android emulator [..]
-302827 add wrapper for CDROM_GET_CAPABILITY
-302901 Valgrind crashes with dwz optimized debuginfo
-302918 Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
-303116 Add support for the POWER instruction popcntb
-303127 Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions.
-303250 Assertion `instrs_in->arr_used <= 10000' failed w/ OpenSSL code
-303466 == 273475 (Add support for AVX instructions)
-303624 segmentation fault on Android 4.1 (e.g. on Galaxy Nexus OMAP)
-303963 strstr() function produces wrong results under valgrind callgrind
-304054 CALL_FN_xx macros need to enforce stack alignment
-304561 tee system call not supported
-715750 (MacOSX): Incorrect invalid-address errors near 0xFFFFxxxx (mozbug#)
-n-i-bz Add missing gdbserver xml files for shadow registers for ppc32
-n-i-bz Bypass gcc4.4/4.5 code gen bugs causing out of memory or asserts
-n-i-bz Fix assert in gdbserver for watchpoints watching the same address
-n-i-bz Fix false positive in sys_clone on amd64 when optional args [..]
-n-i-bz s390x: Shadow registers can now be examined using vgdb
-
-(3.8.0-TEST3: 9 August 2012, vex r2465, valgrind r12865)
-(3.8.0: 10 August 2012, vex r2465, valgrind r12866)
-
-
-
-Release 3.7.0 (5 November 2011)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.7.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, S390X/Linux, ARM/Android, X86/Darwin and AMD64/Darwin.
-Support for recent distros and toolchain components (glibc 2.14, gcc
-4.6, MacOSX 10.7) has been added.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for IBM z/Architecture (s390x) running Linux. Valgrind can
- analyse 64-bit programs running on z/Architecture. Most user space
- instructions up to and including z10 are supported. Valgrind has
- been tested extensively on z9, z10, and z196 machines running SLES
- 10/11, RedHat 5/6m, and Fedora. The Memcheck and Massif tools are
- known to work well. Callgrind, Helgrind, and DRD work reasonably
- well on z9 and later models. See README.s390 for more details.
-
-* Preliminary support for MacOSX 10.7 and XCode 4. Both 32- and
- 64-bit processes are supported. Some complex threaded applications
- (Firefox) are observed to hang when run as 32 bit applications,
- whereas 64-bit versions run OK. The cause is unknown. Memcheck
- will likely report some false errors. In general, expect some rough
- spots. This release also supports MacOSX 10.6, but drops support
- for 10.5.
-
-* Preliminary support for Android (on ARM). Valgrind can now run
- large applications (eg, Firefox) on (eg) a Samsung Nexus S. See
- README.android for more details, plus instructions on how to get
- started.
-
-* Support for the IBM Power ISA 2.06 (Power7 instructions)
-
-* General correctness and performance improvements for ARM/Linux, and,
- by extension, ARM/Android.
-
-* Further solidification of support for SSE 4.2 in 64-bit mode. AVX
- instruction set support is under development but is not available in
- this release.
-
-* Support for AIX5 has been removed.
-
-* ==================== TOOL CHANGES ====================
-
-* Memcheck: some incremental changes:
-
- - reduction of memory use in some circumstances
-
- - improved handling of freed memory, which in some circumstances
- can cause detection of use-after-free that would previously have
- been missed
-
- - fix of a longstanding bug that could cause false negatives (missed
- errors) in programs doing vector saturated narrowing instructions.
-
-* Helgrind: performance improvements and major memory use reductions,
- particularly for large, long running applications which perform many
- synchronisation (lock, unlock, etc) events. Plus many smaller
- changes:
-
- - display of locksets for both threads involved in a race
-
- - general improvements in formatting/clarity of error messages
-
- - addition of facilities and documentation regarding annotation
- of thread safe reference counted C++ classes
-
- - new flag --check-stack-refs=no|yes [yes], to disable race checking
- on thread stacks (a performance hack)
-
- - new flag --free-is-write=no|yes [no], to enable detection of races
- where one thread accesses heap memory but another one frees it,
- without any coordinating synchronisation event
-
-* DRD: enabled XML output; added support for delayed thread deletion
- in order to detect races that occur close to the end of a thread
- (--join-list-vol); fixed a memory leak triggered by repeated client
- memory allocatation and deallocation; improved Darwin support.
-
-* exp-ptrcheck: this tool has been renamed to exp-sgcheck
-
-* exp-sgcheck: this tool has been reduced in scope so as to improve
- performance and remove checking that Memcheck does better.
- Specifically, the ability to check for overruns for stack and global
- arrays is unchanged, but the ability to check for overruns of heap
- blocks has been removed. The tool has accordingly been renamed to
- exp-sgcheck ("Stack and Global Array Checking").
-
-* ==================== OTHER CHANGES ====================
-
-* GDB server: Valgrind now has an embedded GDB server. That means it
- is possible to control a Valgrind run from GDB, doing all the usual
- things that GDB can do (single stepping, breakpoints, examining
- data, etc). Tool-specific functionality is also available. For
- example, it is possible to query the definedness state of variables
- or memory from within GDB when running Memcheck; arbitrarily large
- memory watchpoints are supported, etc. To use the GDB server, start
- Valgrind with the flag --vgdb-error=0 and follow the on-screen
- instructions.
-
-* Improved support for unfriendly self-modifying code: a new option
- --smc-check=all-non-file is available. This adds the relevant
- consistency checks only to code that originates in non-file-backed
- mappings. In effect this confines the consistency checking only to
- code that is or might be JIT generated, and avoids checks on code
- that must have been compiled ahead of time. This significantly
- improves performance on applications that generate code at run time.
-
-* It is now possible to build a working Valgrind using Clang-2.9 on
- Linux.
-
-* new client requests VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.
- These enable and disable error reporting on a per-thread, and
- nestable, basis. This is useful for hiding errors in particularly
- troublesome pieces of code. The MPI wrapper library (libmpiwrap.c)
- now uses this facility.
-
-* Added the --mod-funcname option to cg_diff.
-
-* ==================== 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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
-
- 79311 malloc silly arg warning does not give stack trace
-210935 port valgrind.h (not valgrind) to win32 to support client requests
-214223 valgrind SIGSEGV on startup gcc 4.4.1 ppc32 (G4) Ubuntu 9.10
-243404 Port to zSeries
-243935 Helgrind: incorrect handling of ANNOTATE_HAPPENS_BEFORE()/AFTER()
-247223 non-x86: Suppress warning: 'regparm' attribute directive ignored
-250101 huge "free" memory usage due to m_mallocfree.c fragmentation
-253206 Some fixes for the faultstatus testcase
-255223 capget testcase fails when running as root
-256703 xlc_dbl_u32.c testcase broken
-256726 Helgrind tests have broken inline asm
-259977 == 214223 (Valgrind segfaults doing __builtin_longjmp)
-264800 testcase compile failure on zseries
-265762 make public VEX headers compilable by G++ 3.x
-265771 assertion in jumps.c (r11523) fails with glibc-2.3
-266753 configure script does not give the user the option to not use QtCore
-266931 gen_insn_test.pl is broken
-266961 ld-linux.so.2 i?86-linux strlen issues
-266990 setns instruction causes false positive
-267020 Make directory for temporary files configurable at run-time.
-267342 == 267997 (segmentation fault on Mac OS 10.6)
-267383 Assertion 'vgPlain_strlen(dir) + vgPlain_strlen(file) + 1 < 256' failed
-267413 Assertion 'DRD_(g_threadinfo)[tid].synchr_nesting >= 1' failed.
-267488 regtest: darwin support for 64-bit build
-267552 SIGSEGV (misaligned_stack_error) with DRD, but not with other tools
-267630 Add support for IBM Power ISA 2.06 -- stage 1
-267769 == 267997 (Darwin: memcheck triggers segmentation fault)
-267819 Add client request for informing the core about reallocation
-267925 laog data structure quadratic for a single sequence of lock
-267968 drd: (vgDrd_thread_set_joinable): Assertion '0 <= (int)tid ..' failed
-267997 MacOSX: 64-bit V segfaults on launch when built with Xcode 4.0.1
-268513 missed optimizations in fold_Expr
-268619 s390x: fpr - gpr transfer facility
-268620 s390x: reconsider "long displacement" requirement
-268621 s390x: improve IR generation for XC
-268715 s390x: FLOGR is not universally available
-268792 == 267997 (valgrind seg faults on startup when compiled with Xcode 4)
-268930 s390x: MHY is not universally available
-269078 arm->IR: unhandled instruction SUB (SP minus immediate/register)
-269079 Support ptrace system call on ARM
-269144 missing "Bad option" error message
-269209 conditional load and store facility (z196)
-269354 Shift by zero on x86 can incorrectly clobber CC_NDEP
-269641 == 267997 (valgrind segfaults immediately (segmentation fault))
-269736 s390x: minor code generation tweaks
-269778 == 272986 (valgrind.h: swap roles of VALGRIND_DO_CLIENT_REQUEST() ..)
-269863 s390x: remove unused function parameters
-269864 s390x: tweak s390_emit_load_cc
-269884 == 250101 (overhead for huge blocks exhausts space too soon)
-270082 s390x: Make sure to point the PSW address to the next address on SIGILL
-270115 s390x: rewrite some testcases
-270309 == 267997 (valgrind crash on startup)
-270320 add support for Linux FIOQSIZE ioctl() call
-270326 segfault while trying to sanitize the environment passed to execle
-270794 IBM POWER7 support patch causes regression in none/tests
-270851 IBM POWER7 fcfidus instruction causes memcheck to fail
-270856 IBM POWER7 xsnmaddadp instruction causes memcheck to fail on 32bit app
-270925 hyper-optimized strspn() in /lib64/libc-2.13.so needs fix
-270959 s390x: invalid use of R0 as base register
-271042 VSX configure check fails when it should not
-271043 Valgrind build fails with assembler error on ppc64 with binutils 2.21
-271259 s390x: fix code confusion
-271337 == 267997 (Valgrind segfaults on MacOS X)
-271385 s390x: Implement Ist_MBE
-271501 s390x: misc cleanups
-271504 s390x: promote likely and unlikely
-271579 ppc: using wrong enum type
-271615 unhandled instruction "popcnt" (arch=amd10h)
-271730 Fix bug when checking ioctls: duplicate check
-271776 s390x: provide STFLE instruction support
-271779 s390x: provide clock instructions like STCK
-271799 Darwin: ioctls without an arg report a memory error
-271820 arm: fix type confusion
-271917 pthread_cond_timedwait failure leads to not-locked false positive
-272067 s390x: fix DISP20 macro
-272615 A typo in debug output in mc_leakcheck.c
-272661 callgrind_annotate chokes when run from paths containing regex chars
-272893 amd64->IR: 0x66 0xF 0x38 0x2B 0xC1 0x66 0xF 0x7F == (closed as dup)
-272955 Unhandled syscall error for pwrite64 on ppc64 arch
-272967 make documentation build-system more robust
-272986 Fix gcc-4.6 warnings with valgrind.h
-273318 amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 (missing PCMPxSTRx case)
-273318 unhandled PCMPxSTRx case: vex amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38
-273431 valgrind segfaults in evalCfiExpr (debuginfo.c:2039)
-273465 Callgrind: jumps.c:164 (new_jcc): Assertion '(0 <= jmp) && ...'
-273536 Build error: multiple definition of `vgDrd_pthread_cond_initializer'
-273640 ppc64-linux: unhandled syscalls setresuid(164) and setresgid(169)
-273729 == 283000 (Illegal opcode for SSE2 "roundsd" instruction)
-273778 exp-ptrcheck: unhandled sysno == 259
-274089 exp-ptrcheck: unhandled sysno == 208
-274378 s390x: Various dispatcher tweaks
-274447 WARNING: unhandled syscall: 340
-274776 amd64->IR: 0x66 0xF 0x38 0x2B 0xC5 0x66
-274784 == 267997 (valgrind ls -l results in Segmentation Fault)
-274926 valgrind does not build against linux-3
-275148 configure FAIL with glibc-2.14
-275151 Fedora 15 / glibc-2.14 'make regtest' FAIL
-275168 Make Valgrind work for MacOSX 10.7 Lion
-275212 == 275284 (lots of false positives from __memcpy_ssse3_back et al)
-275278 valgrind does not build on Linux kernel 3.0.* due to silly
-275284 Valgrind memcpy/memmove redirection stopped working in glibc 2.14/x86_64
-275308 Fix implementation for ppc64 fres instruc
-275339 s390x: fix testcase compile warnings
-275517 s390x: Provide support for CKSM instruction
-275710 s390x: get rid of redundant address mode calculation
-275815 == 247894 (Valgrind doesn't know about Linux readahead(2) syscall)
-275852 == 250101 (valgrind uses all swap space and is killed)
-276784 Add support for IBM Power ISA 2.06 -- stage 3
-276987 gdbsrv: fix tests following recent commits
-277045 Valgrind crashes with unhandled DW_OP_ opcode 0x2a
-277199 The test_isa_2_06_part1.c in none/tests/ppc64 should be a symlink
-277471 Unhandled syscall: 340
-277610 valgrind crashes in VG_(lseek)(core_fd, phdrs[idx].p_offset, ...)
-277653 ARM: support Thumb2 PLD instruction
-277663 ARM: NEON float VMUL by scalar incorrect
-277689 ARM: tests for VSTn with register post-index are broken
-277694 ARM: BLX LR instruction broken in ARM mode
-277780 ARM: VMOV.F32 (immediate) instruction is broken
-278057 fuse filesystem syscall deadlocks
-278078 Unimplemented syscall 280 on ppc32
-278349 F_GETPIPE_SZ and F_SETPIPE_SZ Linux fcntl commands
-278454 VALGRIND_STACK_DEREGISTER has wrong output type
-278502 == 275284 (Valgrind confuses memcpy() and memmove())
-278892 gdbsrv: factorize gdb version handling, fix doc and typos
-279027 Support for MVCL and CLCL instruction
-279027 s390x: Provide support for CLCL and MVCL instructions
-279062 Remove a redundant check in the insn selector for ppc.
-279071 JDK creates PTEST with redundant REX.W prefix
-279212 gdbsrv: add monitor cmd v.info scheduler.
-279378 exp-ptrcheck: the 'impossible' happened on mkfifo call
-279698 memcheck discards valid-bits for packuswb
-279795 memcheck reports uninitialised values for mincore on amd64
-279994 Add support for IBM Power ISA 2.06 -- stage 3
-280083 mempolicy syscall check errors
-280290 vex amd64->IR: 0x66 0xF 0x38 0x28 0xC1 0x66 0xF 0x6F
-280710 s390x: config files for nightly builds
-280757 /tmp dir still used by valgrind even if TMPDIR is specified
-280965 Valgrind breaks fcntl locks when program does mmap
-281138 WARNING: unhandled syscall: 340
-281241 == 275168 (valgrind useless on Macos 10.7.1 Lion)
-281304 == 275168 (Darwin: dyld "cannot load inserted library")
-281305 == 275168 (unhandled syscall: unix:357 on Darwin 11.1)
-281468 s390x: handle do_clone and gcc clones in call traces
-281488 ARM: VFP register corruption
-281828 == 275284 (false memmove warning: "Source and destination overlap")
-281883 s390x: Fix system call wrapper for "clone".
-282105 generalise 'reclaimSuperBlock' to also reclaim splittable superblock
-282112 Unhandled instruction bytes: 0xDE 0xD9 0x9B 0xDF (fcompp)
-282238 SLES10: make check fails
-282979 strcasestr needs replacement with recent(>=2.12) glibc
-283000 vex amd64->IR: 0x66 0xF 0x3A 0xA 0xC0 0x9 0xF3 0xF
-283243 Regression in ppc64 memcheck tests
-283325 == 267997 (Darwin: V segfaults on startup when built with Xcode 4.0)
-283427 re-connect epoll_pwait syscall on ARM linux
-283600 gdbsrv: android: port vgdb.c
-283709 none/tests/faultstatus needs to account for page size
-284305 filter_gdb needs enhancement to work on ppc64
-284384 clang 3.1 -Wunused-value warnings in valgrind.h, memcheck.h
-284472 Thumb2 ROR.W encoding T2 not implemented
-284621 XML-escape process command line in XML output
-n-i-bz cachegrind/callgrind: handle CPUID information for Core iX Intel CPUs
- that have non-power-of-2 sizes (also AMDs)
-n-i-bz don't be spooked by libraries mashed by elfhack
-n-i-bz don't be spooked by libxul.so linked with gold
-n-i-bz improved checking for VALGRIND_CHECK_MEM_IS_DEFINED
-
-(3.7.0-TEST1: 27 October 2011, vex r2228, valgrind r12245)
-(3.7.0.RC1: 1 November 2011, vex r2231, valgrind r12257)
-(3.7.0: 5 November 2011, vex r2231, valgrind r12258)
-
-
-
-Release 3.6.1 (16 February 2011)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.6.1 is a bug fix release. It adds support for some SSE4
-instructions that were omitted in 3.6.0 due to lack of time. Initial
-support for glibc-2.13 has been added. A number of bugs causing
-crashing or assertion failures have been fixed.
-
-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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
-
-188572 Valgrind on Mac should suppress setenv() mem leak
-194402 vex amd64->IR: 0x48 0xF 0xAE 0x4 (proper FX{SAVE,RSTOR} support)
-210481 vex amd64->IR: Assertion `sz == 2 || sz == 4' failed (REX.W POPQ)
-246152 callgrind internal error after pthread_cancel on 32 Bit Linux
-250038 ppc64: Altivec LVSR and LVSL instructions fail their regtest
-254420 memory pool tracking broken
-254957 Test code failing to compile due to changes in memcheck.h
-255009 helgrind/drd: crash on chmod with invalid parameter
-255130 readdwarf3.c parse_type_DIE confused by GNAT Ada types
-255355 helgrind/drd: crash on threaded programs doing fork
-255358 == 255355
-255418 (SSE4.x) rint call compiled with ICC
-255822 --gen-suppressions can create invalid files: "too many callers [...]"
-255888 closing valgrindoutput tag outputted to log-stream on error
-255963 (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x9 0xDB 0x0 (ROUNDPD)
-255966 Slowness when using mempool annotations
-256387 vex x86->IR: 0xD4 0xA 0x2 0x7 (AAD and AAM)
-256600 super-optimized strcasecmp() false positive
-256669 vex amd64->IR: Unhandled LOOPNEL insn on amd64
-256968 (SSE4.x) vex amd64->IR: 0x66 0xF 0x38 0x10 0xD3 0x66 (BLENDVPx)
-257011 (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0xE 0xFD 0xA0 (PBLENDW)
-257063 (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x8 0xC0 0x0 (ROUNDPS)
-257276 Missing case in memcheck --track-origins=yes
-258870 (SSE4.x) Add support for EXTRACTPS SSE 4.1 instruction
-261966 (SSE4.x) support for CRC32B and CRC32Q is lacking (also CRC32{W,L})
-262985 VEX regression in valgrind 3.6.0 in handling PowerPC VMX
-262995 (SSE4.x) crash when trying to valgrind gcc-snapshot (PCMPxSTRx $0)
-263099 callgrind_annotate counts Ir improperly [...]
-263877 undefined coprocessor instruction on ARMv7
-265964 configure FAIL with glibc-2.13
-n-i-bz Fix compile error w/ icc-12.x in guest_arm_toIR.c
-n-i-bz Docs: fix bogus descriptions for VALGRIND_CREATE_BLOCK et al
-n-i-bz Massif: don't assert on shmat() with --pages-as-heap=yes
-n-i-bz Bug fixes and major speedups for the exp-DHAT space profiler
-n-i-bz DRD: disable --free-is-write due to implementation difficulties
-
-(3.6.1: 16 February 2011, vex r2103, valgrind r11561).
-
-
-
-Release 3.6.0 (21 October 2010)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.6.0 is a feature release with many significant improvements and the
-usual collection of bug fixes.
-
-This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
-PPC64/Linux, X86/Darwin and AMD64/Darwin. Support for recent distros
-and toolchain components (glibc 2.12, gcc 4.5, OSX 10.6) has been added.
-
- -------------------------
-
-Here are some highlights. Details are shown further down:
-
-* Support for ARM/Linux.
-
-* Support for recent Linux distros: Ubuntu 10.10 and Fedora 14.
-
-* Support for Mac OS X 10.6, both 32- and 64-bit executables.
-
-* Support for the SSE4.2 instruction set.
-
-* Enhancements to the Callgrind profiler, including the ability to
- handle CPUs with three levels of cache.
-
-* A new experimental heap profiler, DHAT.
-
-* A huge number of bug fixes and small enhancements.
-
- -------------------------
-
-Here are details of the above changes, together with descriptions of
-many other changes, and a list of fixed bugs.
-
-* ================== PLATFORM CHANGES =================
-
-* Support for ARM/Linux. Valgrind now runs on ARMv7 capable CPUs
- running Linux. It is known to work on Ubuntu 10.04, Ubuntu 10.10,
- and Maemo 5, so you can run Valgrind on your Nokia N900 if you want.
-
- This requires a CPU capable of running the ARMv7-A instruction set
- (Cortex A5, A8 and A9). Valgrind provides fairly complete coverage
- of the user space instruction set, including ARM and Thumb integer
- code, VFPv3, NEON and V6 media instructions. The Memcheck,
- Cachegrind and Massif tools work properly; other tools work to
- varying degrees.
-
-* Support for recent Linux distros (Ubuntu 10.10 and Fedora 14), along
- with support for recent releases of the underlying toolchain
- components, notably gcc-4.5 and glibc-2.12.
-
-* Support for Mac OS X 10.6, both 32- and 64-bit executables. 64-bit
- support also works much better on OS X 10.5, and is as solid as
- 32-bit support now.
-
-* Support for the SSE4.2 instruction set. SSE4.2 is supported in
- 64-bit mode. In 32-bit mode, support is only available up to and
- including SSSE3. Some exceptions: SSE4.2 AES instructions are not
- supported in 64-bit mode, and 32-bit mode does in fact support the
- bare minimum SSE4 instructions to needed to run programs on Mac OS X
- 10.6 on 32-bit targets.
-
-* Support for IBM POWER6 cpus has been improved. The Power ISA up to
- and including version 2.05 is supported.
-
-* ==================== TOOL CHANGES ====================
-
-* Cachegrind has a new processing script, cg_diff, which finds the
- difference between two profiles. It's very useful for evaluating
- the performance effects of a change in a program.
-
- Related to this change, the meaning of cg_annotate's (rarely-used)
- --threshold option has changed; this is unlikely to affect many
- people, if you do use it please see the user manual for details.
-
-* Callgrind now can do branch prediction simulation, similar to
- Cachegrind. In addition, it optionally can count the number of
- executed global bus events. Both can be used for a better
- approximation of a "Cycle Estimation" as derived event (you need to
- update the event formula in KCachegrind yourself).
-
-* Cachegrind and Callgrind now refer to the LL (last-level) cache
- rather than the L2 cache. This is to accommodate machines with
- three levels of caches -- if Cachegrind/Callgrind auto-detects the
- cache configuration of such a machine it will run the simulation as
- if the L2 cache isn't present. This means the results are less
- likely to match the true result for the machine, but
- Cachegrind/Callgrind's results are already only approximate, and
- should not be considered authoritative. The results are still
- useful for giving a general idea about a program's locality.
-
-* Massif has a new option, --pages-as-heap, which is disabled by
- default. When enabled, instead of tracking allocations at the level
- of heap blocks (as allocated with malloc/new/new[]), it instead
- tracks memory allocations at the level of memory pages (as mapped by
- mmap, brk, etc). Each mapped page is treated as its own block.
- Interpreting the page-level output is harder than the heap-level
- output, but this option is useful if you want to account for every
- byte of memory used by a program.
-
-* DRD has two new command-line options: --free-is-write and
- --trace-alloc. The former allows to detect reading from already freed
- memory, and the latter allows tracing of all memory allocations and
- deallocations.
-
-* DRD has several new annotations. Custom barrier implementations can
- now be annotated, as well as benign races on static variables.
-
-* DRD's happens before / happens after annotations have been made more
- powerful, so that they can now also be used to annotate e.g. a smart
- pointer implementation.
-
-* Helgrind's annotation set has also been drastically improved, so as
- to provide to users a general set of annotations to describe locks,
- semaphores, barriers and condition variables. Annotations to
- describe thread-safe reference counted heap objects have also been
- added.
-
-* Memcheck has a new command-line option, --show-possibly-lost, which
- is enabled by default. When disabled, the leak detector will not
- show possibly-lost blocks.
-
-* A new experimental heap profiler, DHAT (Dynamic Heap Analysis Tool),
- has been added. DHAT keeps track of allocated heap blocks, and also
- inspects every memory reference to see which block (if any) is being
- accessed. This gives a lot of insight into block lifetimes,
- utilisation, turnover, liveness, and the location of hot and cold
- fields. You can use DHAT to do hot-field profiling.
-
-* ==================== OTHER CHANGES ====================
-
-* Improved support for unfriendly self-modifying code: the extra
- overhead incurred by --smc-check=all has been reduced by
- approximately a factor of 5 as compared with 3.5.0.
-
-* Ability to show directory names for source files in error messages.
- This is combined with a flexible mechanism for specifying which
- parts of the paths should be shown. This is enabled by the new flag
- --fullpath-after.
-
-* A new flag, --require-text-symbol, which will stop the run if a
- specified symbol is not found it a given shared object when it is
- loaded into the process. This makes advanced working with function
- intercepting and wrapping safer and more reliable.
-
-* Improved support for the Valkyrie GUI, version 2.0.0. GUI output
- and control of Valgrind is now available for the tools Memcheck and
- Helgrind. XML output from Valgrind is available for Memcheck,
- Helgrind and exp-Ptrcheck.
-
-* More reliable stack unwinding on amd64-linux, particularly in the
- presence of function wrappers, and with gcc-4.5 compiled code.
-
-* Modest scalability (performance improvements) for massive
- long-running applications, particularly for those with huge amounts
- of code.
-
-* Support for analyzing programs running under Wine with has been
- improved. The header files <valgrind/valgrind.h>,
- <valgrind/memcheck.h> and <valgrind/drd.h> can now be used in
- Windows-programs compiled with MinGW or one of the Microsoft Visual
- Studio compilers.
-
-* A rare but serious error in the 64-bit x86 CPU simulation was fixed.
- The 32-bit simulator was not affected. This did not occur often,
- but when it did would usually crash the program under test.
- Bug 245925.
-
-* A large number of bugs were fixed. These are shown below.
-
-* A number of bugs were investigated, and were candidates for fixing,
- but are not fixed in 3.6.0, due to lack of developer time. They may
- get fixed in later releases. They are:
-
- 194402 vex amd64->IR: 0x48 0xF 0xAE 0x4 0x24 0x49 (FXSAVE64)
- 212419 false positive "lock order violated" (A+B vs A)
- 213685 Undefined value propagates past dependency breaking instruction
- 216837 Incorrect instrumentation of NSOperationQueue on Darwin
- 237920 valgrind segfault on fork failure
- 242137 support for code compiled by LLVM-2.8
- 242423 Another unknown Intel cache config value
- 243232 Inconsistent Lock Orderings report with trylock
- 243483 ppc: callgrind triggers VEX assertion failure
- 243935 Helgrind: implementation of ANNOTATE_HAPPENS_BEFORE() is wrong
- 244677 Helgrind crash hg_main.c:616 (map_threads_lookup): Assertion
- 'thr' failed.
- 246152 callgrind internal error after pthread_cancel on 32 Bit Linux
- 249435 Analyzing wine programs with callgrind triggers a crash
- 250038 ppc64: Altivec lvsr and lvsl instructions fail their regtest
- 250065 Handling large allocations
- 250101 huge "free" memory usage due to m_mallocfree.c
- "superblocks fragmentation"
- 251569 vex amd64->IR: 0xF 0x1 0xF9 0x8B 0x4C 0x24 (RDTSCP)
- 252091 Callgrind on ARM does not detect function returns correctly
- 252600 [PATCH] Allow lhs to be a pointer for shl/shr
- 254420 memory pool tracking broken
- n-i-bz support for adding symbols for JIT generated code
-
-
-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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
-
-135264 dcbzl instruction missing
-142688 == 250799
-153699 Valgrind should report unaligned reads with movdqa
-180217 == 212335
-190429 Valgrind reports lost of errors in ld.so
- with x86_64 2.9.90 glibc
-197266 valgrind appears to choke on the xmms instruction
- "roundsd" on x86_64
-197988 Crash when demangling very large symbol names
-202315 unhandled syscall: 332 (inotify_init1)
-203256 Add page-level profiling to Massif
-205093 dsymutil=yes needs quotes, locking (partial fix)
-205241 Snow Leopard 10.6 support (partial fix)
-206600 Leak checker fails to upgrade indirect blocks when their
- parent becomes reachable
-210935 port valgrind.h (not valgrind) to win32 so apps run under
- wine can make client requests
-211410 vex amd64->IR: 0x15 0xFF 0xFF 0x0 0x0 0x89
- within Linux ip-stack checksum functions
-212335 unhandled instruction bytes: 0xF3 0xF 0xBD 0xC0
- (lzcnt %eax,%eax)
-213685 Undefined value propagates past dependency breaking instruction
- (partial fix)
-215914 Valgrind inserts bogus empty environment variable
-217863 == 197988
-219538 adjtimex syscall wrapper wrong in readonly adjtime mode
-222545 shmat fails under valgind on some arm targets
-222560 ARM NEON support
-230407 == 202315
-231076 == 202315
-232509 Docs build fails with formatting inside <title></title> elements
-232793 == 202315
-235642 [PATCH] syswrap-linux.c: support evdev EVIOCG* ioctls
-236546 vex x86->IR: 0x66 0xF 0x3A 0xA
-237202 vex amd64->IR: 0xF3 0xF 0xB8 0xC0 0x49 0x3B
-237371 better support for VALGRIND_MALLOCLIKE_BLOCK
-237485 symlink (syscall 57) is not supported on Mac OS
-237723 sysno == 101 exp-ptrcheck: the 'impossible' happened:
- unhandled syscall
-238208 is_just_below_ESP doesn't take into account red-zone
-238345 valgrind passes wrong $0 when executing a shell script
-238679 mq_timedreceive syscall doesn't flag the reception buffer
- as "defined"
-238696 fcntl command F_DUPFD_CLOEXEC not supported
-238713 unhandled instruction bytes: 0x66 0xF 0x29 0xC6
-238713 unhandled instruction bytes: 0x66 0xF 0x29 0xC6
-238745 3.5.0 Make fails on PPC Altivec opcodes, though configure
- says "Altivec off"
-239992 vex amd64->IR: 0x48 0xF 0xC4 0xC1 0x0 0x48
-240488 == 197988
-240639 == 212335
-241377 == 236546
-241903 == 202315
-241920 == 212335
-242606 unhandled syscall: setegid (in Ptrcheck)
-242814 Helgrind "Impossible has happened" during
- QApplication::initInstance();
-243064 Valgrind attempting to read debug information from iso
-243270 Make stack unwinding in Valgrind wrappers more reliable
-243884 exp-ptrcheck: the 'impossible happened: unhandled syscall
- sysno = 277 (mq_open)
-244009 exp-ptrcheck unknown syscalls in analyzing lighttpd
-244493 ARM VFP d16-d31 registers support
-244670 add support for audit_session_self syscall on Mac OS 10.6
-244921 The xml report of helgrind tool is not well format
-244923 In the xml report file, the <preamble> not escape the
- xml char, eg '<','&','>'
-245535 print full path names in plain text reports
-245925 x86-64 red zone handling problem
-246258 Valgrind not catching integer underruns + new [] s
-246311 reg/reg cmpxchg doesn't work on amd64
-246549 unhandled syscall unix:277 while testing 32-bit Darwin app
-246888 Improve Makefile.vex.am
-247510 [OS X 10.6] Memcheck reports unaddressable bytes passed
- to [f]chmod_extended
-247526 IBM POWER6 (ISA 2.05) support is incomplete
-247561 Some leak testcases fails due to reachable addresses in
- caller save regs
-247875 sizeofIRType to handle Ity_I128
-247894 [PATCH] unhandled syscall sys_readahead
-247980 Doesn't honor CFLAGS passed to configure
-248373 darwin10.supp is empty in the trunk
-248822 Linux FIBMAP ioctl has int parameter instead of long
-248893 [PATCH] make readdwarf.c big endianess safe to enable
- unwinding on big endian systems
-249224 Syscall 336 not supported (SYS_proc_info)
-249359 == 245535
-249775 Incorrect scheme for detecting NEON capabilities of host CPU
-249943 jni JVM init fails when using valgrind
-249991 Valgrind incorrectly declares AESKEYGENASSIST support
- since VEX r2011
-249996 linux/arm: unhandled syscall: 181 (__NR_pwrite64)
-250799 frexp$fenv_access_off function generates SIGILL
-250998 vex x86->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x2E
-251251 support pclmulqdq insn
-251362 valgrind: ARM: attach to debugger either fails or provokes
- kernel oops
-251674 Unhandled syscall 294
-251818 == 254550
-
-254257 Add support for debugfiles found by build-id
-254550 [PATCH] Implement DW_ATE_UTF (DWARF4)
-254646 Wrapped functions cause stack misalignment on OS X
- (and possibly Linux)
-254556 ARM: valgrinding anything fails with SIGSEGV for 0xFFFF0FA0
-
-(3.6.0: 21 October 2010, vex r2068, valgrind r11471).
-
-
-
-Release 3.5.0 (19 August 2009)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.5.0 is a feature release with many significant improvements and the
-usual collection of bug fixes. The main improvement is that Valgrind
-now works on Mac OS X.
-
-This release supports X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux
-and X86/Darwin. Support for recent distros and toolchain components
-(glibc 2.10, gcc 4.5) has been added.
-
- -------------------------
-
-Here is a short summary of the changes. Details are shown further
-down:
-
-* Support for Mac OS X (10.5.x).
-
-* Improvements and simplifications to Memcheck's leak checker.
-
-* Clarification and simplifications in various aspects of Valgrind's
- text output.
-
-* XML output for Helgrind and Ptrcheck.
-
-* Performance and stability improvements for Helgrind and DRD.
-
-* Genuinely atomic support for x86/amd64/ppc atomic instructions.
-
-* A new experimental tool, BBV, useful for computer architecture
- research.
-
-* Improved Wine support, including ability to read Windows PDB
- debuginfo.
-
- -------------------------
-
-Here are details of the above changes, followed by descriptions of
-many other minor changes, and a list of fixed bugs.
-
-
-* Valgrind now runs on Mac OS X. (Note that Mac OS X is sometimes
- called "Darwin" because that is the name of the OS core, which is the
- level that Valgrind works at.)
-
- Supported systems:
-
- - It requires OS 10.5.x (Leopard). Porting to 10.4.x is not planned
- because it would require work and 10.4 is only becoming less common.
-
- - 32-bit programs on x86 and AMD64 (a.k.a x86-64) machines are supported
- fairly well. For 10.5.x, 32-bit programs are the default even on
- 64-bit machines, so it handles most current programs.
-
- - 64-bit programs on x86 and AMD64 (a.k.a x86-64) machines are not
- officially supported, but simple programs at least will probably work.
- However, start-up is slow.
-
- - PowerPC machines are not supported.
-
- Things that don't work:
-
- - The Ptrcheck tool.
-
- - Objective-C garbage collection.
-
- - --db-attach=yes.
-
- - If you have Rogue Amoeba's "Instant Hijack" program installed,
- Valgrind will fail with a SIGTRAP at start-up. See
- https://bugs.kde.org/show_bug.cgi?id=193917 for details and a
- simple work-around.
-
- Usage notes:
-
- - You will likely find --dsymutil=yes a useful option, as error
- messages may be imprecise without it.
-
- - Mac OS X support is new and therefore will be less robust than the
- Linux support. Please report any bugs you find.
-
- - Threaded programs may run more slowly than on Linux.
-
- Many thanks to Greg Parker for developing this port over several years.
-
-
-* Memcheck's leak checker has been improved.
-
- - The results for --leak-check=summary now match the summary results
- for --leak-check=full. Previously they could differ because
- --leak-check=summary counted "indirectly lost" blocks and
- "suppressed" blocks as "definitely lost".
-
- - Blocks that are only reachable via at least one interior-pointer,
- but are directly pointed to by a start-pointer, were previously
- marked as "still reachable". They are now correctly marked as
- "possibly lost".
-
- - The default value for the --leak-resolution option has been
- changed from "low" to "high". In general, this means that more
- leak reports will be produced, but each leak report will describe
- fewer leaked blocks.
-
- - With --leak-check=full, "definitely lost" and "possibly lost"
- leaks are now considered as proper errors, ie. they are counted
- for the "ERROR SUMMARY" and affect the behaviour of
- --error-exitcode. These leaks are not counted as errors if
- --leak-check=summary is specified, however.
-
- - Documentation for the leak checker has been improved.
-
-
-* Various aspects of Valgrind's text output have changed.
-
- - Valgrind's start-up message has changed. It is shorter but also
- includes the command being run, which makes it easier to use
- --trace-children=yes. An example:
-
- - Valgrind's shut-down messages have also changed. This is most
- noticeable with Memcheck, where the leak summary now occurs before
- the error summary. This change was necessary to allow leaks to be
- counted as proper errors (see the description of the leak checker
- changes above for more details). This was also necessary to fix a
- longstanding bug in which uses of suppressions against leaks were
- not "counted", leading to difficulties in maintaining suppression
- files (see https://bugs.kde.org/show_bug.cgi?id=186790).
-
- - Behavior of -v has changed. In previous versions, -v printed out
- a mixture of marginally-user-useful information, and tool/core
- statistics. The statistics printing has now been moved to its own
- flag, --stats=yes. This means -v is less verbose and more likely
- to convey useful end-user information.
-
- - The format of some (non-XML) stack trace entries has changed a
- little. Previously there were six possible forms:
-
- 0x80483BF: really (a.c:20)
- 0x80483BF: really (in /foo/a.out)
- 0x80483BF: really
- 0x80483BF: (within /foo/a.out)
- 0x80483BF: ??? (a.c:20)
- 0x80483BF: ???
-
- The third and fourth of these forms have been made more consistent
- with the others. The six possible forms are now:
-
- 0x80483BF: really (a.c:20)
- 0x80483BF: really (in /foo/a.out)
- 0x80483BF: really (in ???)
- 0x80483BF: ??? (in /foo/a.out)
- 0x80483BF: ??? (a.c:20)
- 0x80483BF: ???
-
- Stack traces produced when --xml=yes is specified are different
- and unchanged.
-
-
-* Helgrind and Ptrcheck now support XML output, so they can be used
- from GUI tools. Also, the XML output mechanism has been
- overhauled.
-
- - The XML format has been overhauled and generalised, so it is more
- suitable for error reporting tools in general. The Memcheck
- specific aspects of it have been removed. The new format, which
- is an evolution of the old format, is described in
- docs/internals/xml-output-protocol4.txt.
-
- - Memcheck has been updated to use the new format.
-
- - Helgrind and Ptrcheck are now able to emit output in this format.
-
- - The XML output mechanism has been overhauled. XML is now output
- to its own file descriptor, which means that:
-
- * Valgrind can output text and XML independently.
-
- * The longstanding problem of XML output being corrupted by
- unexpected un-tagged text messages is solved.
-
- As before, the destination for text output is specified using
- --log-file=, --log-fd= or --log-socket=.
-
- As before, XML output for a tool is enabled using --xml=yes.
-
- Because there's a new XML output channel, the XML output
- destination is now specified by --xml-file=, --xml-fd= or
- --xml-socket=.
-
- Initial feedback has shown this causes some confusion. To
- clarify, the two envisaged usage scenarios are:
-
- (1) Normal text output. In this case, do not specify --xml=yes
- nor any of --xml-file=, --xml-fd= or --xml-socket=.
-
- (2) XML output. In this case, specify --xml=yes, and one of
- --xml-file=, --xml-fd= or --xml-socket= to select the XML
- destination, one of --log-file=, --log-fd= or --log-socket=
- to select the destination for any remaining text messages,
- and, importantly, -q.
-
- -q makes Valgrind completely silent on the text channel,
- except in the case of critical failures, such as Valgrind
- itself segfaulting, or failing to read debugging information.
- Hence, in this scenario, it suffices to check whether or not
- any output appeared on the text channel. If yes, then it is
- likely to be a critical error which should be brought to the
- attention of the user. If no (the text channel produced no
- output) then it can be assumed that the run was successful.
-
- This allows GUIs to make the critical distinction they need to
- make (did the run fail or not?) without having to search or
- filter the text output channel in any way.
-
- It is also recommended to use --child-silent-after-fork=yes in
- scenario (2).
-
-
-* Improvements and changes in Helgrind:
-
- - XML output, as described above
-
- - Checks for consistent association between pthread condition
- variables and their associated mutexes are now performed.
-
- - pthread_spinlock functions are supported.
-
- - Modest performance improvements.
-
- - Initial (skeletal) support for describing the behaviour of
- non-POSIX synchronisation objects through ThreadSanitizer
- compatible ANNOTATE_* macros.
-
- - More controllable tradeoffs between performance and the level of
- detail of "previous" accesses in a race. There are now three
- settings:
-
- * --history-level=full. This is the default, and was also the
- default in 3.4.x. It shows both stacks involved in a race, but
- requires a lot of memory and can be very slow in programs that
- do many inter-thread synchronisation events.
-
- * --history-level=none. This only shows the later stack involved
- in a race. This can be much faster than --history-level=full,
- but makes it much more difficult to find the other access
- involved in the race.
-
- The new intermediate setting is
-
- * --history-level=approx
-
- For the earlier (other) access, two stacks are presented. The
- earlier access is guaranteed to be somewhere in between the two
- program points denoted by those stacks. This is not as useful
- as showing the exact stack for the previous access (as per
- --history-level=full), but it is better than nothing, and it's
- almost as fast as --history-level=none.
-
-
-* New features and improvements in DRD:
-
- - The error messages printed by DRD are now easier to interpret.
- Instead of using two different numbers to identify each thread
- (Valgrind thread ID and DRD thread ID), DRD does now identify
- threads via a single number (the DRD thread ID). Furthermore
- "first observed at" information is now printed for all error
- messages related to synchronization objects.
-
- - Added support for named semaphores (sem_open() and sem_close()).
-
- - Race conditions between pthread_barrier_wait() and
- pthread_barrier_destroy() calls are now reported.
-
- - Added support for custom allocators through the macros
- VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
- in <valgrind/valgrind.h>). An alternative for these two macros is
- the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
- <valgrind/drd.h>).
-
- - Added support for annotating non-POSIX synchronization objects
- through several new ANNOTATE_*() macros.
-
- - OpenMP: added support for the OpenMP runtime (libgomp) included
- with gcc versions 4.3.0 and 4.4.0.
-
- - Faster operation.
-
- - Added two new command-line options (--first-race-only and
- --segment-merging-interval).
-
-
-* Genuinely atomic support for x86/amd64/ppc atomic instructions
-
- Valgrind will now preserve (memory-access) atomicity of LOCK-
- prefixed x86/amd64 instructions, and any others implying a global
- bus lock. Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.
-
- This means that Valgrinded processes will "play nicely" in
- situations where communication with other processes, or the kernel,
- is done through shared memory and coordinated with such atomic
- instructions. Prior to this change, such arrangements usually
- resulted in hangs, races or other synchronisation failures, because
- Valgrind did not honour atomicity of such instructions.
-
-
-* A new experimental tool, BBV, has been added. BBV generates basic
- block vectors for use with the SimPoint analysis tool, which allows
- a program's overall behaviour to be approximated by running only a
- fraction of it. This is useful for computer architecture
- researchers. You can run BBV by specifying --tool=exp-bbv (the
- "exp-" prefix is short for "experimental"). BBV was written by
- Vince Weaver.
-
-
-* Modestly improved support for running Windows applications under
- Wine. In particular, initial support for reading Windows .PDB debug
- information has been added.
-
-
-* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been
- added. It is similar to VALGRIND_COUNT_LEAKS but counts blocks
- instead of bytes.
-
-
-* The Valgrind client requests VALGRIND_PRINTF and
- VALGRIND_PRINTF_BACKTRACE have been changed slightly. Previously,
- the string was always printed immediately on its own line. Now, the
- string will be added to a buffer but not printed until a newline is
- encountered, or other Valgrind output is printed (note that for
- VALGRIND_PRINTF_BACKTRACE, the back-trace itself is considered
- "other Valgrind output"). This allows you to use multiple
- VALGRIND_PRINTF calls to build up a single output line, and also to
- print multiple output lines with a single request (by embedding
- multiple newlines in the string).
-
-
-* The graphs drawn by Massif's ms_print program have changed slightly:
-
- - The half-height chars '.' and ',' are no longer drawn, because
- they are confusing. The --y option can be used if the default
- y-resolution is not high enough.
-
- - Horizontal lines are now drawn after the top of a snapshot if
- there is a gap until the next snapshot. This makes it clear that
- the memory usage has not dropped to zero between snapshots.
-
-
-* Something that happened in 3.4.0, but wasn't clearly announced: the
- option --read-var-info=yes can be used by some tools (Memcheck,
- Helgrind and DRD). When enabled, it causes Valgrind to read DWARF3
- variable type and location information. This makes those tools
- start up more slowly and increases memory consumption, but
- descriptions of data addresses in error messages become more
- detailed.
-
-
-* exp-Omega, an experimental instantaneous leak-detecting tool, was
- disabled in 3.4.0 due to a lack of interest and maintenance,
- although the source code was still in the distribution. The source
- code has now been removed from the distribution. For anyone
- interested, the removal occurred in SVN revision r10247.
-
-
-* Some changes have been made to the build system.
-
- - VEX/ is now integrated properly into the build system. This means
- that dependency tracking within VEX/ now works properly, "make
- install" will work without requiring "make" before it, and
- parallel builds (ie. 'make -j') now work (previously a
- .NOTPARALLEL directive was used to serialize builds, ie. 'make -j'
- was effectively ignored).
-
- - The --with-vex configure option has been removed. It was of
- little use and removing it simplified the build system.
-
- - The location of some install files has changed. This should not
- affect most users. Those who might be affected:
-
- * For people who use Valgrind with MPI programs, the installed
- libmpiwrap.so library has moved from
- $(INSTALL)/<platform>/libmpiwrap.so to
- $(INSTALL)/libmpiwrap-<platform>.so.
-
- * For people who distribute standalone Valgrind tools, the
- installed libraries such as $(INSTALL)/<platform>/libcoregrind.a
- have moved to $(INSTALL)/libcoregrind-<platform>.a.
-
- These changes simplify the build system.
-
- - Previously, all the distributed suppression (*.supp) files were
- installed. Now, only default.supp is installed. This should not
- affect users as the other installed suppression files were not
- read; the fact that they were installed was a mistake.
-
-
-* KNOWN LIMITATIONS:
-
- - Memcheck is unusable with the Intel compiler suite version 11.1,
- when it generates code for SSE2-and-above capable targets. This
- is because of icc's use of highly optimised inlined strlen
- implementations. It causes Memcheck to report huge numbers of
- false errors even in simple programs. Helgrind and DRD may also
- have problems.
-
- Versions 11.0 and earlier may be OK, but this has not been
- properly tested.
-
-
-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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
-
-84303 How about a LockCheck tool?
-91633 dereference of null ptr in vgPlain_st_basetype
-97452 Valgrind doesn't report any pthreads problems
-100628 leak-check gets assertion failure when using
- VALGRIND_MALLOCLIKE_BLOCK on malloc()ed memory
-108528 NPTL pthread cleanup handlers not called
-110126 Valgrind 2.4.1 configure.in tramples CFLAGS
-110128 mallinfo is not implemented...
-110770 VEX: Generated files not always updated when making valgrind
-111102 Memcheck: problems with large (memory footprint) applications
-115673 Vex's decoder should never assert
-117564 False positive: Syscall param clone(child_tidptr) contains
- uninitialised byte(s)
-119404 executing ssh from inside valgrind fails
-133679 Callgrind does not write path names to sources with dwarf debug
- info
-135847 configure.in problem with non gnu compilers (and possible fix)
-136154 threads.c:273 (vgCallgrind_post_signal): Assertion
- '*(vgCallgrind_current_fn_stack.top) == 0' failed.
-136230 memcheck reports "possibly lost", should be "still reachable"
-137073 NULL arg to MALLOCLIKE_BLOCK causes crash
-137904 Valgrind reports a memory leak when using POSIX threads,
- while it shouldn't
-139076 valgrind VT_GETSTATE error
-142228 complaint of elf_dynamic_do_rela in trivial usage
-145347 spurious warning with USBDEVFS_REAPURB
-148441 (wine) can't find memory leak in Wine, win32 binary
- executable file.
-148742 Leak-check fails assert on exit
-149878 add (proper) check for calloc integer overflow
-150606 Call graph is broken when using callgrind control
-152393 leak errors produce an exit code of 0. I need some way to
- cause leak errors to result in a nonzero exit code.
-157154 documentation (leak-resolution doc speaks about num-callers
- def=4) + what is a loss record
-159501 incorrect handling of ALSA ioctls
-162020 Valgrinding an empty/zero-byte file crashes valgrind
-162482 ppc: Valgrind crashes while reading stabs information
-162718 x86: avoid segment selector 0 in sys_set_thread_area()
-163253 (wine) canonicaliseSymtab forgot some fields in DiSym
-163560 VEX/test_main.c is missing from valgrind-3.3.1
-164353 malloc_usable_size() doesn't return a usable size
-165468 Inconsistent formatting in memcheck manual -- please fix
-169505 main.c:286 (endOfInstr):
- Assertion 'ii->cost_offset == *cost_offset' failed
-177206 Generate default.supp during compile instead of configure
-177209 Configure valt_load_address based on arch+os
-177305 eventfd / syscall 323 patch lost
-179731 Tests fail to build because of inlining of non-local asm labels
-181394 helgrind: libhb_core.c:3762 (msm_write): Assertion
- 'ordxx == POrd_EQ || ordxx == POrd_LT' failed.
-181594 Bogus warning for empty text segment
-181707 dwarf doesn't require enumerations to have name
-185038 exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64
-185050 exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
- Assertion '!already_present' failed.
-185359 exp-ptrcheck: unhandled syscall getresuid()
-185794 "WARNING: unhandled syscall: 285" (fallocate) on x86_64
-185816 Valgrind is unable to handle debug info for files with split
- debug info that are prelinked afterwards
-185980 [darwin] unhandled syscall: sem_open
-186238 bbToIR_AMD64: disInstr miscalculated next %rip
-186507 exp-ptrcheck unhandled syscalls prctl, etc.
-186790 Suppression pattern used for leaks are not reported
-186796 Symbols with length>200 in suppression files are ignored
-187048 drd: mutex PTHREAD_PROCESS_SHARED attribute missinterpretation
-187416 exp-ptrcheck: support for __NR_{setregid,setreuid,setresuid}
-188038 helgrind: hg_main.c:926: mk_SHVAL_fail: the 'impossible' happened
-188046 bashisms in the configure script
-188127 amd64->IR: unhandled instruction bytes: 0xF0 0xF 0xB0 0xA
-188161 memcheck: --track-origins=yes asserts "mc_machine.c:672
- (get_otrack_shadow_offset_wrk): the 'impossible' happened."
-188248 helgrind: pthread_cleanup_push, pthread_rwlock_unlock,
- assertion fail "!lock->heldBy"
-188427 Add support for epoll_create1 (with patch)
-188530 Support for SIOCGSTAMPNS
-188560 Include valgrind.spec in the tarball
-188572 Valgrind on Mac should suppress setenv() mem leak
-189054 Valgrind fails to build because of duplicate non-local asm labels
-189737 vex amd64->IR: unhandled instruction bytes: 0xAC
-189762 epoll_create syscall not handled (--tool=exp-ptrcheck)
-189763 drd assertion failure: s_threadinfo[tid].is_recording
-190219 unhandled syscall: 328 (x86-linux)
-190391 dup of 181394; see above
-190429 Valgrind reports lots of errors in ld.so with x86_64 2.9.90 glibc
-190820 No debug information on powerpc-linux
-191095 PATCH: Improve usbdevfs ioctl handling
-191182 memcheck: VALGRIND_LEAK_CHECK quadratic when big nr of chunks
- or big nr of errors
-191189 --xml=yes should obey --gen-suppressions=all
-191192 syslog() needs a suppression on macosx
-191271 DARWIN: WARNING: unhandled syscall: 33554697 a.k.a.: 265
-191761 getrlimit on MacOSX
-191992 multiple --fn-skip only works sometimes; dependent on order
-192634 V. reports "aspacem sync_check_mapping_callback:
- segment mismatch" on Darwin
-192954 __extension__ missing on 2 client requests
-194429 Crash at start-up with glibc-2.10.1 and linux-2.6.29
-194474 "INSTALL" file has different build instructions than "README"
-194671 Unhandled syscall (sem_wait?) from mac valgrind
-195069 memcheck: reports leak (memory still reachable) for
- printf("%d', x)
-195169 drd: (vgDrd_barrier_post_wait):
- Assertion 'r->sg[p->post_iteration]' failed.
-195268 valgrind --log-file doesn't accept ~/...
-195838 VEX abort: LibVEX_N_SPILL_BYTES too small for CPUID boilerplate
-195860 WARNING: unhandled syscall: unix:223
-196528 need a error suppression for pthread_rwlock_init under os x?
-197227 Support aio_* syscalls on Darwin
-197456 valgrind should reject --suppressions=(directory)
-197512 DWARF2 CFI reader: unhandled CFI instruction 0:10
-197591 unhandled syscall 27 (mincore)
-197793 Merge DCAS branch to the trunk == 85756, 142103
-197794 Avoid duplicate filenames in Vex
-197898 make check fails on current SVN
-197901 make check fails also under exp-ptrcheck in current SVN
-197929 Make --leak-resolution=high the default
-197930 Reduce spacing between leak reports
-197933 Print command line of client at start-up, and shorten preamble
-197966 unhandled syscall 205 (x86-linux, --tool=exp-ptrcheck)
-198395 add BBV to the distribution as an experimental tool
-198624 Missing syscalls on Darwin: 82, 167, 281, 347
-198649 callgrind_annotate doesn't cumulate counters
-199338 callgrind_annotate sorting/thresholds are broken for all but Ir
-199977 Valgrind complains about an unrecognized instruction in the
- atomic_incs test program
-200029 valgrind isn't able to read Fedora 12 debuginfo
-200760 darwin unhandled syscall: unix:284
-200827 DRD doesn't work on Mac OS X
-200990 VG_(read_millisecond_timer)() does not work correctly
-201016 Valgrind does not support pthread_kill() on Mac OS
-201169 Document --read-var-info
-201323 Pre-3.5.0 performance sanity checking
-201384 Review user manual for the 3.5.0 release
-201585 mfpvr not implemented on ppc
-201708 tests failing because x86 direction flag is left set
-201757 Valgrind doesn't handle any recent sys_futex additions
-204377 64-bit valgrind can not start a shell script
- (with #!/path/to/shell) if the shell is a 32-bit executable
-n-i-bz drd: fixed assertion failure triggered by mutex reinitialization.
-n-i-bz drd: fixed a bug that caused incorrect messages to be printed
- about memory allocation events with memory access tracing enabled
-n-i-bz drd: fixed a memory leak triggered by vector clock deallocation
-
-(3.5.0: 19 Aug 2009, vex r1913, valgrind r10846).
-
-
-
-Release 3.4.1 (28 February 2009)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.4.1 is a bug-fix release that fixes some regressions and assertion
-failures in debug info reading in 3.4.0, most notably incorrect stack
-traces on amd64-linux on older (glibc-2.3 based) systems. Various
-other debug info problems are also fixed. A number of bugs in the
-exp-ptrcheck tool introduced in 3.4.0 have been fixed.
-
-In view of the fact that 3.4.0 contains user-visible regressions
-relative to 3.3.x, upgrading to 3.4.1 is recommended. Packagers are
-encouraged to ship 3.4.1 in preference to 3.4.0.
-
-The fixed bugs are as follows. 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
-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
-developers (or mailing lists) directly -- bugs that are not entered
-into bugzilla tend to get forgotten about or ignored.
-
-n-i-bz Fix various bugs reading icc-11 generated debug info
-n-i-bz Fix various bugs reading gcc-4.4 generated debug info
-n-i-bz Preliminary support for glibc-2.10 / Fedora 11
-n-i-bz Cachegrind and Callgrind: handle non-power-of-two cache sizes,
- so as to support (eg) 24k Atom D1 and Core2 with 3/6/12MB L2.
-179618 exp-ptrcheck crashed / exit prematurely
-179624 helgrind: false positive races with pthread_create and
- recv/open/close/read
-134207 pkg-config output contains @VG_PLATFORM@
-176926 floating point exception at valgrind startup with PPC 440EPX
-181594 Bogus warning for empty text segment
-173751 amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant rex prefixes)
-181707 Dwarf3 doesn't require enumerations to have name
-185038 exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64
-185050 exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
- Assertion '!already_present' failed.
-185359 exp-ptrcheck unhandled syscall getresuid()
-
-(3.4.1.RC1: 24 Feb 2008, vex r1884, valgrind r9253).
-(3.4.1: 28 Feb 2008, vex r1884, valgrind r9293).
-
-
-
-Release 3.4.0 (2 January 2009)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.4.0 is a feature release with many significant improvements and the
-usual collection of bug fixes. This release supports X86/Linux,
-AMD64/Linux, PPC32/Linux and PPC64/Linux. Support for recent distros
-(using gcc 4.4, glibc 2.8 and 2.9) has been added.
-
-3.4.0 brings some significant tool improvements. Memcheck can now
-report the origin of uninitialised values, the thread checkers
-Helgrind and DRD are much improved, and we have a new experimental
-tool, exp-Ptrcheck, which is able to detect overruns of stack and
-global arrays. In detail:
-
-* Memcheck is now able to track the origin of uninitialised values.
- When it reports an uninitialised value error, it will try to show
- the origin of the value, as either a heap or stack allocation.
- Origin tracking is expensive and so is not enabled by default. To
- use it, specify --track-origins=yes. Memcheck's speed will be
- essentially halved, and memory usage will be significantly
- increased. Nevertheless it can drastically reduce the effort
- required to identify the root cause of uninitialised value errors,
- and so is often a programmer productivity win, despite running more
- slowly.
-
-* A version (1.4.0) of the Valkyrie GUI, that works with Memcheck in
- 3.4.0, will be released shortly.
-
-* Helgrind's race detection algorithm has been completely redesigned
- and reimplemented, to address usability and scalability concerns:
-
- - The new algorithm has a lower false-error rate: it is much less
- likely to report races that do not really exist.
-
- - Helgrind will display full call stacks for both accesses involved
- in a race. This makes it easier to identify the root causes of
- races.
-
- - Limitations on the size of program that can run have been removed.
-
- - Performance has been modestly improved, although that is very
- workload-dependent.
-
- - Direct support for Qt4 threading has been added.
-
- - pthread_barriers are now directly supported.
-
- - Helgrind works well on all supported Linux targets.
-
-* The DRD thread debugging tool has seen major improvements:
-
- - Greatly improved performance and significantly reduced memory
- usage.
-
- - Support for several major threading libraries (Boost.Thread, Qt4,
- glib, OpenMP) has been added.
-
- - Support for atomic instructions, POSIX semaphores, barriers and
- reader-writer locks has been added.
-
- - Works now on PowerPC CPUs too.
-
- - Added support for printing thread stack usage at thread exit time.
-
- - Added support for debugging lock contention.
-
- - Added a manual for Drd.
-
-* A new experimental tool, exp-Ptrcheck, has been added. Ptrcheck
- checks for misuses of pointers. In that sense it is a bit like
- Memcheck. However, Ptrcheck can do things Memcheck can't: it can
- detect overruns of stack and global arrays, it can detect
- arbitrarily far out-of-bounds accesses to heap blocks, and it can
- detect accesses heap blocks that have been freed a very long time
- ago (millions of blocks in the past).
-
- Ptrcheck currently works only on x86-linux and amd64-linux. To use
- it, use --tool=exp-ptrcheck. A simple manual is provided, as part
- of the main Valgrind documentation. As this is an experimental
- tool, we would be particularly interested in hearing about your
- experiences with it.
-
-* exp-Omega, an experimental instantaneous leak-detecting tool, is no
- longer built by default, although the code remains in the repository
- and the tarball. This is due to three factors: a perceived lack of
- users, a lack of maintenance, and concerns that it may not be
- possible to achieve reliable operation using the existing design.
-
-* As usual, support for the latest Linux distros and toolchain
- components has been added. It should work well on Fedora Core 10,
- OpenSUSE 11.1 and Ubuntu 8.10. gcc-4.4 (in its current pre-release
- state) is supported, as is glibc-2.9. The C++ demangler has been
- updated so as to work well with C++ compiled by even the most recent
- g++'s.
-
-* You can now use frame-level wildcards in suppressions. This was a
- frequently-requested enhancement. A line "..." in a suppression now
- matches zero or more frames. This makes it easier to write
- suppressions which are precise yet insensitive to changes in
- inlining behaviour.
-
-* 3.4.0 adds support on x86/amd64 for the SSSE3 instruction set.
-
-* Very basic support for IBM Power6 has been added (64-bit processes only).
-
-* Valgrind is now cross-compilable. For example, it is possible to
- cross compile Valgrind on an x86/amd64-linux host, so that it runs
- on a ppc32/64-linux target.
-
-* You can set the main thread's stack size at startup using the
- new --main-stacksize= flag (subject of course to ulimit settings).
- This is useful for running apps that need a lot of stack space.
-
-* The limitation that you can't use --trace-children=yes together
- with --db-attach=yes has been removed.
-
-* The following bugs have been fixed. 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 (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
- mailing the developers (or mailing lists) directly.
-
- n-i-bz Make return types for some client requests 64-bit clean
- n-i-bz glibc 2.9 support
- n-i-bz ignore unsafe .valgrindrc's (CVE-2008-4865)
- n-i-bz MPI_Init(0,0) is valid but libmpiwrap.c segfaults
- n-i-bz Building in an env without gdb gives bogus gdb attach
- 92456 Tracing the origin of uninitialised memory
- 106497 Valgrind does not demangle some C++ template symbols
- 162222 ==106497
- 151612 Suppression with "..." (frame-level wildcards in .supp files)
- 156404 Unable to start oocalc under memcheck on openSUSE 10.3 (64-bit)
- 159285 unhandled syscall:25 (stime, on x86-linux)
- 159452 unhandled ioctl 0x8B01 on "valgrind iwconfig"
- 160954 ppc build of valgrind crashes with illegal instruction (isel)
- 160956 mallinfo implementation, w/ patch
- 162092 Valgrind fails to start gnome-system-monitor
- 162819 malloc_free_fill test doesn't pass on glibc2.8 x86
- 163794 assertion failure with "--track-origins=yes"
- 163933 sigcontext.err and .trapno must be set together
- 163955 remove constraint !(--db-attach=yes && --trace-children=yes)
- 164476 Missing kernel module loading system calls
- 164669 SVN regression: mmap() drops posix file locks
- 166581 Callgrind output corruption when program forks
- 167288 Patch file for missing system calls on Cell BE
- 168943 unsupported scas instruction pentium
- 171645 Unrecognised instruction (MOVSD, non-binutils encoding)
- 172417 x86->IR: 0x82 ...
- 172563 amd64->IR: 0xD9 0xF5 - fprem1
- 173099 .lds linker script generation error
- 173177 [x86_64] syscalls: 125/126/179 (capget/capset/quotactl)
- 173751 amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant prefixes)
- 174532 == 173751
- 174908 --log-file value not expanded correctly for core file
- 175044 Add lookup_dcookie for amd64
- 175150 x86->IR: 0xF2 0xF 0x11 0xC1 (movss non-binutils encoding)
-
-Developer-visible changes:
-
-* Valgrind's debug-info reading machinery has been majorly overhauled.
- It can now correctly establish the addresses for ELF data symbols,
- which is something that has never worked properly before now.
-
- Also, Valgrind can now read DWARF3 type and location information for
- stack and global variables. This makes it possible to use the
- framework to build tools that rely on knowing the type and locations
- of stack and global variables, for example exp-Ptrcheck.
-
- Reading of such information is disabled by default, because most
- tools don't need it, and because it is expensive in space and time.
- However, you can force Valgrind to read it, using the
- --read-var-info=yes flag. Memcheck, Helgrind and DRD are able to
- make use of such information, if present, to provide source-level
- descriptions of data addresses in the error messages they create.
-
-(3.4.0.RC1: 24 Dec 2008, vex r1878, valgrind r8882).
-(3.4.0: 3 Jan 2009, vex r1878, valgrind r8899).
-Release 3.3.1 (4 June 2008)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.3.1 fixes a bunch of bugs in 3.3.0, adds support for glibc-2.8 based
-systems (openSUSE 11, Fedora Core 9), improves the existing glibc-2.7
-support, and adds support for the SSSE3 (Core 2) instruction set.
-
-3.3.1 will likely be the last release that supports some very old
-systems. In particular, the next major release, 3.4.0, will drop
-support for the old LinuxThreads threading library, and for gcc
-versions prior to 3.0.
-
-The fixed bugs are as follows. 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
-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
-developers (or mailing lists) directly -- bugs that are not entered
-into bugzilla tend to get forgotten about or ignored.
-
-n-i-bz Massif segfaults at exit
-n-i-bz Memcheck asserts on Altivec code
-n-i-bz fix sizeof bug in Helgrind
-n-i-bz check fd on sys_llseek
-n-i-bz update syscall lists to kernel 2.6.23.1
-n-i-bz support sys_sync_file_range
-n-i-bz handle sys_sysinfo, sys_getresuid, sys_getresgid on ppc64-linux
-n-i-bz intercept memcpy in 64-bit ld.so's
-n-i-bz Fix wrappers for sys_{futimesat,utimensat}
-n-i-bz Minor false-error avoidance fixes for Memcheck
-n-i-bz libmpiwrap.c: add a wrapper for MPI_Waitany
-n-i-bz helgrind support for glibc-2.8
-n-i-bz partial fix for mc_leakcheck.c:698 assert:
- 'lc_shadows[i]->data + lc_shadows[i] ...
-n-i-bz Massif/Cachegrind output corruption when programs fork
-n-i-bz register allocator fix: handle spill stores correctly
-n-i-bz add support for PA6T PowerPC CPUs
-126389 vex x86->IR: 0xF 0xAE (FXRSTOR)
-158525 ==126389
-152818 vex x86->IR: 0xF3 0xAC (repz lodsb)
-153196 vex x86->IR: 0xF2 0xA6 (repnz cmpsb)
-155011 vex x86->IR: 0xCF (iret)
-155091 Warning [...] unhandled DW_OP_ opcode 0x23
-156960 ==155901
-155528 support Core2/SSSE3 insns on x86/amd64
-155929 ms_print fails on massif outputs containing long lines
-157665 valgrind fails on shmdt(0) after shmat to 0
-157748 support x86 PUSHFW/POPFW
-158212 helgrind: handle pthread_rwlock_try{rd,wr}lock.
-158425 sys_poll incorrectly emulated when RES==0
-158744 vex amd64->IR: 0xF0 0x41 0xF 0xC0 (xaddb)
-160907 Support for a couple of recent Linux syscalls
-161285 Patch -- support for eventfd() syscall
-161378 illegal opcode in debug libm (FUCOMPP)
-160136 ==161378
-161487 number of suppressions files is limited to 10
-162386 ms_print typo in milliseconds time unit for massif
-161036 exp-drd: client allocated memory was never freed
-162663 signalfd_wrapper fails on 64bit linux
-
-(3.3.1.RC1: 2 June 2008, vex r1854, valgrind r8169).
-(3.3.1: 4 June 2008, vex r1854, valgrind r8180).
-
-
-
-Release 3.3.0 (7 December 2007)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.3.0 is a feature release with many significant improvements and the
-usual collection of bug fixes. This release supports X86/Linux,
-AMD64/Linux, PPC32/Linux and PPC64/Linux. Support for recent distros
-(using gcc 4.3, glibc 2.6 and 2.7) has been added.
-
-The main excitement in 3.3.0 is new and improved tools. Helgrind
-works again, Massif has been completely overhauled and much improved,
-Cachegrind now does branch-misprediction profiling, and a new category
-of experimental tools has been created, containing two new tools:
-Omega and DRD. There are many other smaller improvements. In detail:
-
-- Helgrind has been completely overhauled and works for the first time
- since Valgrind 2.2.0. Supported functionality is: detection of
- misuses of the POSIX PThreads API, detection of potential deadlocks
- resulting from cyclic lock dependencies, and detection of data
- races. Compared to the 2.2.0 Helgrind, the race detection algorithm
- has some significant improvements aimed at reducing the false error
- rate. Handling of various kinds of corner cases has been improved.
- Efforts have been made to make the error messages easier to
- understand. Extensive documentation is provided.
-
-- Massif has been completely overhauled. Instead of measuring
- space-time usage -- which wasn't always useful and many people found
- confusing -- it now measures space usage at various points in the
- execution, including the point of peak memory allocation. Its
- output format has also changed: instead of producing PostScript
- graphs and HTML text, it produces a single text output (via the new
- 'ms_print' script) that contains both a graph and the old textual
- information, but in a more compact and readable form. Finally, the
- new version should be more reliable than the old one, as it has been
- tested more thoroughly.
-
-- Cachegrind has been extended to do branch-misprediction profiling.
- Both conditional and indirect branches are profiled. The default
- behaviour of Cachegrind is unchanged. To use the new functionality,
- give the option --branch-sim=yes.
-
-- A new category of "experimental tools" has been created. Such tools
- may not work as well as the standard tools, but are included because
- some people will find them useful, and because exposure to a wider
- user group provides tool authors with more end-user feedback. These
- tools have a "exp-" prefix attached to their names to indicate their
- experimental nature. Currently there are two experimental tools:
-
- * exp-Omega: an instantaneous leak detector. See
- exp-omega/docs/omega_introduction.txt.
-
- * exp-DRD: a data race detector based on the happens-before
- relation. See exp-drd/docs/README.txt.
-
-- Scalability improvements for very large programs, particularly those
- which have a million or more malloc'd blocks in use at once. These
- improvements mostly affect Memcheck. Memcheck is also up to 10%
- faster for all programs, with x86-linux seeing the largest
- improvement.
-
-- Works well on the latest Linux distros. Has been tested on Fedora
- Core 8 (x86, amd64, ppc32, ppc64) and openSUSE 10.3. glibc 2.6 and
- 2.7 are supported. gcc-4.3 (in its current pre-release state) is
- supported. At the same time, 3.3.0 retains support for older
- distros.
-
-- The documentation has been modestly reorganised with the aim of
- making it easier to find information on common-usage scenarios.
- Some advanced material has been moved into a new chapter in the main
- manual, so as to unclutter the main flow, and other tidying up has
- been done.
-
-- There is experimental support for AIX 5.3, both 32-bit and 64-bit
- processes. You need to be running a 64-bit kernel to use Valgrind
- on a 64-bit executable.
-
-- There have been some changes to command line options, which may
- affect you:
-
- * --log-file-exactly and
- --log-file-qualifier options have been removed.
-
- To make up for this --log-file option has been made more powerful.
- It now accepts a %p format specifier, which is replaced with the
- process ID, and a %q{FOO} format specifier, which is replaced with
- the contents of the environment variable FOO.
-
- * --child-silent-after-fork=yes|no [no]
-
- Causes Valgrind to not show any debugging or logging output for
- the child process resulting from a fork() call. This can make the
- output less confusing (although more misleading) when dealing with
- processes that create children.
-
- * --cachegrind-out-file, --callgrind-out-file and --massif-out-file
-
- These control the names of the output files produced by
- Cachegrind, Callgrind and Massif. They accept the same %p and %q
- format specifiers that --log-file accepts. --callgrind-out-file
- replaces Callgrind's old --base option.
-
- * Cachegrind's 'cg_annotate' script no longer uses the --<pid>
- option to specify the output file. Instead, the first non-option
- argument is taken to be the name of the output file, and any
- subsequent non-option arguments are taken to be the names of
- source files to be annotated.
-
- * Cachegrind and Callgrind now use directory names where possible in
- their output files. This means that the -I option to
- 'cg_annotate' and 'callgrind_annotate' should not be needed in
- most cases. It also means they can correctly handle the case
- where two source files in different directories have the same
- name.
-
-- Memcheck offers a new suppression kind: "Jump". This is for
- suppressing jump-to-invalid-address errors. Previously you had to
- use an "Addr1" suppression, which didn't make much sense.
-
-- Memcheck has new flags --malloc-fill=<hexnum> and
- --free-fill=<hexnum> which free malloc'd / free'd areas with the
- specified byte. This can help shake out obscure memory corruption
- problems. The definedness and addressability of these areas is
- unchanged -- only the contents are affected.
-
-- The behaviour of Memcheck's client requests VALGRIND_GET_VBITS and
- VALGRIND_SET_VBITS have changed slightly. They no longer issue
- addressability errors -- if either array is partially unaddressable,
- they just return 3 (as before). Also, SET_VBITS doesn't report
- definedness errors if any of the V bits are undefined.
-
-- The following Memcheck client requests have been removed:
- VALGRIND_MAKE_NOACCESS
- VALGRIND_MAKE_WRITABLE
- VALGRIND_MAKE_READABLE
- VALGRIND_CHECK_WRITABLE
- VALGRIND_CHECK_READABLE
- VALGRIND_CHECK_DEFINED
- They were deprecated in 3.2.0, when equivalent but better-named client
- requests were added. See the 3.2.0 release notes for more details.
-
-- The behaviour of the tool Lackey has changed slightly. First, the output
- from --trace-mem has been made more compact, to reduce the size of the
- traces. Second, a new option --trace-superblocks has been added, which
- shows the addresses of superblocks (code blocks) as they are executed.
-
-- The following bugs have been fixed. 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 (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
- mailing the developers (or mailing lists) directly.
-
- n-i-bz x86_linux_REDIR_FOR_index() broken
- n-i-bz guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed.
- n-i-bz Support x86 INT insn (INT (0xCD) 0x40 - 0x43)
- n-i-bz Add sys_utimensat system call for Linux x86 platform
- 79844 Helgrind complains about race condition which does not exist
- 82871 Massif output function names too short
- 89061 Massif: ms_main.c:485 (get_XCon): Assertion `xpt->max_chi...'
- 92615 Write output from Massif at crash
- 95483 massif feature request: include peak allocation in report
- 112163 MASSIF crashed with signal 7 (SIGBUS) after running 2 days
- 119404 problems running setuid executables (partial fix)
- 121629 add instruction-counting mode for timing
- 127371 java vm giving unhandled instruction bytes: 0x26 0x2E 0x64 0x65
- 129937 ==150380
- 129576 Massif loses track of memory, incorrect graphs
- 132132 massif --format=html output does not do html entity escaping
- 132950 Heap alloc/usage summary
- 133962 unhandled instruction bytes: 0xF2 0x4C 0xF 0x10
- 134990 use -fno-stack-protector if possible
- 136382 ==134990
- 137396 I would really like helgrind to work again...
- 137714 x86/amd64->IR: 0x66 0xF 0xF7 0xC6 (maskmovq, maskmovdq)
- 141631 Massif: percentages don't add up correctly
- 142706 massif numbers don't seem to add up
- 143062 massif crashes on app exit with signal 8 SIGFPE
- 144453 (get_XCon): Assertion 'xpt->max_children != 0' failed.
- 145559 valgrind aborts when malloc_stats is called
- 145609 valgrind aborts all runs with 'repeated section!'
- 145622 --db-attach broken again on x86-64
- 145837 ==149519
- 145887 PPC32: getitimer() system call is not supported
- 146252 ==150678
- 146456 (update_XCon): Assertion 'xpt->curr_space >= -space_delta'...
- 146701 ==134990
- 146781 Adding support for private futexes
- 147325 valgrind internal error on syscall (SYS_io_destroy, 0)
- 147498 amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi))
- 147545 Memcheck: mc_main.c:817 (get_sec_vbits8): Assertion 'n' failed.
- 147628 SALC opcode 0xd6 unimplemented
- 147825 crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)
- 148174 Incorrect type of freed_list_volume causes assertion [...]
- 148447 x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f
- 149182 PPC Trap instructions not implemented in valgrind
- 149504 Assertion hit on alloc_xpt->curr_space >= -space_delta
- 149519 ppc32: V aborts with SIGSEGV on execution of a signal handler
- 149892 ==137714
- 150044 SEGV during stack deregister
- 150380 dwarf/gcc interoperation (dwarf3 read problems)
- 150408 ==148447
- 150678 guest-amd64/toIR.c:3741 (dis_Grp5): Assertion `sz == 4' failed
- 151209 V unable to execute programs for users with UID > 2^16
- 151938 help on --db-command= misleading
- 152022 subw $0x28, %%sp causes assertion failure in memcheck
- 152357 inb and outb not recognized in 64-bit mode
- 152501 vex x86->IR: 0x27 0x66 0x89 0x45 (daa)
- 152818 vex x86->IR: 0xF3 0xAC 0xFC 0x9C (rep lodsb)
-
-Developer-visible changes:
-
-- The names of some functions and types within the Vex IR have
- changed. Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details.
- Any existing standalone tools will have to be updated to reflect
- these changes. The new names should be clearer. The file
- VEX/pub/libvex_ir.h is also much better commented.
-
-- A number of new debugging command line options have been added.
- These are mostly of use for debugging the symbol table and line
- number readers:
-
- --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
- --trace-cfi=no|yes show call-frame-info details? [no]
- --debug-dump=syms mimic /usr/bin/readelf --syms
- --debug-dump=line mimic /usr/bin/readelf --debug-dump=line
- --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames
- --sym-offsets=yes|no show syms in form 'name+offset' ? [no]
-
-- Internally, the code base has been further factorised and
- abstractified, particularly with respect to support for non-Linux
- OSs.
-
-(3.3.0.RC1: 2 Dec 2007, vex r1803, valgrind r7268).
-(3.3.0.RC2: 5 Dec 2007, vex r1804, valgrind r7282).
-(3.3.0.RC3: 9 Dec 2007, vex r1804, valgrind r7288).
-(3.3.0: 10 Dec 2007, vex r1804, valgrind r7290).
-
-
-
-Release 3.2.3 (29 Jan 2007)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Unfortunately 3.2.2 introduced a regression which can cause an
-assertion failure ("vex: the `impossible' happened: eqIRConst") when
-running obscure pieces of SSE code. 3.2.3 fixes this and adds one
-more glibc-2.5 intercept. In all other respects it is identical to
-3.2.2. Please do not use (or package) 3.2.2; instead use 3.2.3.
-
-n-i-bz vex: the `impossible' happened: eqIRConst
-n-i-bz Add an intercept for glibc-2.5 __stpcpy_chk
-
-(3.2.3: 29 Jan 2007, vex r1732, valgrind r6560).
-
-
-Release 3.2.2 (22 Jan 2007)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.2.2 fixes a bunch of bugs in 3.2.1, adds support for glibc-2.5 based
-systems (openSUSE 10.2, Fedora Core 6), improves support for icc-9.X
-compiled code, and brings modest performance improvements in some
-areas, including amd64 floating point, powerpc support, and startup
-responsiveness on all targets.
-
-The fixed bugs are as follows. 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
-(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
-developers (or mailing lists) directly.
-
-129390 ppc?->IR: some kind of VMX prefetch (dstt)
-129968 amd64->IR: 0xF 0xAE 0x0 (fxsave)
-134319 ==129968
-133054 'make install' fails with syntax errors
-118903 ==133054
-132998 startup fails in when running on UML
-134207 pkg-config output contains @VG_PLATFORM@
-134727 valgrind exits with "Value too large for defined data type"
-n-i-bz ppc32/64: support mcrfs
-n-i-bz Cachegrind/Callgrind: Update cache parameter detection
-135012 x86->IR: 0xD7 0x8A 0xE0 0xD0 (xlat)
-125959 ==135012
-126147 x86->IR: 0xF2 0xA5 0xF 0x77 (repne movsw)
-136650 amd64->IR: 0xC2 0x8 0x0
-135421 x86->IR: unhandled Grp5(R) case 6
-n-i-bz Improved documentation of the IR intermediate representation
-n-i-bz jcxz (x86) (users list, 8 Nov)
-n-i-bz ExeContext hashing fix
-n-i-bz fix CFI reading failures ("Dwarf CFI 0:24 0:32 0:48 0:7")
-n-i-bz fix Cachegrind/Callgrind simulation bug
-n-i-bz libmpiwrap.c: fix handling of MPI_LONG_DOUBLE
-n-i-bz make User errors suppressible
-136844 corrupted malloc line when using --gen-suppressions=yes
-138507 ==136844
-n-i-bz Speed up the JIT's register allocator
-n-i-bz Fix confusing leak-checker flag hints
-n-i-bz Support recent autoswamp versions
-n-i-bz ppc32/64 dispatcher speedups
-n-i-bz ppc64 front end rld/rlw improvements
-n-i-bz ppc64 back end imm64 improvements
-136300 support 64K pages on ppc64-linux
-139124 == 136300
-n-i-bz fix ppc insn set tests for gcc >= 4.1
-137493 x86->IR: recent binutils no-ops
-137714 x86->IR: 0x66 0xF 0xF7 0xC6 (maskmovdqu)
-138424 "failed in UME with error 22" (produce a better error msg)
-138856 ==138424
-138627 Enhancement support for prctl ioctls
-138896 Add support for usb ioctls
-136059 ==138896
-139050 ppc32->IR: mfspr 268/269 instructions not handled
-n-i-bz ppc32->IR: lvxl/stvxl
-n-i-bz glibc-2.5 support
-n-i-bz memcheck: provide replacement for mempcpy
-n-i-bz memcheck: replace bcmp in ld.so
-n-i-bz Use 'ifndef' in VEX's Makefile correctly
-n-i-bz Suppressions for MVL 4.0.1 on ppc32-linux
-n-i-bz libmpiwrap.c: Fixes for MPICH
-n-i-bz More robust handling of hinted client mmaps
-139776 Invalid read in unaligned memcpy with Intel compiler v9
-n-i-bz Generate valid XML even for very long fn names
-n-i-bz Don't prompt about suppressions for unshown reachable leaks
-139910 amd64 rcl is not supported
-n-i-bz DWARF CFI reader: handle DW_CFA_undefined
-n-i-bz DWARF CFI reader: handle icc9 generated CFI info better
-n-i-bz fix false uninit-value errs in icc9 generated FP code
-n-i-bz reduce extraneous frames in libmpiwrap.c
-n-i-bz support pselect6 on amd64-linux
-
-(3.2.2: 22 Jan 2007, vex r1729, valgrind r6545).
-
-
-Release 3.2.1 (16 Sept 2006)
+Release 3.18.0 (15 Oct 2021)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.2.1 adds x86/amd64 support for all SSE3 instructions except monitor
-and mwait, further reduces memcheck's false error rate on all
-platforms, adds support for recent binutils (in OpenSUSE 10.2 and
-Fedora Rawhide) and fixes a bunch of bugs in 3.2.0. Some of the fixed
-bugs were causing large programs to segfault with --tool=callgrind and
---tool=cachegrind, so an upgrade is recommended.
-
-In view of the fact that any 3.3.0 release is unlikely to happen until
-well into 1Q07, we intend to keep the 3.2.X line alive for a while
-yet, and so we tentatively plan a 3.2.2 release sometime in December
-06.
-
-The fixed bugs are as follows. 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.
-
-n-i-bz Expanding brk() into last available page asserts
-n-i-bz ppc64-linux stack RZ fast-case snafu
-n-i-bz 'c' in --gen-supps=yes doesn't work
-n-i-bz VG_N_SEGMENTS too low (users, 28 June)
-n-i-bz VG_N_SEGNAMES too low (Stu Robinson)
-106852 x86->IR: fisttp (SSE3)
-117172 FUTEX_WAKE does not use uaddr2
-124039 Lacks support for VKI_[GP]IO_UNIMAP*
-127521 amd64->IR: 0xF0 0x48 0xF 0xC7 (cmpxchg8b)
-128917 amd64->IR: 0x66 0xF 0xF6 0xC4 (psadbw,SSE2)
-129246 JJ: ppc32/ppc64 syscalls, w/ patch
-129358 x86->IR: fisttpl (SSE3)
-129866 cachegrind/callgrind causes executable to die
-130020 Can't stat .so/.exe error while reading symbols
-130388 Valgrind aborts when process calls malloc_trim()
-130638 PATCH: ppc32 missing system calls
-130785 amd64->IR: unhandled instruction "pushfq"
-131481: (HINT_NOP) vex x86->IR: 0xF 0x1F 0x0 0xF
-131298 ==131481
-132146 Programs with long sequences of bswap[l,q]s
-132918 vex amd64->IR: 0xD9 0xF8 (fprem)
-132813 Assertion at priv/guest-x86/toIR.c:652 fails
-133051 'cfsi->len > 0 && cfsi->len < 2000000' failed
-132722 valgrind header files are not standard C
-n-i-bz Livelocks entire machine (users list, Timothy Terriberry)
-n-i-bz Alex Bennee mmap problem (9 Aug)
-n-i-bz BartV: Don't print more lines of a stack-trace than were obtained.
-n-i-bz ppc32 SuSE 10.1 redir
-n-i-bz amd64 padding suppressions
-n-i-bz amd64 insn printing fix.
-n-i-bz ppc cmp reg,reg fix
-n-i-bz x86/amd64 iropt e/rflag reduction rules
-n-i-bz SuSE 10.1 (ppc32) minor fixes
-133678 amd64->IR: 0x48 0xF 0xC5 0xC0 (pextrw?)
-133694 aspacem assertion: aspacem_minAddr <= holeStart
-n-i-bz callgrind: fix warning about malformed creator line
-n-i-bz callgrind: fix annotate script for data produced with
- --dump-instr=yes
-n-i-bz callgrind: fix failed assertion when toggling
- instrumentation mode
-n-i-bz callgrind: fix annotate script fix warnings with
- --collect-jumps=yes
-n-i-bz docs path hardwired (Dennis Lubert)
-
-The following bugs were not fixed, due primarily to lack of developer
-time, and also because bug reporters did not answer requests for
-feedback in time for the release:
-
-129390 ppc?->IR: some kind of VMX prefetch (dstt)
-129968 amd64->IR: 0xF 0xAE 0x0 (fxsave)
-133054 'make install' fails with syntax errors
-n-i-bz Signal race condition (users list, 13 June, Johannes Berg)
-n-i-bz Unrecognised instruction at address 0x70198EC2 (users list,
- 19 July, Bennee)
-132998 startup fails in when running on UML
-
-The following bug was tentatively fixed on the mainline but the fix
-was considered too risky to push into 3.2.X:
-
-133154 crash when using client requests to register/deregister stack
-
-(3.2.1: 16 Sept 2006, vex r1658, valgrind r6070).
-
-
-Release 3.2.0 (7 June 2006)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.2.0 is a feature release with many significant improvements and the
-usual collection of bug fixes. This release supports X86/Linux,
-AMD64/Linux, PPC32/Linux and PPC64/Linux.
-
-Performance, especially of Memcheck, is improved, Addrcheck has been
-removed, Callgrind has been added, PPC64/Linux support has been added,
-Lackey has been improved, and MPI support has been added. In detail:
-
-- Memcheck has improved speed and reduced memory use. Run times are
- typically reduced by 15-30%, averaging about 24% for SPEC CPU2000.
- The other tools have smaller but noticeable speed improvements. We
- are interested to hear what improvements users get.
-
- Memcheck uses less memory due to the introduction of a compressed
- representation for shadow memory. The space overhead has been
- reduced by a factor of up to four, depending on program behaviour.
- This means you should be able to run programs that use more memory
- than before without hitting problems.
-
-- Addrcheck has been removed. It has not worked since version 2.4.0,
- and the speed and memory improvements to Memcheck make it redundant.
- If you liked using Addrcheck because it didn't give undefined value
- errors, you can use the new Memcheck option --undef-value-errors=no
- to get the same behaviour.
-
-- The number of undefined-value errors incorrectly reported by
- Memcheck has been reduced (such false reports were already very
- rare). In particular, efforts have been made to ensure Memcheck
- works really well with gcc 4.0/4.1-generated code on X86/Linux and
- AMD64/Linux.
-
-- Josef Weidendorfer's popular Callgrind tool has been added. Folding
- it in was a logical step given its popularity and usefulness, and
- makes it easier for us to ensure it works "out of the box" on all
- supported targets. The associated KDE KCachegrind GUI remains a
- separate project.
-
-- A new release of the Valkyrie GUI for Memcheck, version 1.2.0,
- accompanies this release. Improvements over previous releases
- include improved robustness, many refinements to the user interface,
- and use of a standard autoconf/automake build system. You can get
- it from http://www.valgrind.org/downloads/guis.html.
-
-- Valgrind now works on PPC64/Linux. As with the AMD64/Linux port,
- this supports programs using to 32G of address space. On 64-bit
- capable PPC64/Linux setups, you get a dual architecture build so
- that both 32-bit and 64-bit executables can be run. Linux on POWER5
- is supported, and POWER4 is also believed to work. Both 32-bit and
- 64-bit DWARF2 is supported. This port is known to work well with
- both gcc-compiled and xlc/xlf-compiled code.
-
-- Floating point accuracy has been improved for PPC32/Linux.
- Specifically, the floating point rounding mode is observed on all FP
- arithmetic operations, and multiply-accumulate instructions are
- preserved by the compilation pipeline. This means you should get FP
- results which are bit-for-bit identical to a native run. These
- improvements are also present in the PPC64/Linux port.
-
-- Lackey, the example tool, has been improved:
-
- * It has a new option --detailed-counts (off by default) which
- causes it to print out a count of loads, stores and ALU operations
- done, and their sizes.
-
- * It has a new option --trace-mem (off by default) which causes it
- to print out a trace of all memory accesses performed by a
- program. It's a good starting point for building Valgrind tools
- that need to track memory accesses. Read the comments at the top
- of the file lackey/lk_main.c for details.
-
- * The original instrumentation (counting numbers of instructions,
- jumps, etc) is now controlled by a new option --basic-counts. It
- is on by default.
-
-- MPI support: partial support for debugging distributed applications
- using the MPI library specification has been added. Valgrind is
- aware of the memory state changes caused by a subset of the MPI
- functions, and will carefully check data passed to the (P)MPI_
- interface.
-
-- A new flag, --error-exitcode=, has been added. This allows changing
- the exit code in runs where Valgrind reported errors, which is
- useful when using Valgrind as part of an automated test suite.
-
-- Various segfaults when reading old-style "stabs" debug information
- have been fixed.
-
-- A simple performance evaluation suite has been added. See
- perf/README and README_DEVELOPERS for details. There are
- various bells and whistles.
-
-- New configuration flags:
- --enable-only32bit
- --enable-only64bit
- By default, on 64 bit platforms (ppc64-linux, amd64-linux) the build
- system will attempt to build a Valgrind which supports both 32-bit
- and 64-bit executables. This may not be what you want, and you can
- override the default behaviour using these flags.
-
-Please note that Helgrind is still not working. We have made an
-important step towards making it work again, however, with the
-addition of function wrapping (see below).
-
-Other user-visible changes:
-
-- Valgrind now has the ability to intercept and wrap arbitrary
- functions. This is a preliminary step towards making Helgrind work
- again, and was required for MPI support.
-
-- There are some changes to Memcheck's client requests. Some of them
- have changed names:
-
- MAKE_NOACCESS --> MAKE_MEM_NOACCESS
- MAKE_WRITABLE --> MAKE_MEM_UNDEFINED
- MAKE_READABLE --> MAKE_MEM_DEFINED
-
- CHECK_WRITABLE --> CHECK_MEM_IS_ADDRESSABLE
- CHECK_READABLE --> CHECK_MEM_IS_DEFINED
- CHECK_DEFINED --> CHECK_VALUE_IS_DEFINED
-
- The reason for the change is that the old names are subtly
- misleading. The old names will still work, but they are deprecated
- and may be removed in a future release.
-
- We also added a new client request:
-
- MAKE_MEM_DEFINED_IF_ADDRESSABLE(a, len)
-
- which is like MAKE_MEM_DEFINED but only affects a byte if the byte is
- already addressable.
-
-- The way client requests are encoded in the instruction stream has
- changed. Unfortunately, this means 3.2.0 will not honour client
- requests compiled into binaries using headers from earlier versions
- of Valgrind. We will try to keep the client request encodings more
- stable in future.
-
-BUGS FIXED:
-
-108258 NPTL pthread cleanup handlers not called
-117290 valgrind is sigKILL'd on startup
-117295 == 117290
-118703 m_signals.c:1427 Assertion 'tst->status == VgTs_WaitSys'
-118466 add %reg, %reg generates incorrect validity for bit 0
-123210 New: strlen from ld-linux on amd64
-123244 DWARF2 CFI reader: unhandled CFI instruction 0:18
-123248 syscalls in glibc-2.4: openat, fstatat, symlinkat
-123258 socketcall.recvmsg(msg.msg_iov[i] points to uninit
-123535 mremap(new_addr) requires MREMAP_FIXED in 4th arg
-123836 small typo in the doc
-124029 ppc compile failed: `vor' gcc 3.3.5
-124222 Segfault: @@don't know what type ':' is
-124475 ppc32: crash (syscall?) timer_settime()
-124499 amd64->IR: 0xF 0xE 0x48 0x85 (femms)
-124528 FATAL: aspacem assertion failed: segment_is_sane
-124697 vex x86->IR: 0xF 0x70 0xC9 0x0 (pshufw)
-124892 vex x86->IR: 0xF3 0xAE (REPx SCASB)
-126216 == 124892
-124808 ppc32: sys_sched_getaffinity() not handled
-n-i-bz Very long stabs strings crash m_debuginfo
-n-i-bz amd64->IR: 0x66 0xF 0xF5 (pmaddwd)
-125492 ppc32: support a bunch more syscalls
-121617 ppc32/64: coredumping gives assertion failure
-121814 Coregrind return error as exitcode patch
-126517 == 121814
-125607 amd64->IR: 0x66 0xF 0xA3 0x2 (btw etc)
-125651 amd64->IR: 0xF8 0x49 0xFF 0xE3 (clc?)
-126253 x86 movx is wrong
-126451 3.2 SVN doesn't work on ppc32 CPU's without FPU
-126217 increase # threads
-126243 vex x86->IR: popw mem
-126583 amd64->IR: 0x48 0xF 0xA4 0xC2 (shld $1,%rax,%rdx)
-126668 amd64->IR: 0x1C 0xFF (sbb $0xff,%al)
-126696 support for CDROMREADRAW ioctl and CDROMREADTOCENTRY fix
-126722 assertion: segment_is_sane at m_aspacemgr/aspacemgr.c:1624
-126938 bad checking for syscalls linkat, renameat, symlinkat
-
-(3.2.0RC1: 27 May 2006, vex r1626, valgrind r5947).
-(3.2.0: 7 June 2006, vex r1628, valgrind r5957).
-
-
-Release 3.1.1 (15 March 2006)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.1.1 fixes a bunch of bugs reported in 3.1.0. There is no new
-functionality. The fixed bugs are:
-
-(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
- a bugzilla entry).
-
-n-i-bz ppc32: fsub 3,3,3 in dispatcher doesn't clear NaNs
-n-i-bz ppc32: __NR_{set,get}priority
-117332 x86: missing line info with icc 8.1
-117366 amd64: 0xDD 0x7C fnstsw
-118274 == 117366
-117367 amd64: 0xD9 0xF4 fxtract
-117369 amd64: __NR_getpriority (140)
-117419 ppc32: lfsu f5, -4(r11)
-117419 ppc32: fsqrt
-117936 more stabs problems (segfaults while reading debug info)
-119914 == 117936
-120345 == 117936
-118239 amd64: 0xF 0xAE 0x3F (clflush)
-118939 vm86old system call
-n-i-bz memcheck/tests/mempool reads freed memory
-n-i-bz AshleyP's custom-allocator assertion
-n-i-bz Dirk strict-aliasing stuff
-n-i-bz More space for debugger cmd line (Dan Thaler)
-n-i-bz Clarified leak checker output message
-n-i-bz AshleyP's --gen-suppressions output fix
-n-i-bz cg_annotate's --sort option broken
-n-i-bz OSet 64-bit fastcmp bug
-n-i-bz VG_(getgroups) fix (Shinichi Noda)
-n-i-bz ppc32: allocate from callee-saved FP/VMX regs
-n-i-bz misaligned path word-size bug in mc_main.c
-119297 Incorrect error message for sse code
-120410 x86: prefetchw (0xF 0xD 0x48 0x4)
-120728 TIOCSERGETLSR, TIOCGICOUNT, HDIO_GET_DMA ioctls
-120658 Build fixes for gcc 2.96
-120734 x86: Support for changing EIP in signal handler
-n-i-bz memcheck/tests/zeropage de-looping fix
-n-i-bz x86: fxtract doesn't work reliably
-121662 x86: lock xadd (0xF0 0xF 0xC0 0x2)
-121893 calloc does not always return zeroed memory
-121901 no support for syscall tkill
-n-i-bz Suppression update for Debian unstable
-122067 amd64: fcmovnu (0xDB 0xD9)
-n-i-bz ppc32: broken signal handling in cpu feature detection
-n-i-bz ppc32: rounding mode problems (improved, partial fix only)
-119482 ppc32: mtfsb1
-n-i-bz ppc32: mtocrf/mfocrf
-
-(3.1.1: 15 March 2006, vex r1597, valgrind r5771).
-
-
-Release 3.1.0 (25 November 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.1.0 is a feature release with a number of significant improvements:
-AMD64 support is much improved, PPC32 support is good enough to be
-usable, and the handling of memory management and address space is
-much more robust. In detail:
-
-- AMD64 support is much improved. The 64-bit vs. 32-bit issues in
- 3.0.X have been resolved, and it should "just work" now in all
- cases. On AMD64 machines both 64-bit and 32-bit versions of
- Valgrind are built. The right version will be invoked
- automatically, even when using --trace-children and mixing execution
- between 64-bit and 32-bit executables. Also, many more instructions
- are supported.
-
-- PPC32 support is now good enough to be usable. It should work with
- all tools, but please let us know if you have problems. Three
- classes of CPUs are supported: integer only (no FP, no Altivec),
- which covers embedded PPC uses, integer and FP but no Altivec
- (G3-ish), and CPUs capable of Altivec too (G4, G5).
-
-- Valgrind's address space management has been overhauled. As a
- result, Valgrind should be much more robust with programs that use
- large amounts of memory. There should be many fewer "memory
- exhausted" messages, and debug symbols should be read correctly on
- large (eg. 300MB+) executables. On 32-bit machines the full address
- space available to user programs (usually 3GB or 4GB) can be fully
- utilised. On 64-bit machines up to 32GB of space is usable; when
- using Memcheck that means your program can use up to about 14GB.
-
- A side effect of this change is that Valgrind is no longer protected
- against wild writes by the client. This feature was nice but relied
- on the x86 segment registers and so wasn't portable.
-
-- Most users should not notice, but as part of the address space
- manager change, the way Valgrind is built has been changed. Each
- tool is now built as a statically linked stand-alone executable,
- rather than as a shared object that is dynamically linked with the
- core. The "valgrind" program invokes the appropriate tool depending
- on the --tool option. This slightly increases the amount of disk
- space used by Valgrind, but it greatly simplified many things and
- removed Valgrind's dependence on glibc.
-
-Please note that Addrcheck and Helgrind are still not working. Work
-is underway to reinstate them (or equivalents). We apologise for the
-inconvenience.
-
-Other user-visible changes:
-
-- The --weird-hacks option has been renamed --sim-hints.
-
-- The --time-stamp option no longer gives an absolute date and time.
- It now prints the time elapsed since the program began.
-
-- It should build with gcc-2.96.
-
-- Valgrind can now run itself (see README_DEVELOPERS for how).
- This is not much use to you, but it means the developers can now
- profile Valgrind using Cachegrind. As a result a couple of
- performance bad cases have been fixed.
-
-- The XML output format has changed slightly. See
- docs/internals/xml-output.txt.
-
-- Core dumping has been reinstated (it was disabled in 3.0.0 and 3.0.1).
- If your program crashes while running under Valgrind, a core file with
- the name "vgcore.<pid>" will be created (if your settings allow core
- file creation). Note that the floating point information is not all
- there. If Valgrind itself crashes, the OS will create a normal core
- file.
-
-The following are some user-visible changes that occurred in earlier
-versions that may not have been announced, or were announced but not
-widely noticed. So we're mentioning them now.
-
-- The --tool flag is optional once again; if you omit it, Memcheck
- is run by default.
-
-- The --num-callers flag now has a default value of 12. It was
- previously 4.
-
-- The --xml=yes flag causes Valgrind's output to be produced in XML
- format. This is designed to make it easy for other programs to
- consume Valgrind's output. The format is described in the file
- docs/internals/xml-format.txt.
-
-- The --gen-suppressions flag supports an "all" value that causes every
- suppression to be printed without asking.
-
-- The --log-file option no longer puts "pid" in the filename, eg. the
- old name "foo.pid12345" is now "foo.12345".
-
-- There are several graphical front-ends for Valgrind, such as Valkyrie,
- Alleyoop and Valgui. See http://www.valgrind.org/downloads/guis.html
- for a list.
-
-BUGS FIXED:
-
-109861 amd64 hangs at startup
-110301 ditto
-111554 valgrind crashes with Cannot allocate memory
-111809 Memcheck tool doesn't start java
-111901 cross-platform run of cachegrind fails on opteron
-113468 (vgPlain_mprotect_range): Assertion 'r != -1' failed.
- 92071 Reading debugging info uses too much memory
-109744 memcheck loses track of mmap from direct ld-linux.so.2
-110183 tail of page with _end
- 82301 FV memory layout too rigid
- 98278 Infinite recursion possible when allocating memory
-108994 Valgrind runs out of memory due to 133x overhead
-115643 valgrind cannot allocate memory
-105974 vg_hashtable.c static hash table
-109323 ppc32: dispatch.S uses Altivec insn, which doesn't work on POWER.
-109345 ptrace_setregs not yet implemented for ppc
-110831 Would like to be able to run against both 32 and 64 bit
- binaries on AMD64
-110829 == 110831
-111781 compile of valgrind-3.0.0 fails on my linux (gcc 2.X prob)
-112670 Cachegrind: cg_main.c:486 (handleOneStatement ...
-112941 vex x86: 0xD9 0xF4 (fxtract)
-110201 == 112941
-113015 vex amd64->IR: 0xE3 0x14 0x48 0x83 (jrcxz)
-113126 Crash with binaries built with -gstabs+/-ggdb
-104065 == 113126
-115741 == 113126
-113403 Partial SSE3 support on x86
-113541 vex: Grp5(x86) (alt encoding inc/dec) case 1
-113642 valgrind crashes when trying to read debug information
-113810 vex x86->IR: 66 0F F6 (66 + PSADBW == SSE PSADBW)
-113796 read() and write() do not work if buffer is in shared memory
-113851 vex x86->IR: (pmaddwd): 0x66 0xF 0xF5 0xC7
-114366 vex amd64 cannnot handle __asm__( "fninit" )
-114412 vex amd64->IR: 0xF 0xAD 0xC2 0xD3 (128-bit shift, shrdq?)
-114455 vex amd64->IR: 0xF 0xAC 0xD0 0x1 (also shrdq)
-115590: amd64->IR: 0x67 0xE3 0x9 0xEB (address size override)
-115953 valgrind svn r5042 does not build with parallel make (-j3)
-116057 maximum instruction size - VG_MAX_INSTR_SZB too small?
-116483 shmat failes with invalid argument
-102202 valgrind crashes when realloc'ing until out of memory
-109487 == 102202
-110536 == 102202
-112687 == 102202
-111724 vex amd64->IR: 0x41 0xF 0xAB (more BT{,S,R,C} fun n games)
-111748 vex amd64->IR: 0xDD 0xE2 (fucom)
-111785 make fails if CC contains spaces
-111829 vex x86->IR: sbb AL, Ib
-111851 vex x86->IR: 0x9F 0x89 (lahf/sahf)
-112031 iopl on AMD64 and README_MISSING_SYSCALL_OR_IOCTL update
-112152 code generation for Xin_MFence on x86 with SSE0 subarch
-112167 == 112152
-112789 == 112152
-112199 naked ar tool is used in vex makefile
-112501 vex x86->IR: movq (0xF 0x7F 0xC1 0xF) (mmx MOVQ)
-113583 == 112501
-112538 memalign crash
-113190 Broken links in docs/html/
-113230 Valgrind sys_pipe on x86-64 wrongly thinks file descriptors
- should be 64bit
-113996 vex amd64->IR: fucomp (0xDD 0xE9)
-114196 vex x86->IR: out %eax,(%dx) (0xEF 0xC9 0xC3 0x90)
-114289 Memcheck fails to intercept malloc when used in an uclibc environment
-114756 mbind syscall support
-114757 Valgrind dies with assertion: Assertion 'noLargerThan > 0' failed
-114563 stack tracking module not informed when valgrind switches threads
-114564 clone() and stacks
-114565 == 114564
-115496 glibc crashes trying to use sysinfo page
-116200 enable fsetxattr, fgetxattr, and fremovexattr for amd64
-
-(3.1.0RC1: 20 November 2005, vex r1466, valgrind r5224).
-(3.1.0: 26 November 2005, vex r1471, valgrind r5235).
-
-
-Release 3.0.1 (29 August 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.0.1 fixes a bunch of bugs reported in 3.0.0. There is no new
-functionality. Some of the fixed bugs are critical, so if you
-use/distribute 3.0.0, an upgrade to 3.0.1 is recommended. The fixed
-bugs are:
-
-(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
- a bugzilla entry).
-
-109313 (== 110505) x86 cmpxchg8b
-n-i-bz x86: track but ignore changes to %eflags.AC (alignment check)
-110102 dis_op2_E_G(amd64)
-110202 x86 sys_waitpid(#286)
-110203 clock_getres(,0)
-110208 execve fail wrong retval
-110274 SSE1 now mandatory for x86
-110388 amd64 0xDD 0xD1
-110464 amd64 0xDC 0x1D FCOMP
-110478 amd64 0xF 0xD PREFETCH
-n-i-bz XML <unique> printing wrong
-n-i-bz Dirk r4359 (amd64 syscalls from trunk)
-110591 amd64 and x86: rdtsc not implemented properly
-n-i-bz Nick r4384 (stub implementations of Addrcheck and Helgrind)
-110652 AMD64 valgrind crashes on cwtd instruction
-110653 AMD64 valgrind crashes on sarb $0x4,foo(%rip) instruction
-110656 PATH=/usr/bin::/bin valgrind foobar stats ./fooba
-110657 Small test fixes
-110671 vex x86->IR: unhandled instruction bytes: 0xF3 0xC3 (rep ret)
-n-i-bz Nick (Cachegrind should not assert when it encounters a client
- request.)
-110685 amd64->IR: unhandled instruction bytes: 0xE1 0x56 (loope Jb)
-110830 configuring with --host fails to build 32 bit on 64 bit target
-110875 Assertion when execve fails
-n-i-bz Updates to Memcheck manual
-n-i-bz Fixed broken malloc_usable_size()
-110898 opteron instructions missing: btq btsq btrq bsfq
-110954 x86->IR: unhandled instruction bytes: 0xE2 0xF6 (loop Jb)
-n-i-bz Make suppressions work for "???" lines in stacktraces.
-111006 bogus warnings from linuxthreads
-111092 x86: dis_Grp2(Reg): unhandled case(x86)
-111231 sctp_getladdrs() and sctp_getpaddrs() returns uninitialized
- memory
-111102 (comment #4) Fixed 64-bit unclean "silly arg" message
-n-i-bz vex x86->IR: unhandled instruction bytes: 0x14 0x0
-n-i-bz minor umount/fcntl wrapper fixes
-111090 Internal Error running Massif
-101204 noisy warning
-111513 Illegal opcode for SSE instruction (x86 movups)
-111555 VEX/Makefile: CC is set to gcc
-n-i-bz Fix XML bugs in FAQ
-
-(3.0.1: 29 August 05,
- vex/branches/VEX_3_0_BRANCH r1367,
- valgrind/branches/VALGRIND_3_0_BRANCH r4574).
-
-
-
-Release 3.0.0 (3 August 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-3.0.0 is a major overhaul of Valgrind. The most significant user
-visible change is that Valgrind now supports architectures other than
-x86. The new architectures it supports are AMD64 and PPC32, and the
-infrastructure is present for other architectures to be added later.
-
-AMD64 support works well, but has some shortcomings:
-
-- It generally won't be as solid as the x86 version. For example,
- support for more obscure instructions and system calls may be missing.
- We will fix these as they arise.
-
-- Address space may be limited; see the point about
- position-independent executables below.
-
-- If Valgrind is built on an AMD64 machine, it will only run 64-bit
- executables. If you want to run 32-bit x86 executables under Valgrind
- on an AMD64, you will need to build Valgrind on an x86 machine and
- copy it to the AMD64 machine. And it probably won't work if you do
- something tricky like exec'ing a 32-bit program from a 64-bit program
- while using --trace-children=yes. We hope to improve this situation
- in the future.
-
-The PPC32 support is very basic. It may not work reliably even for
-small programs, but it's a start. Many thanks to Paul Mackerras for
-his great work that enabled this support. We are working to make
-PPC32 usable as soon as possible.
-
-Other user-visible changes:
-
-- Valgrind is no longer built by default as a position-independent
- executable (PIE), as this caused too many problems.
-
- Without PIE enabled, AMD64 programs will only be able to access 2GB of
- address space. We will fix this eventually, but not for the moment.
-
- Use --enable-pie at configure-time to turn this on.
-
-- Support for programs that use stack-switching has been improved. Use
- the --max-stackframe flag for simple cases, and the
- VALGRIND_STACK_REGISTER, VALGRIND_STACK_DEREGISTER and
- VALGRIND_STACK_CHANGE client requests for trickier cases.
-
-- Support for programs that use self-modifying code has been improved,
- in particular programs that put temporary code fragments on the stack.
- This helps for C programs compiled with GCC that use nested functions,
- and also Ada programs. This is controlled with the --smc-check
- flag, although the default setting should work in most cases.
-
-- Output can now be printed in XML format. This should make it easier
- for tools such as GUI front-ends and automated error-processing
- schemes to use Valgrind output as input. The --xml flag controls this.
- As part of this change, ELF directory information is read from executables,
- so absolute source file paths are available if needed.
-
-- Programs that allocate many heap blocks may run faster, due to
- improvements in certain data structures.
-
-- Addrcheck is currently not working. We hope to get it working again
- soon. Helgrind is still not working, as was the case for the 2.4.0
- release.
-
-- The JITter has been completely rewritten, and is now in a separate
- library, called Vex. This enabled a lot of the user-visible changes,
- such as new architecture support. The new JIT unfortunately translates
- more slowly than the old one, so programs may take longer to start.
- We believe the code quality is produces is about the same, so once
- started, programs should run at about the same speed. Feedback about
- this would be useful.
-
- On the plus side, Vex and hence Memcheck tracks value flow properly
- through floating point and vector registers, something the 2.X line
- could not do. That means that Memcheck is much more likely to be
- usably accurate on vectorised code.
-
-- There is a subtle change to the way exiting of threaded programs
- is handled. In 3.0, Valgrind's final diagnostic output (leak check,
- etc) is not printed until the last thread exits. If the last thread
- to exit was not the original thread which started the program, any
- other process wait()-ing on this one to exit may conclude it has
- finished before the diagnostic output is printed. This may not be
- what you expect. 2.X had a different scheme which avoided this
- problem, but caused deadlocks under obscure circumstances, so we
- are trying something different for 3.0.
-
-- Small changes in control log file naming which make it easier to
- use valgrind for debugging MPI-based programs. The relevant
- new flags are --log-file-exactly= and --log-file-qualifier=.
-
-- As part of adding AMD64 support, DWARF2 CFI-based stack unwinding
- support was added. In principle this means Valgrind can produce
- meaningful backtraces on x86 code compiled with -fomit-frame-pointer
- providing you also compile your code with -fasynchronous-unwind-tables.
-
-- The documentation build system has been completely redone.
- The documentation masters are now in XML format, and from that
- HTML, PostScript and PDF documentation is generated. As a result
- the manual is now available in book form. Note that the
- documentation in the source tarballs is pre-built, so you don't need
- any XML processing tools to build Valgrind from a tarball.
-
-Changes that are not user-visible:
-
-- The code has been massively overhauled in order to modularise it.
- As a result we hope it is easier to navigate and understand.
-
-- Lots of code has been rewritten.
-
-BUGS FIXED:
-
-110046 sz == 4 assertion failed
-109810 vex amd64->IR: unhandled instruction bytes: 0xA3 0x4C 0x70 0xD7
-109802 Add a plausible_stack_size command-line parameter ?
-109783 unhandled ioctl TIOCMGET (running hw detection tool discover)
-109780 unhandled ioctl BLKSSZGET (running fdisk -l /dev/hda)
-109718 vex x86->IR: unhandled instruction: ffreep
-109429 AMD64 unhandled syscall: 127 (sigpending)
-109401 false positive uninit in strchr from ld-linux.so.2
-109385 "stabs" parse failure
-109378 amd64: unhandled instruction REP NOP
-109376 amd64: unhandled instruction LOOP Jb
-109363 AMD64 unhandled instruction bytes
-109362 AMD64 unhandled syscall: 24 (sched_yield)
-109358 fork() won't work with valgrind-3.0 SVN
-109332 amd64 unhandled instruction: ADC Ev, Gv
-109314 Bogus memcheck report on amd64
-108883 Crash; vg_memory.c:905 (vgPlain_init_shadow_range):
- Assertion `vgPlain_defined_init_shadow_page()' failed.
-108349 mincore syscall parameter checked incorrectly
-108059 build infrastructure: small update
-107524 epoll_ctl event parameter checked on EPOLL_CTL_DEL
-107123 Vex dies with unhandled instructions: 0xD9 0x31 0xF 0xAE
-106841 auxmap & openGL problems
-106713 SDL_Init causes valgrind to exit
-106352 setcontext and makecontext not handled correctly
-106293 addresses beyond initial client stack allocation
- not checked in VALGRIND_DO_LEAK_CHECK
-106283 PIE client programs are loaded at address 0
-105831 Assertion `vgPlain_defined_init_shadow_page()' failed.
-105039 long run-times probably due to memory manager
-104797 valgrind needs to be aware of BLKGETSIZE64
-103594 unhandled instruction: FICOM
-103320 Valgrind 2.4.0 fails to compile with gcc 3.4.3 and -O0
-103168 potentially memory leak in coregrind/ume.c
-102039 bad permissions for mapped region at address 0xB7C73680
-101881 weird assertion problem
-101543 Support fadvise64 syscalls
-75247 x86_64/amd64 support (the biggest "bug" we have ever fixed)
-
-(3.0RC1: 27 July 05, vex r1303, valgrind r4283).
-(3.0.0: 3 August 05, vex r1313, valgrind r4316).
-
-
-
-Stable release 2.4.1 (1 August 2005)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-(The notes for this release have been lost. Sorry! It would have
-contained various bug fixes but no new features.)
-
-
-
-Stable release 2.4.0 (March 2005) -- CHANGES RELATIVE TO 2.2.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.4.0 brings many significant changes and bug fixes. The most
-significant user-visible change is that we no longer supply our own
-pthread implementation. Instead, Valgrind is finally capable of
-running the native thread library, either LinuxThreads or NPTL.
-
-This means our libpthread has gone, along with the bugs associated
-with it. Valgrind now supports the kernel's threading syscalls, and
-lets you use your standard system libpthread. As a result:
-
-* There are many fewer system dependencies and strange library-related
- bugs. There is a small performance improvement, and a large
- stability improvement.
-
-* On the downside, Valgrind can no longer report misuses of the POSIX
- PThreads API. It also means that Helgrind currently does not work.
- We hope to fix these problems in a future release.
-
-Note that running the native thread libraries does not mean Valgrind
-is able to provide genuine concurrent execution on SMPs. We still
-impose the restriction that only one thread is running at any given
-time.
-
-There are many other significant changes too:
-
-* Memcheck is (once again) the default tool.
-
-* The default stack backtrace is now 12 call frames, rather than 4.
-
-* Suppressions can have up to 25 call frame matches, rather than 4.
-
-* Memcheck and Addrcheck use less memory. Under some circumstances,
- they no longer allocate shadow memory if there are large regions of
- memory with the same A/V states - such as an mmaped file.
-
-* The memory-leak detector in Memcheck and Addrcheck has been
- improved. It now reports more types of memory leak, including
- leaked cycles. When reporting leaked memory, it can distinguish
- between directly leaked memory (memory with no references), and
- indirectly leaked memory (memory only referred to by other leaked
- memory).
-
-* Memcheck's confusion over the effect of mprotect() has been fixed:
- previously mprotect could erroneously mark undefined data as
- defined.
-
-* Signal handling is much improved and should be very close to what
- you get when running natively.
-
- One result of this is that Valgrind observes changes to sigcontexts
- passed to signal handlers. Such modifications will take effect when
- the signal returns. You will need to run with --single-step=yes to
- make this useful.
-
-* Valgrind is built in Position Independent Executable (PIE) format if
- your toolchain supports it. This allows it to take advantage of all
- the available address space on systems with 4Gbyte user address
- spaces.
-
-* Valgrind can now run itself (requires PIE support).
-
-* Syscall arguments are now checked for validity. Previously all
- memory used by syscalls was checked, but now the actual values
- passed are also checked.
-
-* Syscall wrappers are more robust against bad addresses being passed
- to syscalls: they will fail with EFAULT rather than killing Valgrind
- with SIGSEGV.
-
-* Because clone() is directly supported, some non-pthread uses of it
- will work. Partial sharing (where some resources are shared, and
- some are not) is not supported.
-
-* open() and readlink() on /proc/self/exe are supported.
-
-BUGS FIXED:
-
-88520 pipe+fork+dup2 kills the main program
-88604 Valgrind Aborts when using $VALGRIND_OPTS and user progra...
-88614 valgrind: vg_libpthread.c:2323 (read): Assertion `read_pt...
-88703 Stabs parser fails to handle ";"
-88886 ioctl wrappers for TIOCMBIS and TIOCMBIC
-89032 valgrind pthread_cond_timedwait fails
-89106 the 'impossible' happened
-89139 Missing sched_setaffinity & sched_getaffinity
-89198 valgrind lacks support for SIOCSPGRP and SIOCGPGRP
-89263 Missing ioctl translations for scsi-generic and CD playing
-89440 tests/deadlock.c line endings
-89481 `impossible' happened: EXEC FAILED
-89663 valgrind 2.2.0 crash on Redhat 7.2
-89792 Report pthread_mutex_lock() deadlocks instead of returnin...
-90111 statvfs64 gives invalid error/warning
-90128 crash+memory fault with stabs generated by gnat for a run...
-90778 VALGRIND_CHECK_DEFINED() not as documented in memcheck.h
-90834 cachegrind crashes at end of program without reporting re...
-91028 valgrind: vg_memory.c:229 (vgPlain_unmap_range): Assertio...
-91162 valgrind crash while debugging drivel 1.2.1
-91199 Unimplemented function
-91325 Signal routing does not propagate the siginfo structure
-91599 Assertion `cv == ((void *)0)'
-91604 rw_lookup clears orig and sends the NULL value to rw_new
-91821 Small problems building valgrind with $top_builddir ne $t...
-91844 signal 11 (SIGSEGV) at get_tcb (libpthread.c:86) in corec...
-92264 UNIMPLEMENTED FUNCTION: pthread_condattr_setpshared
-92331 per-target flags necessitate AM_PROG_CC_C_O
-92420 valgrind doesn't compile with linux 2.6.8.1/9
-92513 Valgrind 2.2.0 generates some warning messages
-92528 vg_symtab2.c:170 (addLoc): Assertion `loc->size > 0' failed.
-93096 unhandled ioctl 0x4B3A and 0x5601
-93117 Tool and core interface versions do not match
-93128 Can't run valgrind --tool=memcheck because of unimplement...
-93174 Valgrind can crash if passed bad args to certain syscalls
-93309 Stack frame in new thread is badly aligned
-93328 Wrong types used with sys_sigprocmask()
-93763 /usr/include/asm/msr.h is missing
-93776 valgrind: vg_memory.c:508 (vgPlain_find_map_space): Asser...
-93810 fcntl() argument checking a bit too strict
-94378 Assertion `tst->sigqueue_head != tst->sigqueue_tail' failed.
-94429 valgrind 2.2.0 segfault with mmap64 in glibc 2.3.3
-94645 Impossible happened: PINSRW mem
-94953 valgrind: the `impossible' happened: SIGSEGV
-95667 Valgrind does not work with any KDE app
-96243 Assertion 'res==0' failed
-96252 stage2 loader of valgrind fails to allocate memory
-96520 All programs crashing at _dl_start (in /lib/ld-2.3.3.so) ...
-96660 ioctl CDROMREADTOCENTRY causes bogus warnings
-96747 After looping in a segfault handler, the impossible happens
-96923 Zero sized arrays crash valgrind trace back with SIGFPE
-96948 valgrind stops with assertion failure regarding mmap2
-96966 valgrind fails when application opens more than 16 sockets
-97398 valgrind: vg_libpthread.c:2667 Assertion failed
-97407 valgrind: vg_mylibc.c:1226 (vgPlain_safe_fd): Assertion `...
-97427 "Warning: invalid file descriptor -1 in syscall close()" ...
-97785 missing backtrace
-97792 build in obj dir fails - autoconf / makefile cleanup
-97880 pthread_mutex_lock fails from shared library (special ker...
-97975 program aborts without ang VG messages
-98129 Failed when open and close file 230000 times using stdio
-98175 Crashes when using valgrind-2.2.0 with a program using al...
-98288 Massif broken
-98303 UNIMPLEMENTED FUNCTION pthread_condattr_setpshared
-98630 failed--compilation missing warnings.pm, fails to make he...
-98756 Cannot valgrind signal-heavy kdrive X server
-98966 valgrinding the JVM fails with a sanity check assertion
-99035 Valgrind crashes while profiling
-99142 loops with message "Signal 11 being dropped from thread 0...
-99195 threaded apps crash on thread start (using QThread::start...
-99348 Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_off...
-99568 False negative due to mishandling of mprotect
-99738 valgrind memcheck crashes on program that uses sigitimer
-99923 0-sized allocations are reported as leaks
-99949 program seg faults after exit()
-100036 "newSuperblock's request for 1048576 bytes failed"
-100116 valgrind: (pthread_cond_init): Assertion `sizeof(* cond) ...
-100486 memcheck reports "valgrind: the `impossible' happened: V...
-100833 second call to "mremap" fails with EINVAL
-101156 (vgPlain_find_map_space): Assertion `(addr & ((1 << 12)-1...
-101173 Assertion `recDepth >= 0 && recDepth < 500' failed
-101291 creating threads in a forked process fails
-101313 valgrind causes different behavior when resizing a window...
-101423 segfault for c++ array of floats
-101562 valgrind massif dies on SIGINT even with signal handler r...
-
-
-Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.0.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.2.0 brings nine months worth of improvements and bug fixes. We
-believe it to be a worthy successor to 2.0.0. There are literally
-hundreds of bug fixes and minor improvements. There are also some
-fairly major user-visible changes:
-
-* A complete overhaul of handling of system calls and signals, and
- their interaction with threads. In general, the accuracy of the
- system call, thread and signal simulations is much improved:
-
- - Blocking system calls behave exactly as they do when running
- natively (not on valgrind). That is, if a syscall blocks only the
- calling thread when running natively, than it behaves the same on
- valgrind. No more mysterious hangs because V doesn't know that some
- syscall or other, should block only the calling thread.
-
- - Interrupted syscalls should now give more faithful results.
-
- - Signal contexts in signal handlers are supported.
-
-* Improvements to NPTL support to the extent that V now works
- properly on NPTL-only setups.
-
-* Greater isolation between Valgrind and the program being run, so
- the program is less likely to inadvertently kill Valgrind by
- doing wild writes.
-
-* Massif: a new space profiling tool. Try it! It's cool, and it'll
- tell you in detail where and when your C/C++ code is allocating heap.
- Draws pretty .ps pictures of memory use against time. A potentially
- powerful tool for making sense of your program's space use.
-
-* File descriptor leakage checks. When enabled, Valgrind will print out
- a list of open file descriptors on exit.
-
-* Improved SSE2/SSE3 support.
-
-* Time-stamped output; use --time-stamp=yes
-
-
-
-Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.2.0 is not much different from 2.1.2, released seven weeks ago.
-A number of bugs have been fixed, most notably #85658, which gave
-problems for quite a few people. There have been many internal
-cleanups, but those are not user visible.
-
-The following bugs have been fixed since 2.1.2:
-85658 Assert in coregrind/vg_libpthread.c:2326 (open64) !=
- (void*)0 failed
- This bug was reported multiple times, and so the following
- duplicates of it are also fixed: 87620, 85796, 85935, 86065,
- 86919, 86988, 87917, 88156
+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.
-80716 Semaphore mapping bug caused by unmap (sem_destroy)
- (Was fixed prior to 2.1.2)
+* ==================== CORE CHANGES ===================
-86987 semctl and shmctl syscalls family is not handled properly
+* The libiberty demangler has been updated, which brings support for
+ Rust v0 name demangling. [Update: alas, due to a bug, this support
+ isn't working in 3.18.0.]
-86696 valgrind 2.1.2 + RH AS2.1 + librt
+* __libc_freeres isn't called anymore after the program recieves a
+ fatal signal. Causing some internal glibc resources to hang around,
+ but preventing any crashes after the program has ended.
-86730 valgrind locks up at end of run with assertion failure
- in __pthread_unwind
+* The DWARF reader is now very much faster at startup when just
+ --read-inline-info=yes (the default in most cases) is given.
-86641 memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1
- (also fixes 74298, a duplicate of this)
+* glibc 2.34, which moved various functions from libpthread.so into
+ libc.so, is now supported.
-85947 MMX/SSE unhandled instruction 'sfence'
+* ================== PLATFORM CHANGES =================
-84978 Wrong error "Conditional jump or move depends on
- uninitialised value" resulting from "sbbl %reg, %reg"
+* arm64:
-86254 ssort() fails when signed int return type from comparison is
- too small to handle result of unsigned int subtraction
+ - v8.2 scalar and vector FABD, FACGE, FACGT and FADD.
+ - v8.2 FP compare & conditional compare instructions.
+ - Zero variants of v8.2 FP compare instructions.
-87089 memalign( 4, xxx) makes valgrind assert
+* s390:
-86407 Add support for low-level parallel port driver ioctls.
+ - Support the miscellaneous-instruction-extensions facility 3 and
+ the vector-enhancements facility 2. This enables programs
+ compiled with "-march=arch13" or "-march=z15" to be executed
+ under Valgrind.
-70587 Add timestamps to Valgrind output? (wishlist)
+* ppc64:
-84937 vg_libpthread.c:2505 (se_remap): Assertion `res == 0'
- (fixed prior to 2.1.2)
+ - ISA 3.1 support is now complete
+ - ISA 3.0 support for the darn instruction added.
+ - ISA 3.0 support for the vector system call instruction scv added.
+ - ISA 3.0 support for the copy, paste and cpabort instructions added.
+
+* Support for X86/FreeBSD and AMD64/FreeBSD has been added.
+
+* ==================== OTHER CHANGES ====================
+
+* Memcheck on amd64: minor fixes to remove some false positive
+ undef-value errors
+
+* ==================== 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.
+
+208531 [PATCH]: FreeBSD support for valgrind
+368960 WARNING: unhandled amd64-linux syscall: 163 (acct)
+407589 [Linux] Add support for C11 aligned_alloc() and GNU reallocarray()
+423963 Error in child thread when CLONE_PIDFD is used
+426148 crash with "impossible happened" when running BPF CO-RE programs
+429375 PPC ISA 3.1 support is missing, part 9
+431157 PPC_FEATURE2_SCV needs to be masked in AT_HWCAP2
+431306 Update demangler to support Rust v0 name mangling
+432387 s390x: z15 instructions support
+433437 FreeBSD support, part 1
+433438 FreeBSD support, part 2
+433439 FreeBSD support, part 3
+433469 FreeBSD support, part 4
+433473 FreeBSD support, part 5
+433477 FreeBSD support, part 6
+433479 FreeBSD support, part 7
+433504 FreeBSD support, part 8
+433506 FreeBSD support, part 9
+433507 FreeBSD support, part 10
+433508 FreeBSD support, part 11
+433510 FreeBSD support, part 12
+433801 PPC ISA 3.1 support is missing, part 10 (ISA 3.1 support complete)
+433863 s390x: memcheck/tests/s390x/{cds,cs,csg} failures
+434296 s390x: False-positive memcheck diagnostics from vector string
+ instructions
+434840 PPC64 darn instruction not supported
+435665 PPC ISA 3.0 copy, paste, cpabort instructions are not supported
+435908 valgrind tries to fetch from deubginfod for files which already
+ have debug information
+438871 unhandled instruction bytes: 0xF3 0x49 0xF 0x6F 0x9C 0x24 0x60 0x2
+439046 valgrind is unusably large when linked with lld
+439090 Implement close_range(2)
+439326 Valgrind 3.17.0 won't compile with Intel 2021 oneAPI compilers
+439590 glibc-2.34 breaks suppressions against obj:*/lib*/libc-2.*so*
+440670 unhandled ppc64le-linux syscall: 252 statfs64 and 253 fstatfs64
+440906 Fix impossible constraint issue in P10 testcase.
+441512 Remove a unneeded / unnecessary prefix check.
+441534 Update the expected output for test_isa_3_1_VRT.
+442061 very slow execution under Fedora 34 (readdwarf3)
+443031 Gcc -many change requires explicit .machine directives
+443033 Add support for the ISA 3.0 mcrxrx instruction
+443034 Sraw, srawi, srad, sradi, mfs
+443178 Powerpc, test jm-mfspr expected output needs to be updated.
+443179 Need new test for the lxvx and stxvx instructions on ISA 2.07 and
+ ISA 3.0 systems.
+443180 The subnormal test and the ISA 3.0 test generate compiler warnings
+443314 In the latest GIT version, Valgrind with "--trace-flags" crashes
+ at "al" register
+443605 Don't call final_tidyup (__libc_freeres) on FatalSignal
+
+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.
+
+(3.18.0.RC1: 12 Oct 2021)
+(3.18.0: 15 Oct 2021)
+
+
+
+Release 3.17.0 (19 Mar 2021)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-86317 cannot load libSDL-1.2.so.0 using valgrind
+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.
-86989 memcpy from mac_replace_strmem.c complains about
- uninitialized pointers passed when length to copy is zero
+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
+
+(3.17.0.RC1: 13 Mar 2021)
+(3.17.0.RC2: 17 Mar 2021)
+(3.17.0: 19 Mar 2021)
+
+
+
+Release 3.16.1 (22 June 2020)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-85811 gnu pascal symbol causes segmentation fault; ok in 2.0.0
+3.16.1 fixes two critical bugs discovered after 3.16.0 was frozen. It also
+fixes character encoding problems in the documentation HTML.
-79138 writing to sbrk()'d memory causes segfault
+422677 PPC sync instruction L field should only be 2 bits in ISA 3.0
+422715 32-bit x86: vex: the `impossible' happened: expr_is_guardable: unhandled expr
-77369 sched deadlock while signal received during pthread_join
- and the joined thread exited
+(3.16.1, 22 June 2020, 36d6727e1d768333a536f274491e5879cab2c2f7)
-88115 In signal handler for SIGFPE, siginfo->si_addr is wrong
- under Valgrind
-78765 Massif crashes on app exit if FP exceptions are enabled
-Additionally there are the following changes, which are not
-connected to any bug report numbers, AFAICS:
+Release 3.16.0 (27 May 2020)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Fix scary bug causing mis-identification of SSE stores vs
- loads and so causing memcheck to sometimes give nonsense results
- on SSE code.
+3.16.0 is a feature release with many improvements and the usual collection of
+bug fixes.
-* Add support for the POSIX message queue system calls.
+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.
-* Fix to allow 32-bit Valgrind to run on AMD64 boxes. Note: this does
- NOT allow Valgrind to work with 64-bit executables - only with 32-bit
- executables on an AMD64 box.
+* ==================== CORE CHANGES ===================
-* At configure time, only check whether linux/mii.h can be processed
- so that we don't generate ugly warnings by trying to compile it.
+* It is now possible to dynamically change the value of many command line
+ options while your program (or its children) are running under Valgrind.
-* Add support for POSIX clocks and timers.
+ 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]".
+
+* ==================== 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.
+
+343099 Linux setns syscall wrapper missing, unhandled syscall: 308
+ == 368923 WARNING: unhandled arm64-linux syscall: 268 (setns)
+ == 369031 WARNING: unhandled amd64-linux syscall: 308 (setns)
+385386 Assertion failed "szB >= CACHE_ENTRY_SIZE" at m_debuginfo/image.c:517
+400162 Patch: Guard against __GLIBC_PREREQ for musl libc
+400593 In Coregrind, use statx for some internal syscalls if [f]stat[64] fail
+400872 Add nanoMIPS support to Valgrind
+403212 drd/tests/trylock hangs on FreeBSD
+404406 s390x: z14 miscellaneous instructions not implemented
+405201 Incorrect size of struct vki_siginfo on 64-bit Linux architectures
+406561 mcinfcallWSRU gdbserver_test fails on ppc64
+406824 Unsupported baseline
+407218 Add support for the copy_file_range syscall
+407307 Intercept stpcpy also in ld.so for arm64
+407376 Update Xen support to 4.12 (4.13, actually) and add more coverage
+ == 390553
+407764 drd cond_post_wait gets wrong (?) condition on s390x z13 system
+408009 Expose rdrand and f16c even on avx if host cpu supports them
+408091 Missing pkey syscalls
+408414 Add support for missing for preadv2 and pwritev2 syscalls
+409141 Valgrind hangs when SIGKILLed
+409206 Support for Linux PPS and PTP ioctls
+409367 exit_group() after signal to thread waiting in futex() causes hangs
+409429 amd64: recognize 'cmpeq' variants as a dependency breaking idiom
+409780 References to non-existent configure.in
+410556 Add support for BLKIO{MIN,OPT} and BLKALIGNOFF ioctls
+410599 Non-deterministic behaviour of pth_self_kill_15_other test
+410757 discrepancy for preadv2/pwritev2 syscalls across different versions
+411134 Allow the user to change a set of command line options during execution
+411451 amd64->IR of bt/btc/bts/btr with immediate clears zero flag
+412344 Problem setting mips flags with specific paths
+412408 unhandled arm-linux syscall: 124 - adjtime - on arm-linux
+413119 Ioctl wrapper for DRM_IOCTL_I915_GEM_MMAP
+413330 avx-1 test fails on AMD EPYC 7401P 24-Core Processor
+413603 callgrind_annotate/cg_annotate truncate function names at '#'
+414565 Specific use case bug found in SysRes VG_(do_sys_sigprocmask)
+415136 ARMv8.1 Compare-and-Swap instructions are not supported
+415757 vex x86->IR: 0x66 0xF 0xCE 0x4F (bswapw)
+416239 valgrind crashes when handling clock_adjtime
+416285 Use prlimit64 in VG_(getrlimit) and VG_(setrlimit)
+416286 DRD reports "conflicting load" error on std::mutex::lock()
+416301 s390x: "compare and signal" not supported
+416387 finit_module and bpf syscalls are unhandled on arm64
+416464 Fix false reports for uninitialized memory for PR_CAPBSET_READ/DROP
+416667 gcc10 ppc64le impossible constraint in 'asm' in test_isa.
+416753 new 32bit time syscalls for 2038+
+417075 pwritev(vector[...]) suppression ignored
+ 417075 is not fixed, but incompatible supp entries are detected
+ and a warning is produced for these.
+417187 [MIPS] Conditional branch problem since 'grail' changes
+417238 Test memcheck/tests/vbit-test fails on mips64 BE
+417266 Make memcheck/tests/linux/sigqueue usable with musl
+417281 s390x: /bin/true segfaults with "grail" enabled
+417427 commit to fix vki_siginfo_t definition created numerous regression
+ errors on ppc64
+417452 s390_insn_store_emit: dst->tag for HRcVec128
+417578 Add suppressions for glibc DTV leaks
+417906 clone with CLONE_VFORK and no CLONE_VM fails
+418004 Grail code additions break ppc64.
+418435 s390x: spurious "Conditional jump or move depends on uninitialised [..]"
+418997 s390x: Support Iex_ITE for float and vector types
+419503 s390x: Avoid modifying registers returned from isel functions
+421321 gcc10 arm64 build needs __getauxval for linking with libgcc
+421570 std_mutex fails on Arm v8.1 h/w
+434035 vgdb might crash if valgrind is killed
+n-i-bz Fix minor one time leaks in dhat.
+n-i-bz Add --run-cxx-freeres=no in outer args to avoid inner crashes.
+n-i-bz Add support for the Linux io_uring system calls
+n-i-bz sys_statx: don't complain if both |filename| and |buf| are NULL.
+n-i-bz Fix non-glibc build of test suite with s390x_features
+n-i-bz MinGW, include/valgrind.h: Fix detection of 64-bit mode
+423195 PPC ISA 3.1 support is missing, part 1
+
+(3.16.0.RC1: 18 May 2020, git 6052ee66a0cf5234e8e2a2b49a8760226bc13b92)
+(3.16.0.RC2: 19 May 2020, git 940ec1ca69a09f7fdae3e800b7359f85c13c4b37)
+(3.16.0: 27 May 2020, git bf5e647edb9e96cbd5c57cc944984402eeee296d)
+
+
+
+Release 3.15.0 (12 April 2019)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.15.0 is a feature release with many improvements and the usual collection of
+bug fixes.
-Developer (cvs head) release 2.1.2 (18 July 2004)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.1.2 contains four months worth of bug fixes and refinements.
-Although officially a developer release, we believe it to be stable
-enough for widespread day-to-day use. 2.1.2 is pretty good, so try it
-first, although there is a chance it won't work. If so then try 2.0.0
-and tell us what went wrong." 2.1.2 fixes a lot of problems present
-in 2.0.0 and is generally a much better product.
+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.
-Relative to 2.1.1, a large number of minor problems with 2.1.1 have
-been fixed, and so if you use 2.1.1 you should try 2.1.2. Users of
-the last stable release, 2.0.0, might also want to try this release.
+* ==================== CORE CHANGES ===================
-The following bugs, and probably many more, have been fixed. These
-are listed at http://bugs.kde.org. Reporting a bug for valgrind in
-the http://bugs.kde.org is much more likely to get you a fix than
-mailing developers directly, so please continue to keep sending bugs
-there.
+* The XTree Massif output format now makes use of the information obtained
+ when specifying --read-inline-info=yes.
-76869 Crashes when running any tool under Fedora Core 2 test1
- This fixes the problem with returning from a signal handler
- when VDSOs are turned off in FC2.
+* amd64 (x86_64): the RDRAND and F16C insn set extensions are now supported.
-69508 java 1.4.2 client fails with erroneous "stack size too small".
- This fix makes more of the pthread stack attribute related
- functions work properly. Java still doesn't work though.
+* ==================== TOOL CHANGES ====================
-71906 malloc alignment should be 8, not 4
- All memory returned by malloc/new etc is now at least
- 8-byte aligned.
+* DHAT:
-81970 vg_alloc_ThreadState: no free slots available
- (closed because the workaround is simple: increase
- VG_N_THREADS, rebuild and try again.)
+ - 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.
-78514 Conditional jump or move depends on uninitialized value(s)
- (a slight mishanding of FP code in memcheck)
+ - 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.
+
+* ==================== 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.
+
+385411 s390x: z13 vector floating-point instructions not implemented
+397187 z13 vector register support for vgdb gdbserver
+398183 Vex errors with _mm256_shuffle_epi8/vpshufb
+398870 Please add support for instruction vcvtps2ph
+399287 amd64 front end: Illegal Instruction vcmptrueps
+399301 Use inlined frames in Massif XTree output.
+399322 Improve callgrind_annotate output
+399444 VEX/priv/guest_s390_toIR.c:17407: (style) Mismatching assignment [..]
+400164 helgrind test encounters mips x-compiler warnings and assembler error
+400490 s390x: VRs allocated as if separate from FPRs
+400491 s390x: Operand of LOCH treated as unsigned integer
+400975 Compile error: error: '-mips64r2' conflicts with the other architecture
+ options, which specify a mips64 processor
+401112 LLVM 5.0 generates comparison against partially initialized data
+401277 More bugs in z13 support
+401454 Add a --show-percs option to cg_annotate and callgrind_annotate.
+401578 drd: crashes sometimes on fork()
+401627 memcheck errors with glibc avx2 optimized wcsncmp
+401822 none/tests/ppc64/jm-vmx fails and produces assembler warnings
+401827 none/tests/ppc64/test_isa_2_06_part3 failure on ppc64le (xvrsqrtesp)
+401828 none/tests/ppc64/test_isa_2_06_part1 failure on ppc64le (fcfids and
+ fcfidus)
+402006 mark helper regs defined in final_tidyup before freeres_wrapper call
+402048 WARNING: unhandled ppc64[be|le]-linux syscall: 26 (ptrace)
+402123 invalid assembler opcodes for mips32r2
+402134 assertion fail in mc_translate.c (noteTmpUsesIn) Iex_VECRET on arm64
+402327 Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x13 (DW_OP_drop)
+402341 drd/tests/tsan_thread_wrappers_pthread.h:369: suspicious code ?
+402351 mips64 libvexmultiarch_test fails on s390x
+402369 Overhaul DHAT
+402395 coregrind/vgdb-invoker-solaris.c: 2 * poor error checking
+402480 Do not use %rsp in clobber list
+402481 vbit-test fails on x86 for Iop_CmpEQ64 iselInt64Expr Sar64
+402515 Implement new option --show-error-list=no|yes / -s
+402519 POWER 3.0 addex instruction incorrectly implemented
+402781 Redo the cache used to process indirect branch targets
+403123 vex amd64->IR:0xF3 0x48 0xF 0xAE 0xD3 (wrfsbase)
+403552 s390x: wrong facility bit checked for vector facility
+404054 memcheck powerpc subfe x, x, x initializes x to 0 or -1 based on CA
+404638 Add VG_(replaceIndexXA)
+404843 s390x: backtrace sometimes ends prematurely
+404888 autotools cleanup series
+405079 unhandled ppc64le-linux syscall: 131 (quotactl)
+405182 Valgrind fails to build with Clang
+405205 filter_libc: remove the line holding the futex syscall error entirely
+405356 PPC64, xvcvsxdsp, xvcvuxdsp are supposed to write the 32-bit result to
+ the upper and lower 32-bits of the 64-bit result
+405362 PPC64, vmsummbm instruction doesn't handle overflow case correctly
+405363 PPC64, xvcvdpsxws, xvcvdpuxws, do not handle NaN arguments correctly.
+405365 PPC64, function _get_maxmin_fp_NaN() doesn't handle QNaN, SNaN case
+ correctly.
+405403 s390x disassembler cannot be used on x86
+405430 Use gcc -Wimplicit-fallthrough=2 by default if available
+405458 MIPS mkFormVEC arguments swapped?
+405716 drd: Fix an integer overflow in the stack margin calculation
+405722 Support arm64 core dump
+405733 PPC64, xvcvdpsp should write 32-bit result to upper and lower 32-bits
+ of the 64-bit destination field.
+405734 PPC64, vrlwnm, vrlwmi, vrldrm, vrldmi do not work properly when me < mb
+405782 "VEX temporary storage exhausted" when attempting to debug slic3r-pe
+406198 none/tests/ppc64/test_isa_3_0_other test sporadically including CA
+ bit in output.
+406256 PPC64, vector floating point instructions don't handle subnormal
+ according to VSCR[NJ] bit setting.
+406352 cachegrind/callgrind fails ann tests because of missing a.c
+406354 dhat is broken on x86 (32bit)
+406355 mcsignopass, mcsigpass, mcbreak fail due to difference in gdb output
+406357 gdbserver_tests fails because of gdb output change
+406360 memcheck/tests/libstdc++.supp needs more supression variants
+406422 none/tests/amd64-linux/map_32bits.vgtest fails too easily
+406465 arm64 insn selector fails on "t0 = <expr>" where <expr> has type Ity_F16
+407340 PPC64, does not support the vlogefp, vexptefp instructions.
+n-i-bz add syswrap for PTRACE_GET|SET_THREAD_AREA on amd64.
+n-i-bz Fix callgrind_annotate non deterministic order for equal total
+n-i-bz callgrind_annotate --threshold=100 does not print all functions.
+n-i-bz callgrind_annotate Use of uninitialized value in numeric gt (>)
+n-i-bz amd64 (x86_64): RDRAND and F16C insn set extensions are supported
+
+(3.15.0.RC1: 8 April 2019, git ce94d674de5b99df173aad4c3ee48fc2a92e5d9c)
+(3.15.0.RC2: 11 April 2019, git 0c8be9bbede189ec580ec270521811766429595f)
+(3.15.0: 14 April 2019, git 270037da8b508954f0f7d703a0bebf5364eec548)
+
+
+
+Release 3.14.0 (9 October 2018)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-77952 pThread Support (crash) (due to initialisation-ordering probs)
- (also 85118)
+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.
+
+* ==================== 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.
+
+79362 Debug info is lost for .so files when they are dlclose'd
+208052 strlcpy error when n = 0
+255603 exp-sgcheck Assertion '!already_present' failed
+338252 building valgrind with -flto (link time optimisation) fails
+345763 MIPS N32 ABI support
+368913 WARNING: unhandled arm64-linux syscall: 117 (ptrace)
+ == 388664 unhandled arm64-linux syscall: 117 (ptrace)
+372347 Replacement problem of the additional c++14/c++17 new/delete operators
+373069 memcheck/tests/leak_cpp_interior fails with GCC 5.1+
+376257 helgrind history full speed up using a cached stack
+379373 Fix syscall param msg->desc.port.name points to uninitialised byte(s)
+ on macOS 10.12
+379748 Fix missing pselect syscall (OS X 10.11)
+379754 Fix missing syscall ulock_wait (OS X 10.12)
+380397 s390x: __GI_strcspn() replacemenet needed
+381162 possible array overrun in VEX register allocator
+381272 ppc64 doesn't compile test_isa_2_06_partx.c without VSX support
+381274 powerpc too chatty even with --sigill-diagnostics=no
+381289 epoll_pwait can have a NULL sigmask
+381553 VEX register allocator v3
+381556 arm64: Handle feature registers access on 4.11 Linux kernel or later
+381769 Use ucontext_t instead of struct ucontext
+381805 arm32 needs ld.so index hardwire for new glibc security fixes
+382256 gz compiler flag test doesn't work for gold
+382407 vg_perf needs "--terse" command line option
+382515 "Assertion 'di->have_dinfo' failed." on wine's dlls/mscoree/tests/[..]
+382563 MIPS MSA ASE support
+382998 xml-socket doesn't work
+383275 massif: m_xarray.c:162 (ensureSpaceXA): Assertion '!xa->arr' failed
+383723 Fix missing kevent_qos syscall (macOS 10.11)
+ == 385604 illegal hardware instruction (OpenCV cv::namedWindow)
+384096 Mention AddrCheck at Memcheck's command line option [..]
+384230 vex x86->IR: 0x67 0xE8 0xAB 0x68
+ == 384156 vex x86->IR: 0x67 0xE8 0x6B 0x6A
+ == 386115 vex x86->IR: 0x67 0xE8 0xD3 0x8B any program
+ == 388407 vex x86->IR: 0x67 0xE8 0xAB 0x29
+ == 394903 vex x86->IR: 0x67 0xE8 0x1B 0xDA
+384337 performance improvements to VEX register allocator v2 and v3
+384526 reduce number of spill insns generated by VEX register allocator v3
+384584 Callee saved regs listed first for AMD64, X86, and PPC architectures
+384631 Sanitise client args as printed with -v
+384633 Add a simple progress-reporting facility
+384987 VEX regalloc: allocate caller-save registers for short lived vregs
+385055 PPC VEX temporary storage exhausted
+385182 PPC64 is missing support for the DSCR
+385183 PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp
+385207 PPC64, generate_store_FPRF() generates too many Iops
+385208 PPC64, xxperm instruction exhausts temporary memory
+385210 PPC64, vpermr instruction could exhaust temporary memory
+385279 unhandled syscall: mach:43 (mach_generate_activity_id)
+ == 395136 valgrind: m_syswrap/syswrap-main.c:438 (Bool eq_Syscall[..]
+ == 387045 Valgrind crashing on High Sierra when testing any newly [..]
+385334 PPC64, fix vpermr, xxperm, xxpermr mask value.
+385408 s390x: z13 vector "support" instructions not implemented
+385409 s390x: z13 vector integer instructions not implemented
+385410 s390x: z13 vector string instructions not implemented
+385412 s390x: new non-vector z13 instructions not implemented
+385868 glibc ld.so _dl_runtime_resolve_avx_slow conditional jump warning.
+385912 none/tests/rlimit_nofile fails on newer glibc/kernel.
+385939 Optionally exit on the first error
+386318 valgrind.org/info/tools.html is missing SGCheck
+386425 running valgrind + wine on armv7l gives illegal opcode
+386397 PPC64, valgrind truncates powerpc timebase to 32-bits.
+387410 MIPSr6 support
+387664 Memcheck: make expensive-definedness-checks be the default
+387712 s390x cgijnl reports Conditional jump depends on uninitialised value
+387766 asm shifts cause false positive "Conditional jump or move depends
+ on uninitialised value"
+387773 .gnu_debugaltlink paths resolve relative to .debug file, not symlink
+388174 valgrind with Wine quits with "Assertion 'cfsi_fits' failed"
+388786 Support bpf syscall in amd64 Linux
+388862 Add replacements for wmemchr and wcsnlen on Linux
+389065 valgrind meets gcc flag -Wlogical-op
+389373 exp-sgcheck the 'impossible' happened as Ist_LoadG is not instrumented
+390471 suppression by specification of source-file line number
+390723 make xtree dump files world wide readable, similar to log files
+391164 constraint bug in tests/ppc64/test_isa_2_07_part1.c for mtfprwa
+391861 Massif Assertion 'n_ips >= 1 && n_ips <= VG_(clo_backtrace_size)'
+392118 unhandled amd64-linux syscall: 332 (statx)
+392449 callgrind not clearing the number of calls properly
+393017 Add missing support for xsmaxcdp instruction, bug fixes for xsmincdp,
+ lxssp, stxssp and stxvl instructions.
+393023 callgrind_control risks using the wrong vgdb
+393062 build-id ELF phdrs read causes "debuginfo reader: ensure_valid failed"
+393099 posix_memalign() invalid write if alignment == 0
+393146 failing assert "is_DebugInfo_active(di)"
+395709 PPC64 is missing support for the xvnegsp instruction
+395682 Accept read-only PT_LOAD segments and .rodata by ld -z separate-code
+ == 384727
+396475 valgrind OS-X build: config.h not found (out-of-tree macOS builds)
+395991 arm-linux: wine's unit tests enter a signal delivery loop [..]
+396839 s390x: Trap instructions not implemented
+396887 arch_prctl should return EINVAL on unknown option
+ == 397286 crash before launching binary (Unsupported arch_prctl option)
+ == 397393 valgrind: the 'impossible' happened: (Archlinux)
+ == 397521 valgrind: the 'impossible' happened: Unsupported [..]
+396906 compile tests failure on mips32-linux: broken inline asm in tests on
+ mips32-linux
+397012 glibc ld.so uses arch_prctl on i386
+397089 amd64: Incorrect decoding of three-register vmovss/vmovsd opcode 11h
+397354 utimensat should ignore timespec tv_sec if tv_nsec is UTIME_NOW/OMIT
+397424 glibc 2.27 and gdb_server tests
+398028 Assertion `cfsi_fits` failing in simple C program
+398066 s390x: cgijl dep1, 0 reports false unitialised values warning
+
+n-i-bz Fix missing workq_ops operations (macOS)
+n-i-bz fix bug in strspn replacement
+n-i-bz Add support for the Linux BLKFLSBUF ioctl
+n-i-bz Add support for the Linux BLKREPORTZONE and BLKRESETZONE ioctls
+n-i-bz Fix possible stack trashing by semctl syscall wrapping
+n-i-bz Add support for the Linux membarrier() system call
+n-i-bz x86 front end: recognise and handle UD2 correctly
+n-i-bz Signal delivery for x86-linux: ensure that the stack pointer is
+ correctly aligned before entering the handler.
+
+(3.14.0.RC1: 30 September 2018, git c2aeea2d28acb0639bcc8cc1e4ab115067db1eae)
+(3.14.0.RC2: 3 October 2018, git 3e214c4858a6fdd5697e767543a0c19e30505582)
+(3.14.0: 9 October 2018, git 353a3587bb0e2757411f9138f5e936728ed6cc4f)
+
+
+
+Release 3.13.0 (15 June 2017)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-80942 Addrcheck wasn't doing overlap checking as it should.
-78048 return NULL on malloc/new etc failure, instead of asserting
-73655 operator new() override in user .so files often doesn't get picked up
-83060 Valgrind does not handle native kernel AIO
-69872 Create proper coredumps after fatal signals
-82026 failure with new glibc versions: __libc_* functions are not exported
-70344 UNIMPLEMENTED FUNCTION: tcdrain
-81297 Cancellation of pthread_cond_wait does not require mutex
-82872 Using debug info from additional packages (wishlist)
-83025 Support for ioctls FIGETBSZ and FIBMAP
-83340 Support for ioctl HDIO_GET_IDENTITY
-79714 Support for the semtimedop system call.
-77022 Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
-82098 hp2ps ansification (wishlist)
-83573 Valgrind SIGSEGV on execve
-82999 show which cmdline option was erroneous (wishlist)
-83040 make valgrind VPATH and distcheck-clean (wishlist)
-83998 Assertion `newfd > vgPlain_max_fd' failed (see below)
-82722 Unchecked mmap in as_pad leads to mysterious failures later
-78958 memcheck seg faults while running Mozilla
-85416 Arguments with colon (e.g. --logsocket) ignored
+3.13.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.
-Additionally there are the following changes, which are not
-connected to any bug report numbers, AFAICS:
-
-* Rearranged address space layout relative to 2.1.1, so that
- Valgrind/tools will run out of memory later than currently in many
- circumstances. This is good news esp. for Calltree. It should
- be possible for client programs to allocate over 800MB of
- memory when using memcheck now.
-
-* Improved checking when laying out memory. Should hopefully avoid
- the random segmentation faults that 2.1.1 sometimes caused.
-
-* Support for Fedora Core 2 and SuSE 9.1. Improvements to NPTL
- support to the extent that V now works properly on NPTL-only setups.
-
-* Renamed the following options:
- --logfile-fd --> --log-fd
- --logfile --> --log-file
- --logsocket --> --log-socket
- to be consistent with each other and other options (esp. --input-fd).
-
-* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
- improve the checking of other interface related ioctls.
-
-* Fix building with gcc-3.4.1.
-
-* Remove limit on number of semaphores supported.
-
-* Add support for syscalls: set_tid_address (258), acct (51).
-
-* Support instruction "repne movs" -- not official but seems to occur.
-
-* Implement an emulated soft limit for file descriptors in addition to
- the current reserved area, which effectively acts as a hard limit. The
- setrlimit system call now simply updates the emulated limits as best
- as possible - the hard limit is not allowed to move at all and just
- returns EPERM if you try and change it. This should stop reductions
- in the soft limit causing assertions when valgrind tries to allocate
- descriptors from the reserved area.
- (This actually came from bug #83998).
-
-* Major overhaul of Cachegrind implementation. First user-visible change
- is that cachegrind.out files are now typically 90% smaller than they
- used to be; code annotation times are correspondingly much smaller.
- Second user-visible change is that hit/miss counts for code that is
- unloaded at run-time is no longer dumped into a single "discard" pile,
- but accurately preserved.
-
-* Client requests for telling valgrind about memory pools.
-
-
-
-Developer (cvs head) release 2.1.1 (12 March 2004)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-2.1.1 contains some internal structural changes needed for V's
-long-term future. These don't affect end-users. Most notable
-user-visible changes are:
-
-* Greater isolation between Valgrind and the program being run, so
- the program is less likely to inadvertently kill Valgrind by
- doing wild writes.
-
-* Massif: a new space profiling tool. Try it! It's cool, and it'll
- tell you in detail where and when your C/C++ code is allocating heap.
- Draws pretty .ps pictures of memory use against time. A potentially
- powerful tool for making sense of your program's space use.
-
-* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
- various signal/syscall things, and various problems with debug
- info readers.
-
-* Support for glibc-2.3.3 based systems.
-
-We are now doing automatic overnight build-and-test runs on a variety
-of distros. As a result, we believe 2.1.1 builds and runs on:
-Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
-
-
-The following bugs, and probably many more, have been fixed. These
-are listed at http://bugs.kde.org. Reporting a bug for valgrind in
-the http://bugs.kde.org is much more likely to get you a fix than
-mailing developers directly, so please continue to keep sending bugs
-there.
-
-69616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
-69856 I don't know how to instrument MMXish stuff (Helgrind)
-73892 valgrind segfaults starting with Objective-C debug info
- (fix for S-type stabs)
-73145 Valgrind complains too much about close(<reserved fd>)
-73902 Shadow memory allocation seems to fail on RedHat 8.0
-68633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
-75099 impossible to trace multiprocess programs
-76839 the `impossible' happened: disInstr: INT but not 0x80 !
-76762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
-76747 cannot include valgrind.h in c++ program
-76223 parsing B(3,10) gave NULL type => impossible happens
-75604 shmdt handling problem
-76416 Problems with gcc 3.4 snap 20040225
-75614 using -gstabs when building your programs the `impossible' happened
-75787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
-75294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
- (REP RET)
-73326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
-72596 not recognizing __libc_malloc
-69489 Would like to attach ddd to running program
-72781 Cachegrind crashes with kde programs
-73055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
-73026 Descriptor leak check reports port numbers wrongly
-71705 README_MISSING_SYSCALL_OR_IOCTL out of date
-72643 Improve support for SSE/SSE2 instructions
-72484 valgrind leaves it's own signal mask in place when execing
-72650 Signal Handling always seems to restart system calls
-72006 The mmap system call turns all errors in ENOMEM
-71781 gdb attach is pretty useless
-71180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
-69886 writes to zero page cause valgrind to assert on exit
-71791 crash when valgrinding gimp 1.3 (stabs reader problem)
-69783 unhandled syscall: 218
-69782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
-70385 valgrind fails if the soft file descriptor limit is less
- than about 828
-69529 "rep; nop" should do a yield
-70827 programs with lots of shared libraries report "mmap failed"
- for some of them when reading symbols
-71028 glibc's strnlen is optimised enough to confuse valgrind
-
-
-
-
-Unstable (cvs head) release 2.1.0 (15 December 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
-(Julian). It looks eminently usable, and given that it fixes some
-significant bugs, may well be worth using on a day-to-day basis.
-2.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
-8.2, RedHat 8.
-
-2.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
-handling of system calls and signals, and their interaction with
-threads. In general, the accuracy of the system call, thread and
-signal simulations is much improved. Specifically:
-
-- Blocking system calls behave exactly as they do when running
- natively (not on valgrind). That is, if a syscall blocks only the
- calling thread when running natively, than it behaves the same on
- valgrind. No more mysterious hangs because V doesn't know that some
- syscall or other, should block only the calling thread.
-
-- Interrupted syscalls should now give more faithful results.
-
-- Finally, signal contexts in signal handlers are supported. As a
- result, konqueror on SuSE 9 no longer segfaults when notified of
- file changes in directories it is watching.
-
-Other changes:
-
-- Robert Walsh's file descriptor leakage checks. When enabled,
- Valgrind will print out a list of open file descriptors on
- exit. Along with each file descriptor, Valgrind prints out a stack
- backtrace of where the file was opened and any details relating to the
- file descriptor such as the file name or socket details.
- To use, give: --track-fds=yes
-
-- Implemented a few more SSE/SSE2 instructions.
-
-- Less crud on the stack when you do 'where' inside a GDB attach.
-
-- Fixed the following bugs:
- 68360: Valgrind does not compile against 2.6.0-testX kernels
- 68525: CVS head doesn't compile on C90 compilers
- 68566: pkgconfig support (wishlist)
- 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
- 69140: valgrind not able to explicitly specify a path to a binary.
- 69432: helgrind asserts encountering a MutexErr when there are
- EraserErr suppressions
-
-- Increase the max size of the translation cache from 200k average bbs
- to 300k average bbs. Programs on the size of OOo (680m17) are
- thrashing the cache at the smaller size, creating large numbers of
- retranslations and wasting significant time as a result.
-
-
-
-Stable release 2.0.0 (5 Nov 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-2.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
-improves support for SuSE 9 and the Red Hat "Severn" beta.
+* ==================== CORE CHANGES ===================
-- Further improvements to SSE/SSE2 support. The entire test suite of
- the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
- 20030307Z '-g -O -xW' now works. I think this gives pretty good
- coverage of SSE/SSE2 floating point instructions, or at least the
- subset emitted by Icc.
+* The translation cache size has been increased to keep up with the demands of
+ large applications. The maximum number of sectors has increased from 24 to
+ 48. The default number of sectors has increased from 16 to 32 on all
+ targets except Android, where the increase is from 6 to 12.
-- Also added support for the following instructions:
- MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
- PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
+* The amount of memory that Valgrind can use has been increased from 64GB to
+ 128GB. In particular this means your application can allocate up to about
+ 60GB when running on Memcheck.
-- CFI support for GDB version 6. Needed to enable newer GDBs
- to figure out where they are when using --gdb-attach=yes.
+* Valgrind's default load address has been changed from 0x3800'0000 to
+ 0x5800'0000, so as to make it possible to load larger executables. This
+ should make it possible to load executables of size at least 1200MB.
-- Fix this:
- mc_translate.c:1091 (memcheck_instrument): Assertion
- `u_in->size == 4 || u_in->size == 16' failed.
+* A massive spaceleak caused by reading compressed debuginfo files has been
+ fixed. Valgrind should now be entirely usable with gcc-7.0 "-gz" created
+ debuginfo.
-- Return an error rather than panicing when given a bad socketcall.
+* The C++ demangler has been updated.
-- Fix checking of syscall rt_sigtimedwait().
+* Support for demangling Rust symbols has been added.
-- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
+* A new representation of stack traces, the "XTree", has been added. An XTree
+ is a tree of stacktraces with data associated with the stacktraces. This is
+ used by various tools (Memcheck, Helgrind, Massif) to report on the heap
+ consumption of your program. Reporting is controlled by the new options
+ --xtree-memory=none|allocs|full and --xtree-memory-file=<file>.
-- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
- bytes long, when it could be shorter, which could cause false
- positives.
+ A report can also be produced on demand using the gdbserver monitor command
+ 'xtmemory [<filename>]>'. The XTree can be output in 2 formats: 'callgrind
+ format' and 'massif format. The existing visualisers for these formats (e.g.
+ callgrind_annotate, KCachegrind, ms_print) can be used to visualise and
+ analyse these reports.
-- Support use of select() for very large numbers of file descriptors.
+ Memcheck can also produce XTree leak reports using the Callgrind file
+ format. For more details, see the user manual.
-- Don't fail silently if the executable is statically linked, or is
- setuid/setgid. Print an error message instead.
+* ================== PLATFORM CHANGES =================
-- Support for old DWARF-1 format line number info.
+* ppc64: support for ISA 3.0B and various fixes for existing 3.0 support
+* amd64: fixes for JIT failure problems on long AVX2 code blocks
+* amd64 and x86: support for CET prefixes has been added
-Snapshot 20031012 (12 October 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* arm32: a few missing ARMv8 instructions have been implemented
-Three months worth of bug fixes, roughly. Most significant single
-change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
+* arm64, mips64, mips32: an alternative implementation of Load-Linked and
+ Store-Conditional instructions has been added. This is to deal with
+ processor implementations that implement the LL/SC specifications strictly
+ and as a result cause Valgrind to hang in certain situations. The
+ alternative implementation is automatically enabled at startup, as required.
+ You can use the option --sim-hints=fallback-llsc to force-enable it if you
+ want.
-20031012 builds on Red Hat Fedora ("Severn") but doesn't really work
-(curiously, mozilla runs OK, but a modest "ls -l" bombs). I hope to
-get a working version out soon. It may or may not work ok on the
-forthcoming SuSE 9; I hear positive noises about it but haven't been
-able to verify this myself (not until I get hold of a copy of 9).
+* Support for OSX 10.12 has been improved.
-A detailed list of changes, in no particular order:
+* On Linux, clone handling has been improved to honour CLONE_VFORK that
+ involves a child stack. Note however that CLONE_VFORK | CLONE_VM is handled
+ like CLONE_VFORK (by removing CLONE_VM), so applications that depend on
+ CLONE_VM exact semantics will (still) not work.
+
+* The TileGX/Linux port has been removed because it appears to be both unused
+ and unsupported.
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+ - Memcheck should give fewer false positives when running optimised
+ Clang/LLVM generated code.
+
+ - Support for --xtree-memory and 'xtmemory [<filename>]>'.
+
+ - New command line options --xtree-leak=no|yes and --xtree-leak-file=<file>
+ to produce the end of execution leak report in a xtree callgrind format
+ file.
+
+ - New option 'xtleak' in the memcheck leak_check monitor command, to produce
+ the leak report in an xtree file.
+
+* Massif:
+
+ - Support for --xtree-memory and 'xtmemory [<filename>]>'.
+
+ - For some workloads (typically, for big applications), Massif memory
+ consumption and CPU consumption has decreased significantly.
+
+* Helgrind:
+
+ - Support for --xtree-memory and 'xtmemory [<filename>]>'.
+
+ - addition of client request VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN, useful
+ for Ada gnat compiled applications.
+
+* ==================== OTHER CHANGES ====================
+
+* For Valgrind developers: in an outer/inner setup, the outer Valgrind will
+ append the inner guest stacktrace to the inner host stacktrace. This helps
+ to investigate the errors reported by the outer, when they are caused by the
+ inner guest program (such as an inner regtest). See README_DEVELOPERS for
+ more info.
+
+* To allow fast detection of callgrind files by desktop environments and file
+ managers, the format was extended to have an optional first line that
+ uniquely identifies the format ("# callgrind format"). Callgrind creates
+ this line now, as does the new xtree functionality.
+
+* File name template arguments (such as --log-file, --xtree-memory-file, ...)
+ have a new %n format letter that is replaced by a sequence number.
+
+* "--version -v" now shows the SVN revision numbers from which Valgrind was
+ built.
+
+* ==================== 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.
+
+162848 --log-file output isn't split when a program forks
+340777 Illegal instruction on mips (ar71xx)
+341481 MIPS64: Iop_CmpNE32 triggers false warning on MIPS64 platforms
+342040 Valgrind mishandles clone with CLONE_VFORK | CLONE_VM that clones
+ to a different stack.
+344139 x86 stack-seg overrides, needed by the Wine people
+344524 store conditional of guest applications always fail - observed on
+ Octeon3(MIPS)
+348616 Wine/valgrind: noted but unhandled ioctl 0x5390 [..] (DVD_READ_STRUCT)
+352395 Please provide SVN revision info in --version -v
+352767 Wine/valgrind: noted but unhandled ioctl 0x5307 [..] (CDROMSTOP)
+356374 Assertion 'DRD_(g_threadinfo)[tid].pt_threadid !=
+ INVALID_POSIX_THREADID' failed
+358213 helgrind/drd bar_bad testcase hangs or crashes with new glibc pthread
+ barrier implementation
+358697 valgrind.h: Some code remains even when defining NVALGRIND
+359202 Add musl libc configure/compile
+360415 amd64 instructions ADCX and ADOX are not implemented in VEX
+ == 372828 (vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10)
+360429 unhandled ioctl 0x530d with no size/direction hints (CDROMREADMODE1)
+362223 assertion failed when .valgrindrc is a directory instead of a file
+367543 bt/btc/btr/bts x86/x86_64 instructions are poorly-handled wrt flags
+367942 Segfault vgPlain_do_sys_sigaction (m_signals.c:1138)
+368507 can't malloc chunks larger than about 34GB
+368529 Android arm target link error, missing atexit and pthread_atfork
+368863 WARNING: unhandled arm64-linux syscall: 100 (get_robust_list)
+368865 WARNING: unhandled arm64-linux syscall: 272 (kcmp)
+368868 disInstr(arm64): unhandled instruction 0xD53BE000 = cntfrq_el0 (ARMv8)
+368917 WARNING: unhandled arm64-linux syscall: 218 (request_key)
+368918 WARNING: unhandled arm64-linux syscall: 127 (sched_rr_get_interval)
+368922 WARNING: unhandled arm64-linux syscall: 161 (sethostname)
+368924 WARNING: unhandled arm64-linux syscall: 84 (sync_file_range)
+368925 WARNING: unhandled arm64-linux syscall: 130 (tkill)
+368926 WARNING: unhandled arm64-linux syscall: 97 (unshare)
+369459 valgrind on arm64 violates the ARMv8 spec (ldxr/stxr)
+370028 Reduce the number of compiler warnings on MIPS platforms
+370635 arm64 missing syscall getcpu
+371225 Fix order of timer_{gettime,getoverrun,settime} syscalls on arm64
+371227 Clean AArch64 syscall table
+371412 Rename wrap_sys_shmat to sys_shmat like other wrappers
+371471 Valgrind complains about non legit memory leaks on placement new (C++)
+371491 handleAddrOverrides() is [incorrect] when ASO prefix is used
+371503 disInstr(arm64): unhandled instruction 0xF89F0000
+371869 support '%' in symbol Z-encoding
+371916 execution tree xtree concept
+372120 c++ demangler demangles symbols which are not c++
+372185 Support of valgrind on ARMv8 with 32 bit executable
+372188 vex amd64->IR: 0x66 0xF 0x3A 0x62 0x4A 0x10 0x10 0x48 (PCMPxSTRx $0x10)
+372195 Power PC, xxsel instruction is not always recognized.
+372504 Hanging on exit_group
+372600 process loops forever when fatal signals are arriving quickly
+372794 LibVEX (arm32 front end): 'Assertion szBlg2 <= 3' failed
+373046 Stacks registered by core are never deregistered
+373069 memcheck/tests/leak_cpp_interior fails with GCC 5.1+
+373086 Implement additional Xen hypercalls
+373192 Calling posix_spawn in glibc 2.24 completely broken
+373488 Support for fanotify API on ARM64 architecture
+ == 368864 WARNING: unhandled arm64-linux syscall: 262 (fanotify_init)
+373555 Rename BBPTR to GSPTR as it denotes guest state pointer only
+373938 const IRExpr arguments for matchIRExpr()
+374719 some spelling fixes
+374963 increase valgrind's load address to prevent mmap failure
+375514 valgrind_get_tls_addr() does not work in case of static TLS
+375772 +1 error in get_elf_symbol_info() when computing value of 'hi' address
+ for ML_(find_rx_mapping)()
+375806 Test helgrind/tests/tc22_exit_w_lock fails with glibc 2.24
+375839 Temporary storage exhausted, with long sequence of vfmadd231ps insns
+ == 377159 "vex: the `impossible' happened" still present
+ == 375150 Assertion 'tres.status == VexTransOK' failed
+ == 378068 valgrind crashes on AVX2 function in FFmpeg
+376142 Segfaults on MIPS Cavium Octeon boards
+376279 disInstr(arm64): unhandled instruction 0xD50320FF
+376455 Solaris: unhandled syscall lgrpsys(180)
+376518 Solaris: unhandled fast trap getlgrp(6)
+376611 ppc64 and arm64 don't know about prlimit64 syscall
+376729 PPC64, remove R2 from the clobber list
+ == 371668
+376956 syswrap of SNDDRV and DRM_IOCTL_VERSION causing some addresses
+ to be wrongly marked as addressable
+377066 Some Valgrind unit tests fail to compile on Ubuntu 16.10 with
+ PIE enabled by default
+377376 memcheck/tests/linux/getregset fails with glibc2.24
+377427 PPC64, lxv instruction failing on odd destination register
+377478 PPC64: ISA 3.0 setup fixes
+377698 Missing memory check for futex() uaddr arg for FUTEX_WAKE
+ and FUTEX_WAKE_BITSET, check only 4 args for FUTEX_WAKE_BITSET,
+ and 2 args for FUTEX_TRYLOCK_PI
+377717 Fix massive space leak when reading compressed debuginfo sections
+377891 Update Xen 4.6 domctl wrappers
+377930 fcntl syscall wrapper is missing flock structure check
+378524 libvexmultiarch_test regression on s390x and ppc64
+378535 Valgrind reports INTERNAL ERROR in execve syscall wrapper
+378673 Update libiberty demangler
+378931 Add ISA 3.0B additional isnstructions, add OV32, CA32 setting support
+379039 syscall wrapper for prctl(PR_SET_NAME) must not check more than 16 bytes
+379094 Valgrind reports INTERNAL ERROR in rt_sigsuspend syscall wrapper
+379371 UNKNOWN task message [id 3444, to mach_task_self(), reply 0x603]
+ (task_register_dyld_image_infos)
+379372 UNKNOWN task message [id 3447, to mach_task_self(), reply 0x603]
+ (task_register_dyld_shared_cache_image_info)
+379390 unhandled syscall: mach:70 (host_create_mach_voucher_trap)
+379473 MIPS: add support for rdhwr cycle counter register
+379504 remove TileGX/Linux port
+379525 Support more x86 nop opcodes
+379838 disAMode(x86): not an addr!
+379703 PC ISA 3.0 fixes: stxvx, stxv, xscmpexpdp instructions
+379890 arm: unhandled instruction: 0xEBAD 0x1B05 (sub.w fp, sp, r5, lsl #4)
+379895 clock_gettime does not execute POST syscall wrapper
+379925 PPC64, mtffs does not set the FPCC and C bits in the FPSCR correctly
+379966 WARNING: unhandled amd64-linux syscall: 313 (finit_module)
+380200 xtree generated callgrind files refer to files without directory name
+380202 Assertion failure for cache line size (cls == 64) on aarch64.
+380397 s390x: __GI_strcspn() replacement needed
+n-i-bz Fix pub_tool_basics.h build issue with g++ 4.4.7.
+
+(3.13.0.RC1: 2 June 2017, vex r3386, valgrind r16434)
+(3.13.0.RC2: 9 June 2017, vex r3389, valgrind r16443)
+(3.13.0: 14 June 2017, vex r3396, valgrind r16446)
+
+
+
+Release 3.12.0 (20 October 2016)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Describe --gen-suppressions in the FAQ.
+3.12.0 is a feature release with many improvements and the usual
+collection of bug fixes.
-- Syscall __NR_waitpid supported.
+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, X86/MacOSX
+10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
+X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
-- Minor MMX bug fix.
+* ================== PLATFORM CHANGES =================
-- -v prints program's argv[] at startup.
+* POWER: Support for ISA 3.0 has been added
-- More glibc-2.3 suppressions.
+* mips: support for O32 FPXX ABI has been added.
+* mips: improved recognition of different processors
+* mips: determination of page size now done at run time
-- Suppressions for stack underrun bug(s) in the c++ support library
- distributed with Intel Icc 7.0.
+* amd64: Partial support for AMD FMA4 instructions.
-- Fix problems reading /proc/self/maps.
+* arm, arm64: Support for v8 crypto and CRC instructions.
-- Fix a couple of messages that should have been suppressed by -q,
- but weren't.
+* Improvements and robustification of the Solaris port.
-- Make Addrcheck understand "Overlap" suppressions.
+* Preliminary support for MacOS 10.12 (Sierra) has been added.
-- At startup, check if program is statically linked and bail out if so.
+Whilst 3.12.0 continues to support the 32-bit x86 instruction set, we
+would prefer users to migrate to 64-bit x86 (a.k.a amd64 or x86_64)
+where possible. Valgrind's support for 32-bit x86 has stagnated in
+recent years and has fallen far behind that for 64-bit x86
+instructions. By contrast 64-bit x86 is well supported, up to and
+including AVX2.
-- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+ - Added meta mempool support for describing a custom allocator which:
+ - Auto-frees all chunks assuming that destroying a pool destroys all
+ objects in the pool
+ - Uses itself to allocate other memory blocks
+
+ - New flag --ignore-range-below-sp to ignore memory accesses below
+ the stack pointer, if you really have to. The related flag
+ --workaround-gcc296-bugs=yes is now deprecated. Use
+ --ignore-range-below-sp=1024-1 as a replacement.
+
+* DRD:
+
+ - Improved thread startup time significantly on non-Linux platforms.
+
+* DHAT
+
+ - Added collection of the metric "tot-blocks-allocd"
+
+* ==================== OTHER CHANGES ====================
+
+* Replacement/wrapping of malloc/new related functions is now done not just
+ for system libraries by default, but for any globally defined malloc/new
+ related function (both in shared libraries and statically linked alternative
+ malloc implementations). The dynamic (runtime) linker is excluded, though.
+ To only intercept malloc/new related functions in
+ system libraries use --soname-synonyms=somalloc=nouserintercepts (where
+ "nouserintercepts" can be any non-existing library name).
+ This new functionality is not implemented for MacOS X.
+
+* The maximum number of callers in a suppression entry is now equal to
+ the maximum size for --num-callers (500).
+ Note that --gen-suppressions=yes|all similarly generates suppressions
+ containing up to --num-callers frames.
+
+* New and modified GDB server monitor features:
+
+ - Valgrind's gdbserver now accepts the command 'catch syscall'.
+ Note that you must have GDB >= 7.11 to use 'catch syscall' with
+ gdbserver.
+
+* New option --run-cxx-freeres=<yes|no> can be used to change whether
+ __gnu_cxx::__freeres() cleanup function is called or not. Default is
+ 'yes'.
+
+* Valgrind is able to read compressed debuginfo sections in two formats:
+ - zlib ELF gABI format with SHF_COMPRESSED flag (gcc option -gz=zlib)
+ - zlib GNU format with .zdebug sections (gcc option -gz=zlib-gnu)
+
+* Modest JIT-cost improvements: the cost of instrumenting code blocks
+ for the most common use case (x86_64-linux, Memcheck) has been
+ reduced by 10%-15%.
+
+* Improved performance for programs that do a lot of discarding of
+ instruction address ranges of 8KB or less.
+
+* The C++ symbol demangler has been updated.
+
+* More robustness against invalid syscall parameters on Linux.
+
+* ==================== 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.
+
+191069 Exiting due to signal not reported in XML output
+199468 Suppressions: stack size limited to 25
+ while --num-callers allows more frames
+212352 vex amd64 unhandled opc_aux = 0x 2, first_opcode == 0xDC (FCOM)
+278744 cvtps2pd with redundant RexW
+303877 valgrind doesn't support compressed debuginfo sections.
+345307 Warning about "still reachable" memory when using libstdc++ from gcc 5
+348345 Assertion fails for negative lineno
+348924 MIPS: Load doubles through memory so the code compiles with the FPXX ABI
+351282 V 3.10.1 MIPS softfloat build broken with GCC 4.9.3 / binutils 2.25.1
+351692 Dumps created by valgrind are not readable by gdb (mips32 specific)
+351804 Crash on generating suppressions for "printf" call on OS X 10.10
+352197 mips: mmap2() not wrapped correctly for page size > 4096
+353083 arm64 doesn't implement various xattr system calls
+353084 arm64 doesn't support sigpending system call
+353137 www: update info for Supported Platforms
+353138 www: update "The Valgrind Developers" page
+353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
+ == 365325
+ == 357873
+353384 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x62 (pcmpXstrX $0x62)
+353398 WARNING: unhandled amd64-solaris syscall: 207
+353660 XML in auxwhat tag not escaping reserved symbols properly
+353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN
+353727 amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x72 (pcmpXstrX $0x72)
+353802 ELF debug info reader confused with multiple .rodata sections
+353891 Assert 'bad_scanned_addr < VG_ROUNDDN(start+len, sizeof(Addr))' failed
+353917 unhandled amd64-solaris syscall fchdir(120)
+353920 unhandled amd64-solaris syscall: 170
+354274 arm: unhandled instruction: 0xEBAD 0x0AC1 (sub.w sl, sp, r1, lsl #3)
+354392 unhandled amd64-solaris syscall: 171
+354797 Vbit test does not include Iops for Power 8 instruction support
+354883 tst->os_state.pthread - magic_delta assertion failure on OSX 10.11
+ == 361351
+ == 362920
+ == 366222
+354933 Fix documentation of --kernel-variant=android-no-hw-tls option
+355188 valgrind should intercept all malloc related global functions
+355454 do not intercept malloc related symbols from the runtime linker
+355455 stderr.exp of test cases wrapmalloc and wrapmallocstatic overconstrained
+356044 Dwarf line info reader misinterprets is_stmt register
+356112 mips: replace addi with addiu
+356393 valgrind (vex) crashes because isZeroU happened
+ == 363497
+ == 364497
+356676 arm64-linux: unhandled syscalls 125, 126 (sched_get_priority_max/min)
+356678 arm64-linux: unhandled syscall 232 (mincore)
+356817 valgrind.h triggers compiler errors on MSVC when defining NVALGRIND
+356823 Unsupported ARM instruction: stlex
+357059 x86/amd64: SSE cvtpi2ps with memory source does transition to MMX state
+357338 Unhandled instruction for SHA instructions libcrypto Boring SSL
+357673 crash if I try to run valgrind with a binary link with libcurl
+357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+
+357871 pthread_spin_destroy not properly wrapped
+357887 Calls to VG_(fclose) do not close the file descriptor
+357932 amd64->IR: accept redundant REX prefixes for {minsd,maxsd} m128, xmm.
+358030 support direct socket calls on x86 32bit (new in linux 4.3)
+358478 drd/tests/std_thread.cpp doesn't build with GCC6
+359133 Assertion 'eltSzB <= ddpa->poolSzB' failed
+359181 Buffer Overflow during Demangling
+359201 futex syscall "skips" argument 5 if op is FUTEX_WAIT_BITSET
+359289 s390x: popcnt (B9E1) not implemented
+359472 The Power PC vsubuqm instruction doesn't always give the correct result
+359503 Add missing syscalls for aarch64 (arm64)
+359645 "You need libc6-dbg" help message could be more helpful
+359703 s390: wire up separate socketcalls system calls
+359724 getsockname might crash - deref_UInt should call safe_to_deref
+359733 amd64 implement ld.so strchr/index override like x86
+359767 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 1/5
+359829 Power PC test suite none/tests/ppc64/test_isa_2_07.c uses
+ uninitialized data
+359838 arm64: Unhandled instruction 0xD5033F5F (clrex)
+359871 Incorrect mask handling in ppoll
+359952 Unrecognised PCMPESTRM variants (0x70, 0x19)
+360008 Contents of Power vr registers contents is not printed correctly when
+ the --vgdb-shadow-registers=yes option is used
+360035 POWER PC instruction bcdadd and bcdsubtract generate result with
+ non-zero shadow bits
+360378 arm64: Unhandled instruction 0x5E280844 (sha1h s4, s2)
+360425 arm64 unsupported instruction ldpsw
+ == 364435
+360519 none/tests/arm64/memory.vgtest might fail with newer gcc
+360571 Error about the Android Runtime reading below the stack pointer on ARM
+360574 Wrong parameter type for an ashmem ioctl() call on Android and ARM64
+360749 kludge for multiple .rodata sections on Solaris no longer needed
+360752 raise the number of reserved fds in m_main.c from 10 to 12
+361207 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 2/5
+361226 s390x: risbgn (EC59) not implemented
+361253 [s390x] ex_clone.c:42: undefined reference to `pthread_create'
+361354 ppc64[le]: wire up separate socketcalls system calls
+361615 Inconsistent termination for multithreaded process terminated by signal
+361926 Unhandled Solaris syscall: sysfs(84)
+362009 V dumps core on unimplemented functionality before threads are created
+362329 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 3/5
+362894 missing (broken) support for wbit field on mtfsfi instruction (ppc64)
+362935 [AsusWRT] Assertion 'sizeof(TTEntryC) <= 88' failed
+362953 Request for an update to the Valgrind Developers page
+363680 add renameat2() support
+363705 arm64 missing syscall name_to_handle_at and open_by_handle_at
+363714 ppc64 missing syscalls sync, waitid and name_to/open_by_handle_at
+363858 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 4/5
+364058 clarify in manual limitations of array overruns detections
+364413 pselect sycallwrapper mishandles NULL sigmask
+364728 Power PC, missing support for several HW registers in
+ get_otrack_shadow_offset_wrk()
+364948 Valgrind does not support the IBM POWER ISA 3.0 instructions, part 5/5
+365273 Invalid write to stack location reported after signal handler runs
+365912 ppc64BE segfault during jm-insns test (RELRO)
+366079 FPXX Support for MIPS32 Valgrind
+366138 Fix configure errors out when using Xcode 8 (clang 8.0.0)
+366344 Multiple unhandled instruction for Aarch64
+ (0x0EE0E020, 0x1AC15800, 0x4E284801, 0x5E040023, 0x5E056060)
+367995 Integration of memcheck with custom memory allocator
+368120 x86_linux asm _start functions do not keep 16-byte aligned stack pointer
+368412 False positive result for altivec capability check
+368416 Add tc06_two_races_xml.exp output for ppc64
+368419 Perf Events ioctls not implemented
+368461 mmapunmap test fails on ppc64
+368823 run_a_thread_NORETURN assembly code typo for VGP_arm64_linux target
+369000 AMD64 fma4 instructions unsupported.
+369169 ppc64 fails jm_int_isa_2_07 test
+369175 jm_vec_isa_2_07 test crashes on ppc64
+369209 valgrind loops and eats up all memory if cwd doesn't exist.
+369356 pre_mem_read_sockaddr syscall wrapper can crash with bad sockaddr
+369359 msghdr_foreachfield can crash when handling bad iovec
+369360 Bad sigprocmask old or new sets can crash valgrind
+369361 vmsplice syscall wrapper crashes on bad iovec
+369362 Bad sigaction arguments crash valgrind
+369383 x86 sys_modify_ldt wrapper crashes on bad ptr
+369402 Bad set/get_thread_area pointer crashes valgrind
+369441 bad lvec argument crashes process_vm_readv/writev syscall wrappers
+369446 valgrind crashes on unknown fcntl command
+369439 S390x: Unhandled insns RISBLG/RISBHG and LDE/LDER
+369468 Remove quadratic metapool algorithm using VG_(HT_remove_at_Iter)
+370265 ISA 3.0 HW cap stuff needs updating
+371128 BCD add and subtract instructions on Power BE in 32-bit mode do not work
+372195 Power PC, xxsel instruction is not always recognized
+
+n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 and amd64
+n-i-bz massif --pages-as-heap=yes does not report peak caused by mmap+munmap
+n-i-bz false positive leaks due to aspacemgr merging heap & non heap segments
+n-i-bz Fix ppoll_alarm exclusion on OS X
+n-i-bz Document brk segment limitation, reference manual in limit reached msg.
+n-i-bz Fix clobber list in none/tests/amd64/xacq_xrel.c [valgrind r15737]
+n-i-bz Bump allowed shift value for "add.w reg, sp, reg, lsl #N" [vex r3206]
+n-i-bz amd64: memcheck false positive with shr %edx
+n-i-bz arm3: Allow early writeback of SP base register in "strd rD, [sp, #-16]"
+n-i-bz ppc: Fix two cases of PPCAvFpOp vs PPCFpOp enum confusion
+n-i-bz arm: Fix incorrect register-number constraint check for LDAEX{,B,H,D}
+n-i-bz DHAT: added collection of the metric "tot-blocks-allocd"
+
+(3.12.0.RC1: 20 October 2016, vex r3282, valgrind r16094)
+(3.12.0.RC2: 20 October 2016, vex r3282, valgrind r16096)
+(3.12.0: 21 October 2016, vex r3282, valgrind r16098)
+
+
+
+Release 3.11.0 (22 September 2015)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+3.11.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, X86/MacOSX
+10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
+X86/MacOSX 10.11, AMD64/MacOSX 10.11 and TILEGX/Linux.
+
+* ================== PLATFORM CHANGES =================
+
+* Support for Solaris/x86 and Solaris/amd64 has been added.
+
+* Preliminary support for Mac OS X 10.11 (El Capitan) has been added.
+
+* Preliminary support for the Tilera TileGX architecture has been added.
+
+* s390x: It is now required for the host to have the "long displacement"
+ facility. The oldest supported machine model is z990.
+
+* x86: on an SSE2 only host, Valgrind in 32 bit mode now claims to be a
+ Pentium 4. 3.10.1 wrongly claimed to be a Core 2, which is SSSE3.
+
+* The JIT's register allocator is significantly faster, making the JIT
+ as a whole somewhat faster, so JIT-intensive activities, for example
+ program startup, are modestly faster, around 5%.
+
+* There have been changes to the default settings of several command
+ line flags, as detailed below.
+
+* Intel AVX2 support is more complete (64 bit targets only). On AVX2
+ capable hosts, the simulated CPUID will now indicate AVX2 support.
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+ - The default value for --leak-check-heuristics has been changed from
+ "none" to "all". This helps to reduce the number of possibly
+ lost blocks, in particular for C++ applications.
+
+ - The default value for --keep-stacktraces has been changed from
+ "malloc-then-free" to "malloc-and-free". This has a small cost in
+ memory (one word per malloc-ed block) but allows Memcheck to show the
+ 3 stacktraces of a dangling reference: where the block was allocated,
+ where it was freed, and where it is acccessed after being freed.
+
+ - The default value for --partial-loads-ok has been changed from "no" to
+ "yes", so as to avoid false positive errors resulting from some kinds
+ of vectorised loops.
+
+ - A new monitor command 'xb <addr> <len>' shows the validity bits of
+ <len> bytes at <addr>. The monitor command 'xb' is easier to use
+ than get_vbits when you need to associate byte data value with
+ their corresponding validity bits.
+
+ - The 'block_list' monitor command has been enhanced:
+ o it can print a range of loss records
+ o it now accepts an optional argument 'limited <max_blocks>'
+ to control the number of blocks printed.
+ o if a block has been found using a heuristic, then
+ 'block_list' now shows the heuristic after the block size.
+ o the loss records/blocks to print can be limited to the blocks
+ found via specified heuristics.
+
+ - The C helper functions used to instrument loads on
+ x86-{linux,solaris} and arm-linux (both 32-bit only) have been
+ replaced by handwritten assembly sequences. This gives speedups
+ in the region of 0% to 7% for those targets only.
-- Memcheck/addrcheck: minor speed optimisations
+ - A new command line option, --expensive-definedness-checks=yes|no,
+ has been added. This is useful for avoiding occasional invalid
+ uninitialised-value errors in optimised code. Watch out for
+ runtime degradation, as this can be up to 25%. As always, though,
+ the slowdown is highly application specific. The default setting
+ is "no".
-- Handle syscall __NR_brk more correctly than before.
+* Massif:
-- Fixed incorrect allocate/free mismatch errors when using
- operator new(unsigned, std::nothrow_t const&)
- operator new[](unsigned, std::nothrow_t const&)
+ - A new monitor command 'all_snapshots <filename>' dumps all
+ snapshots taken so far.
-- Support POSIX pthread spinlocks.
+* Helgrind:
-- Fixups for clean compilation with gcc-3.3.1.
+ - Significant memory reduction and moderate speedups for
+ --history-level=full for applications accessing a lot of memory
+ with many different stacktraces.
-- Implemented more opcodes:
- - push %es
- - push %ds
- - pop %es
- - pop %ds
- - movntq
- - sfence
- - pshufw
- - pavgb
- - ucomiss
- - enter
- - mov imm32, %esp
- - all "in" and "out" opcodes
- - inc/dec %esp
- - A whole bunch of SSE/SSE2 instructions
+ - The default value for --conflict-cache-size=N has been doubled to
+ 2000000. Users that were not using the default value should
+ preferably also double the value they give.
-- Memcheck: don't bomb on SSE/SSE2 code.
+ The default was changed due to the changes in the "full history"
+ implementation. Doubling the value gives on average a slightly more
+ complete history and uses similar memory (or significantly less memory
+ in the worst case) than the previous implementation.
+
+ - The Helgrind monitor command 'info locks' now accepts an optional
+ argument 'lock_addr', which shows information about the lock at the
+ given address only.
+ - When using --history-level=full, the new Helgrind monitor command
+ 'accesshistory <addr> [<len>]' will show the recorded accesses for
+ <len> (or 1) bytes at <addr>.
-Snapshot 20030725 (25 July 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* ==================== OTHER CHANGES ====================
-Fixes some minor problems in 20030716.
+* The default value for the --smc-check option has been changed from
+ "stack" to "all-non-file" on targets that provide automatic D-I
+ cache coherence (x86, amd64 and s390x). The result is to provide,
+ by default, transparent support for JIT generated and self-modifying
+ code on all targets.
-- Fix bugs in overlap checking for strcpy/memcpy etc.
+* Mac OS X only: the default value for the --dsymutil option has been
+ changed from "no" to "yes", since any serious usage on Mac OS X
+ always required it to be "yes".
-- Do overlap checking with Addrcheck as well as Memcheck.
+* The command line options --db-attach and --db-command have been removed.
+ They were deprecated in 3.10.0.
-- Fix this:
- Memcheck: the `impossible' happened:
- get_error_name: unexpected type
+* When a process dies due to a signal, Valgrind now shows the signal
+ and the stacktrace at default verbosity (i.e. verbosity 1).
-- Install headers needed to compile new skins.
+* The address description logic used by Memcheck and Helgrind now
+ describes addresses in anonymous segments, file mmap-ed segments,
+ shared memory segments and the brk data segment.
-- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
- passed to non-traced children.
+* The new option --error-markers=<begin>,<end> can be used to mark the
+ begin/end of errors in textual output mode, to facilitate
+ searching/extracting errors in output files that mix valgrind errors
+ with program output.
-- Fix file descriptor leak in valgrind-listener.
+* The new option --max-threads=<number> can be used to change the number
+ of threads valgrind can handle. The default is 500 threads which
+ should be more than enough for most applications.
-- Fix longstanding bug in which the allocation point of a
- block resized by realloc was not correctly set. This may
- have caused confusing error messages.
+* The new option --valgrind-stacksize=<number> can be used to change the
+ size of the private thread stacks used by Valgrind. This is useful
+ for reducing memory use or increasing the stack size if Valgrind
+ segfaults due to stack overflow.
+* The new option --avg-transtab-entry-size=<number> can be used to specify
+ the expected instrumented block size, either to reduce memory use or
+ to avoid excessive retranslation.
-Snapshot 20030716 (16 July 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Valgrind can be built with Intel's ICC compiler, version 14.0 or later.
+
+* New and modified GDB server monitor features:
-20030716 is a snapshot of our current CVS head (development) branch.
-This is the branch which will become valgrind-2.0. It contains
-significant enhancements over the 1.9.X branch.
+ - When a signal is reported in GDB, you can now use the GDB convenience
+ variable $_siginfo to examine detailed signal information.
+
+ - Valgrind's gdbserver now allows the user to change the signal
+ to deliver to the process. So, use 'signal SIGNAL' to continue execution
+ with SIGNAL instead of the signal reported to GDB. Use 'signal 0' to
+ continue without passing the signal to the process.
+
+ - With GDB >= 7.10, the command 'target remote'
+ will automatically load the executable file of the process running
+ under Valgrind. This means you do not need to specify the executable
+ file yourself, GDB will discover it itself. See GDB documentation about
+ 'qXfer:exec-file:read' packet for more info.
+
+* ==================== 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.
+
+116002 VG_(printf): Problems with justification of strings and integers
+155125 avoid cutting away file:lineno after long function name
+197259 Unsupported arch_prtctl PR_SET_GS option
+201152 ppc64: Assertion in ppc32g_dirtyhelper_MFSPR_268_269
+201216 Fix Valgrind does not support pthread_sigmask() on OS X
+201435 Fix Darwin: -v does not show kernel version
+208217 "Warning: noted but unhandled ioctl 0x2000747b" on Mac OS X
+211256 Fixed an outdated comment regarding the default platform.
+211529 Incomplete call stacks for code compiled by newer versions of MSVC
+211926 Avoid compilation warnings in valgrind.h with -pedantic
+212291 Fix unhandled syscall: unix:132 (mkfifo) on OS X
+ == 263119
+226609 Crediting upstream authors in man page
+231257 Valgrind omits path when executing script from shebang line
+254164 OS X task_info: UNKNOWN task message [id 3405, to mach_task_self() [..]
+294065 Improve the pdb file reader by avoiding hardwired absolute pathnames
+269360 s390x: Fix addressing mode selection for compare-and-swap
+302630 Memcheck: Assertion failed: 'sizeof(UWord) == sizeof(UInt)'
+ == 326797
+312989 ioctl handling needs to do POST handling on generic ioctls and [..]
+319274 Fix unhandled syscall: unix:410 (sigsuspend_nocancel) on OS X
+324181 mmap does not handle MAP_32BIT (handle it now, rather than fail it)
+327745 Fix valgrind 3.9.0 build fails on Mac OS X 10.6.8
+330147 libmpiwrap PMPI_Get_count returns undefined value
+333051 mmap of huge pages fails due to incorrect alignment
+ == 339163
+334802 valgrind does not always explain why a given option is bad
+335618 mov.w rN, pc/sp (ARM32)
+335785 amd64->IR 0xC4 0xE2 0x75 0x2F (vmaskmovpd)
+ == 307399
+ == 343175
+ == 342740
+ == 346912
+335907 segfault when running wine's ddrawex/tests/surface.c under valgrind
+338602 AVX2 bit in CPUID missing
+338606 Strange message for scripts with invalid interpreter
+338731 ppc: Fix testuite build for toolchains not supporting -maltivec
+338995 shmat with hugepages (SHM_HUGETLB) fails with EINVAL
+339045 Getting valgrind to compile and run on OS X Yosemite (10.10)
+ == 340252
+339156 gdbsrv not called for fatal signal
+339215 Valgrind 3.10.0 contain 2013 in copyrights notice
+339288 support Cavium Octeon MIPS specific BBIT*32 instructions
+339636 Use fxsave64 and fxrstor64 mnemonics instead of old-school rex64 prefix
+339442 Fix testsuite build failure on OS X 10.9
+339542 Enable compilation with Intel's ICC compiler
+339563 The DVB demux DMX_STOP ioctl doesn't have a wrapper
+339688 Mac-specific ASM does not support .version directive (cpuid,
+ tronical and pushfpopf tests)
+339745 Valgrind crash when check Marmalade app (partial fix)
+339755 Fix known deliberate memory leak in setenv() on Mac OS X 10.9
+339778 Linux/TileGx platform support for Valgrind
+339780 Fix known uninitialised read in pthread_rwlock_init() on Mac OS X 10.9
+339789 Fix none/tests/execve test on Mac OS X 10.9
+339808 Fix none/tests/rlimit64_nofile test on Mac OS X 10.9
+339820 vex amd64->IR: 0x66 0xF 0x3A 0x63 0xA 0x42 0x74 0x9 (pcmpistri $0x42)
+340115 Fix none/tests/cmdline[1|2] tests on systems which define TMPDIR
+340392 Allow user to select more accurate definedness checking in memcheck
+ to avoid invalid complaints on optimised code
+340430 Fix some grammatical weirdness in the manual.
+341238 Recognize GCC5/DWARFv5 DW_LANG constants (Go, C11, C++11, C++14)
+341419 Signal handler ucontext_t not filled out correctly on OS X
+341539 VG_(describe_addr) should not describe address as belonging to client
+ segment if it is past the heap end
+341613 Enable building of manythreads and thread-exits tests on Mac OS X
+341615 Fix none/tests/darwin/access_extended test on Mac OS X
+341698 Valgrind's AESKEYGENASSIST gives wrong result in words 0 and 2 [..]
+341789 aarch64: shmat fails with valgrind on ARMv8
+341997 MIPS64: Cavium OCTEON insns - immediate operand handled incorrectly
+342008 valgrind.h needs type cast [..] for clang/llvm in 64-bit mode
+342038 Unhandled syscalls on aarch64 (mbind/get/set_mempolicy)
+342063 wrong format specifier for test mcblocklistsearch in gdbserver_tests
+342117 Hang when loading PDB file for MSVC compiled Firefox under Wine
+342221 socket connect false positive uninit memory for unknown af family
+342353 Allow dumping full massif output while valgrind is still running
+342571 Valgrind chokes on AVX compare intrinsic with _CMP_GE_QS
+ == 346476
+ == 348387
+ == 350593
+342603 Add I2C_SMBUS ioctl support
+342635 OS X 10.10 (Yosemite) - missing system calls and fcntl code
+342683 Mark memory past the initial brk limit as unaddressable
+342783 arm: unhandled instruction 0xEEFE1ACA = "vcvt.s32.f32 s3, s3, #12"
+342795 Internal glibc __GI_mempcpy call should be intercepted
+342841 s390x: Support instructions fiebr(a) and fidbr(a)
+343012 Unhandled syscall 319 (memfd_create)
+343069 Patch updating v4l2 API support
+343173 helgrind crash during stack unwind
+343219 fix GET_STARTREGS for arm
+343303 Fix known deliberate memory leak in setenv() on Mac OS X 10.10
+343306 OS X 10.10: UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
+343332 Unhandled instruction 0x9E310021 (fcvtmu) on aarch64
+343335 unhandled instruction 0x1E638400 (fccmp) aarch64
+343523 OS X mach_ports_register: UNKNOWN task message [id 3403, to [..]
+343525 OS X host_get_special_port: UNKNOWN host message [id 412, to [..]
+343597 ppc64le: incorrect use of offseof macro
+343649 OS X host_create_mach_voucher: UNKNOWN host message [id 222, to [..]
+343663 OS X 10.10 Memchecj always reports a leak regardless of [..]
+343732 Unhandled syscall 144 (setgid) on aarch64
+343733 Unhandled syscall 187 (msgctl and related) on aarch64
+343802 s390x: False positive "conditional jump or move depends on [..]
+343902 --vgdb=yes doesn't break when --xml=yes is used
+343967 Don't warn about setuid/setgid/setcap executable for directories
+343978 Recognize DWARF5/GCC5 DW_LANG_Fortran 2003 and 2008 constants
+344007 accept4 syscall unhandled on arm64 (242) and ppc64 (344)
+344033 Helgrind on ARM32 loses track of mutex state in pthread_cond_wait
+344054 www - update info for Solaris/illumos
+344416 'make regtest' does not work cleanly on OS X
+344235 Remove duplicate include of pub_core_aspacemgr.h
+344279 syscall sendmmsg on arm64 (269) and ppc32/64 (349) unhandled
+344295 syscall recvmmsg on arm64 (243) and ppc32/64 (343) unhandled
+344307 2 unhandled syscalls on aarch64/arm64: umount2(39), mount (40)
+344314 callgrind_annotate ... warnings about commands containing newlines
+344318 socketcall should wrap recvmmsg and sendmmsg
+344337 Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap)
+344416 Fix 'make regtest' does not work cleanly on OS X
+344499 Fix compilation for Linux kernel >= 4.0.0
+344512 OS X: unhandled syscall: unix:348 (__pthread_chdir),
+ unix:349 (__pthread_fchdir)
+344559 Garbage collection of unused segment names in address space manager
+344560 Fix stack traces missing penultimate frame on OS X
+344621 Fix memcheck/tests/err_disable4 test on OS X
+344686 Fix suppression for pthread_rwlock_init on OS X 10.10
+344702 Fix missing libobjc suppressions on OS X 10.10
+ == 344543
+344936 Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
+344939 Fix memcheck/tests/xml1 on OS X 10.10
+345016 helgrind/tests/locked_vs_unlocked2 is failing sometimes
+345079 Fix build problems in VEX/useful/test_main.c
+345126 Incorrect handling of VIDIOC_G_AUDIO and G_AUDOUT
+345177 arm64: prfm (reg) not implemented
+345215 Performance improvements for the register allocator
+345248 add support for Solaris OS in valgrind
+345338 TIOCGSERIAL and TIOCSSERIAL ioctl support on Linux
+345394 Fix memcheck/tests/strchr on OS X
+345637 Fix memcheck/tests/sendmsg on OS X
+345695 Add POWERPC support for AT_DCACHESIZE and HWCAP2
+345824 Fix aspacem segment mismatch: seen with none/tests/bigcode
+345887 Fix an assertion in the address space manager
+345928 amd64: callstack only contains current function for small stacks
+345984 disInstr(arm): unhandled instruction: 0xEE193F1E
+345987 MIPS64: Implement cavium LHX instruction
+346031 MIPS: Implement support for the CvmCount register (rhwr %0, 31)
+346185 Fix typo saving altivec register v24
+346267 Compiler warnings for PPC64 code on call to LibVEX_GuestPPC64_get_XER()
+ and LibVEX_GuestPPC64_get_CR()
+346270 Regression tests none/tests/jm_vec/isa_2_07 and
+ none/tests/test_isa_2_07_part2 have failures on PPC64 little endian
+346307 fuse filesystem syscall deadlocks
+346324 PPC64 missing support for lbarx, lharx, stbcx and sthcx instructions
+346411 MIPS: SysRes::_valEx handling is incorrect
+346416 Add support for LL_IOC_PATH2FID and LL_IOC_GETPARENT Lustre ioctls
+346474 PPC64 Power 8, spr TEXASRU register not supported
+346487 Compiler generates "note" about a future ABI change for PPC64
+346562 MIPS64: lwl/lwr instructions are performing 64bit loads
+ and causing spurious "invalid read of size 8" warnings
+346801 Fix link error on OS X: _vgModuleLocal_sf_maybe_extend_stack
+347151 Fix suppression for pthread_rwlock_init on OS X 10.8
+347233 Fix memcheck/tests/strchr on OS X 10.10 (Haswell)
+347322 Power PC regression test cleanup
+347379 valgrind --leak-check=full leak errors from system libs on OS X 10.8
+ == 217236
+347389 unhandled syscall: 373 (Linux ARM syncfs)
+347686 Patch set to cleanup PPC64 regtests
+347978 Remove bash dependencies where not needed
+347982 OS X: undefined symbols for architecture x86_64: "_global" [..]
+347988 Memcheck: the 'impossible' happened: unexpected size for Addr (OSX/wine)
+ == 345929
+348102 Patch updating v4l2 API support
+348247 amd64 front end: jno jumps wrongly when overflow is not set
+348269 Improve mmap MAP_HUGETLB support.
+348334 (ppc) valgrind does not simulate dcbfl - then my program terminates
+348345 Assertion fails for negative lineno
+348377 Unsupported ARM instruction: yield
+348565 Fix detection of command line option availability for clang
+348574 vex amd64->IR pcmpistri SSE4.2 unsupported (pcmpistri $0x18)
+348728 Fix broken check for VIDIOC_G_ENC_INDEX
+348748 Fix redundant condition
+348890 Fix clang warning about unsupported --param inline-unit-growth=900
+348949 Bogus "ERROR: --ignore-ranges: suspiciously large range"
+349034 Add Lustre ioctls LL_IOC_GROUP_LOCK and LL_IOC_GROUP_UNLOCK
+349086 Fix UNKNOWN task message [id 3406, to mach_task_self(), [..]
+349087 Fix UNKNOWN task message [id 3410, to mach_task_self(), [..]
+349626 Implemented additional Xen hypercalls
+349769 Clang/osx: ld: warning: -read_only_relocs cannot be used with x86_64
+349790 Clean up of the hardware capability checking utilities.
+349828 memcpy intercepts memmove causing src/dst overlap error (ppc64 ld.so)
+349874 Fix typos in source code
+349879 memcheck: add handwritten assembly for helperc_LOADV*
+349941 di_notify_mmap might create wrong start/size DebugInfoMapping
+350062 vex x86->IR: 0x66 0xF 0x3A 0xB (ROUNDSD) on OS X
+350202 Add limited param to 'monitor block_list'
+350290 s390x: Support instructions fixbr(a)
+350359 memcheck/tests/x86/fxsave hangs indefinetely on OS X
+350809 Fix none/tests/async-sigs for Solaris
+350811 Remove reference to --db-attach which has been removed.
+350813 Memcheck/x86: enable handwritten assembly helpers for x86/Solaris too
+350854 hard-to-understand code in VG_(load_ELF)()
+351140 arm64 syscalls setuid (146) and setresgid (149) not implemented
+351386 Solaris: Cannot run ld.so.1 under Valgrind
+351474 Fix VG_(iseqsigset) as obvious
+351531 Typo in /include/vki/vki-xen-physdev.h header guard
+351756 Intercept platform_memchr$VARIANT$Haswell on OS X
+351858 ldsoexec support on Solaris
+351873 Newer gcc doesn't allow __builtin_tabortdc[i] in ppc32 mode
+352130 helgrind reports false races for printfs using mempcpy on FILE* state
+352284 s390: Conditional jump depends on uninitialised value(s) in vfprintf
+352320 arm64 crash on none/tests/nestedfs
+352765 Vbit test fails on Power 6
+352768 The mbar instruction is missing from the Power PC support
+352769 Power PC program priority register (PPR) is not supported
+n-i-bz Provide implementations of certain compiler builtins to support
+ compilers that may not provide those
+n-i-bz Old STABS code is still being compiled, but never used. Remove it.
+n-i-bz Fix compilation on distros with glibc < 2.5
+n-i-bz (vex 3098) Avoid generation of Neon insns on non-Neon hosts
+n-i-bz Enable rt_sigpending syscall on ppc64 linux.
+n-i-bz mremap did not work properly on shared memory
+n-i-bz Fix incorrect sizeof expression in syswrap-xen.c reported by Coverity
+n-i-bz In VALGRIND_PRINTF write out thread name, if any, to xml
+
+(3.11.0.TEST1: 8 September 2015, vex r3187, valgrind r15646)
+(3.11.0.TEST2: 21 September 2015, vex r3193, valgrind r15667)
+(3.11.0: 22 September 2015, vex r3195, valgrind r15674)
+
+
+
+Release 3.10.1 (25 November 2014)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.10.1 is a bug fix release. It fixes various bugs reported in 3.10.0
+and backports fixes for all reported missing AArch64 ARMv8 instructions
+and syscalls from the trunk. If you package or deliver 3.10.0 for others
+to use, you might want to consider upgrading to 3.10.1 instead.
+
+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.
+
+335440 arm64: ld1 (single structure) is not implemented
+335713 arm64: unhanded instruction: prfm (immediate)
+339020 ppc64: memcheck/tests/ppc64/power_ISA2_05 failing in nightly build
+339182 ppc64: AvSplat ought to load destination vector register with [..]
+339336 PPC64 store quad instruction (stq) is not supposed to change [..]
+339433 ppc64 lxvw4x instruction uses four 32-byte loads
+339645 Use correct tag names in sys_getdents/64 wrappers
+339706 Fix false positive for ioctl(TIOCSIG) on linux
+339721 assertion 'check_sibling == sibling' failed in readdwarf3.c ...
+339853 arm64 times syscall unknown
+339855 arm64 unhandled getsid/setsid syscalls
+339858 arm64 dmb sy not implemented
+339926 Unhandled instruction 0x1E674001 (frintx) on aarm64
+339927 Unhandled instruction 0x9E7100C6 (fcvtmu) on aarch64
+339938 disInstr(arm64): unhandled instruction 0x4F8010A4 (fmla)
+ == 339950
+339940 arm64: unhandled syscall: 83 (sys_fdatasync) + patch
+340033 arm64: unhandled insn dmb ishld and some other isb-dmb-dsb variants
+340028 unhandled syscalls for arm64 (msync, pread64, setreuid and setregid)
+340036 arm64: Unhandled instruction ld4 (multiple structures, no offset)
+340236 arm64: unhandled syscalls: mknodat, fchdir, chroot, fchownat
+340509 arm64: unhandled instruction fcvtas
+340630 arm64: fchmod (52) and fchown (55) syscalls not recognized
+340632 arm64: unhandled instruction fcvtas
+340722 Resolve "UNKNOWN attrlist flags 0:0x10000000"
+340725 AVX2: Incorrect decoding of vpbroadcast{b,w} reg,reg forms
+340788 warning: unhandled syscall: 318 (getrandom)
+340807 disInstr(arm): unhandled instruction: 0xEE989B20
+340856 disInstr(arm64): unhandled instruction 0x1E634C45 (fcsel)
+340922 arm64: unhandled getgroups/setgroups syscalls
+350251 Fix typo in VEX utility program (test_main.c).
+350407 arm64: unhandled instruction ucvtf (vector, integer)
+350809 none/tests/async-sigs breaks when run under cron on Solaris
+350811 update README.solaris after r15445
+350813 Use handwritten memcheck assembly helpers on x86/Solaris [..]
+350854 strange code in VG_(load_ELF)()
+351140 arm64 syscalls setuid (146) and setresgid (149) not implemented
+n-i-bz DRD and Helgrind: Handle Imbe_CancelReservation (clrex on ARM)
+n-i-bz Add missing ]] to terminate CDATA.
+n-i-bz Glibc versions prior to 2.5 do not define PTRACE_GETSIGINFO
+n-i-bz Enable sys_fadvise64_64 on arm32.
+n-i-bz Add test cases for all remaining AArch64 SIMD, FP and memory insns.
+n-i-bz Add test cases for all known arm64 load/store instructions.
+n-i-bz PRE(sys_openat): when checking whether ARG1 == VKI_AT_FDCWD [..]
+n-i-bz Add detection of old ppc32 magic instructions from bug 278808.
+n-i-bz exp-dhat: Implement missing function "dh_malloc_usable_size".
+n-i-bz arm64: Implement "fcvtpu w, s".
+n-i-bz arm64: implement ADDP and various others
+n-i-bz arm64: Implement {S,U}CVTF (scalar, fixedpt).
+n-i-bz arm64: enable FCVT{A,N}S X,S.
+
+(3.10.1: 25 November 2014, vex r3026, valgrind r14785)
+
+
+
+Release 3.10.0 (10 September 2014)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+3.10.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, MIPS32/Android, X86/Android, X86/MacOSX 10.9
+and AMD64/MacOSX 10.9. Support for MacOSX 10.8 and 10.9 is
+significantly improved relative to the 3.9.0 release.
+
+* ================== PLATFORM CHANGES =================
+
+* Support for the 64-bit ARM Architecture (AArch64 ARMv8). This port
+ is mostly complete, and is usable, but some SIMD instructions are as
+ yet unsupported.
+
+* Support for little-endian variant of the 64-bit POWER architecture.
+
+* Support for Android on MIPS32.
+
+* Support for 64bit FPU on MIPS32 platforms.
+
+* Both 32- and 64-bit executables are supported on MacOSX 10.8 and 10.9.
+
+* Configuration for and running on Android targets has changed.
+ See README.android in the source tree for details.
+
+* ================== DEPRECATED FEATURES =================
+
+* --db-attach is now deprecated and will be removed in the next
+ valgrind feature release. The built-in GDB server capabilities are
+ superior and should be used instead. Learn more here:
+ http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck:
+
+ - Client code can now selectively disable and re-enable reporting of
+ invalid address errors in specific ranges using the new client
+ requests VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and
+ VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.
+
+ - Leak checker: there is a new leak check heuristic called
+ "length64". This is used to detect interior pointers pointing 8
+ bytes inside a block, on the assumption that the first 8 bytes
+ holds the value "block size - 8". This is used by
+ sqlite3MemMalloc, for example.
+
+ - Checking of system call parameters: if a syscall parameter
+ (e.g. bind struct sockaddr, sendmsg struct msghdr, ...) has
+ several fields not initialised, an error is now reported for each
+ field. Previously, an error was reported only for the first
+ uninitialised field.
+
+ - Mismatched alloc/free checking: a new flag
+ --show-mismatched-frees=no|yes [yes] makes it possible to turn off
+ such checks if necessary.
+
+* Helgrind:
+
+ - Improvements to error messages:
-Despite this being a snapshot of the CVS head, it is believed to be
-quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
--- and therefore suitable for widespread use. Please let us know asap
-if it causes problems for you.
+ o Race condition error message involving heap allocated blocks also
+ show the thread number that allocated the raced-on block.
-Two reasons for releasing a snapshot now are:
+ o All locks referenced by an error message are now announced.
+ Previously, some error messages only showed the lock addresses.
-- It's been a while since 1.9.6, and this snapshot fixes
- various problems that 1.9.6 has with threaded programs
- on glibc-2.3.X based systems.
+ o The message indicating where a lock was first observed now also
+ describes the address/location of the lock.
-- So as to make available improvements in the 2.0 line.
+ - Helgrind now understands the Ada task termination rules and
+ creates a happens-before relationship between a terminated task
+ and its master. This avoids some false positives and avoids a big
+ memory leak when a lot of Ada tasks are created and terminated.
+ The interceptions are only activated with forthcoming releases of
+ gnatpro >= 7.3.0w-20140611 and gcc >= 5.0.
-Major changes in 20030716, as compared to 1.9.6:
+ - A new GDB server monitor command "info locks" giving the list of
+ locks, their location, and their status.
-- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
- systems (SuSE 8.2, Red Hat 9). If you have had problems
- with inconsistent/illogical behaviour of errno, h_errno or the DNS
- resolver functions in threaded programs, 20030716 should improve
- matters. This snapshot seems stable enough to run OpenOffice.org
- 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
- threaded app if ever I saw one.
+* Callgrind:
-- Automatic generation of suppression records; you no longer
- need to write them by hand. Use --gen-suppressions=yes.
+ - callgrind_control now supports the --vgdb-prefix argument,
+ which is needed if valgrind was started with this same argument.
-- strcpy/memcpy/etc check their arguments for overlaps, when
- running with the Memcheck or Addrcheck skins.
+* ==================== OTHER CHANGES ====================
-- malloc_usable_size() is now supported.
+* Unwinding through inlined function calls. Stack unwinding can now
+ make use of Dwarf3 inlined-unwind information if it is available.
+ The practical effect is that inlined calls become visible in stack
+ traces. The suppression matching machinery has been adjusted
+ accordingly. This is controlled by the new option
+ --read-inline-info=yes|no. Currently this is enabled by default
+ only on Linux and Android targets and only for the tools Memcheck,
+ Helgrind and DRD.
-- new client requests:
- - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
- useful with regression testing
- - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
- on real CPU (use with caution!)
+* Valgrind can now read EXIDX unwind information on 32-bit ARM
+ targets. If an object contains both CFI and EXIDX unwind
+ information, Valgrind will prefer the CFI over the EXIDX. This
+ facilitates unwinding through system libraries on arm-android
+ targets.
+
+* Address description logic has been improved and is now common
+ between Memcheck and Helgrind, resulting in better address
+ descriptions for some kinds of error messages.
+
+* Error messages about dubious arguments (eg, to malloc or calloc) are
+ output like other errors. This means that they can be suppressed
+ and they have a stack trace.
+
+* The C++ demangler has been updated for better C++11 support.
+
+* New and modified GDB server monitor features:
+
+ - Thread local variables/storage (__thread) can now be displayed.
+
+ - The GDB server monitor command "v.info location <address>"
+ displays information about an address. The information produced
+ depends on the tool and on the options given to valgrind.
+ Possibly, the following are described: global variables, local
+ (stack) variables, allocated or freed blocks, ...
+
+ - The option "--vgdb-stop-at=event1,event2,..." allows the user to
+ ask the GDB server to stop at the start of program execution, at
+ the end of the program execution and on Valgrind internal errors.
+
+ - A new monitor command "v.info stats" shows various Valgrind core
+ and tool statistics.
+
+ - A new monitor command "v.set hostvisibility" allows the GDB server
+ to provide access to Valgrind internal host status/memory.
+
+* A new option "--aspace-minaddr=<address>" can in some situations
+ allow the use of more memory by decreasing the address above which
+ Valgrind maps memory. It can also be used to solve address
+ conflicts with system libraries by increasing the default value.
+ See user manual for details.
+
+* The amount of memory used by Valgrind to store debug info (unwind
+ info, line number information and symbol data) has been
+ significantly reduced, even though Valgrind now reads more
+ information in order to support unwinding of inlined function calls.
+
+* Dwarf3 handling with --read-var-info=yes has been improved:
+
+ - Ada and C struct containing VLAs no longer cause a "bad DIE" error
+
+ - Code compiled with
+ -ffunction-sections -fdata-sections -Wl,--gc-sections
+ no longer causes assertion failures.
+
+* Improved checking for the --sim-hints= and --kernel-variant=
+ options. Unknown strings are now detected and reported to the user
+ as a usage error.
+
+* The semantics of stack start/end boundaries in the valgrind.h
+ VALGRIND_STACK_REGISTER client request has been clarified and
+ documented. The convention is that start and end are respectively
+ the lowest and highest addressable bytes of the stack.
+
+* ==================== 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.
+
+175819 Support for ipv6 socket reporting with --track-fds
+232510 make distcheck fails
+249435 Analyzing wine programs with callgrind triggers a crash
+278972 support for inlined function calls in stacktraces and suppression
+ == 199144
+291310 FXSAVE instruction marks memory as undefined on amd64
+303536 ioctl for SIOCETHTOOL (ethtool(8)) isn't wrapped
+308729 vex x86->IR: unhandled instruction bytes 0xf 0x5 (syscall)
+315199 vgcore file for threaded app does not show which thread crashed
+315952 tun/tap ioctls are not supported
+323178 Unhandled instruction: PLDW register (ARM)
+323179 Unhandled instruction: PLDW immediate (ARM)
+324050 Helgrind: SEGV because of unaligned stack when using movdqa
+325110 Add test-cases for Power ISA 2.06 insns: divdo/divdo. and divduo/divduo.
+325124 [MIPSEL] Compilation error
+325477 Phase 4 support for IBM Power ISA 2.07
+325538 cavium octeon mips64, valgrind reported "dumping core" [...]
+325628 Phase 5 support for IBM Power ISA 2.07
+325714 Empty vgcore but RLIMIT_CORE is big enough (too big)
+325751 Missing the two privileged Power PC Transactional Memory Instructions
+325816 Phase 6 support for IBM Power ISA 2.07
+325856 Make SGCheck fail gracefully on unsupported platforms
+326026 Iop names for count leading zeros/sign bits incorrectly imply [..]
+326436 DRD: False positive in libstdc++ std::list::push_back
+326444 Cavium MIPS Octeon Specific Load Indexed Instructions
+326462 Refactor vgdb to isolate invoker stuff into separate module
+326469 amd64->IR: 0x66 0xF 0x3A 0x63 0xC1 0xE (pcmpistri 0x0E)
+326623 DRD: false positive conflict report in a field assignment
+326724 Valgrind does not compile on OSX 1.9 Mavericks
+326816 Intercept for __strncpy_sse2_unaligned missing?
+326921 coregrind fails to compile m_trampoline.S with MIPS/Linux port of V
+326983 Clear direction flag after tests on amd64.
+327212 Do not prepend the current directory to absolute path names.
+327223 Support for Cavium MIPS Octeon Atomic and Count Instructions
+327238 Callgrind Assertion 'passed <= last_bb->cjmp_count' failed
+327284 s390x: Fix translation of the risbg instruction
+327639 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x34
+327837 dwz compressed alternate .debug_info and .debug_str not read correctly
+327916 DW_TAG_typedef may have no name
+327943 s390x: add a redirection for the 'index' function
+328100 XABORT not implemented
+328205 Implement additional Xen hypercalls
+328454 add support Backtraces with ARM unwind tables (EXIDX)
+328455 s390x: SIGILL after emitting wrong register pair for ldxbr
+328711 valgrind.1 manpage "memcheck options" section is badly generated
+328878 vex amd64->IR pcmpestri SSE4.2 instruction is unsupported 0x14
+329612 Incorrect handling of AT_BASE for image execution
+329694 clang warns about using uninitialized variable
+329956 valgrind crashes when lmw/stmw instructions are used on ppc64
+330228 mmap must align to VKI_SHMLBA on mips32
+330257 LLVM does not support `-mno-dynamic-no-pic` option
+330319 amd64->IR: unhandled instruction bytes: 0xF 0x1 0xD5 (xend)
+330459 --track-fds=yes doesn't track eventfds
+330469 Add clock_adjtime syscall support
+330594 Missing sysalls on PowerPC / uClibc
+330622 Add test to regression suite for POWER instruction: dcbzl
+330939 Support for AMD's syscall instruction on x86
+ == 308729
+330941 Typo in PRE(poll) syscall wrapper
+331057 unhandled instruction: 0xEEE01B20 (vfma.f64) (has patch)
+331254 Fix expected output for memcheck/tests/dw4
+331255 Fix race condition in test none/tests/coolo_sigaction
+331257 Fix type of jump buffer in test none/tests/faultstatus
+331305 configure uses bash specific syntax
+331337 s390x WARNING: unhandled syscall: 326 (dup3)
+331380 Syscall param timer_create(evp) points to uninitialised byte(s)
+331476 Patch to handle ioctl 0x5422 on Linux (x86 and amd64)
+331829 Unexpected ioctl opcode sign extension
+331830 ppc64: WARNING: unhandled syscall: 96/97
+331839 drd/tests/sem_open specifies invalid semaphore name
+331847 outcome of drd/tests/thread_name is nondeterministic
+332037 Valgrind cannot handle Thumb "add pc, reg"
+332055 drd asserts on platforms with VG_STACK_REDZONE_SZB == 0 and
+ consistency checks enabled
+332263 intercepts for pthread_rwlock_timedrdlock and
+ pthread_rwlock_timedwrlock are incorrect
+332265 drd could do with post-rwlock_init and pre-rwlock_destroy
+ client requests
+332276 Implement additional Xen hypercalls
+332658 ldrd.w r1, r2, [PC, #imm] does not adjust for 32bit alignment
+332765 Fix ms_print to create temporary files in a proper directory
+333072 drd: Add semaphore annotations
+333145 Tests for missaligned PC+#imm access for arm
+333228 AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
+333230 AAarch64 missing instruction encodings: dc, ic, dsb.
+333248 WARNING: unhandled syscall: unix:443
+333428 ldr.w pc [rD, #imm] instruction leads to assertion
+333501 cachegrind: assertion: Cache set count is not a power of two.
+ == 336577
+ == 292281
+333666 Recognize MPX instructions and bnd prefix.
+333788 Valgrind does not support the CDROM_DISC_STATUS ioctl (has patch)
+333817 Valgrind reports the memory areas written to by the SG_IO
+ ioctl as untouched
+334049 lzcnt fails silently (x86_32)
+334384 Valgrind does not have support Little Endian support for
+ IBM POWER PPC 64
+334585 recvmmsg unhandled (+patch) (arm)
+334705 sendmsg and recvmsg should guard against bogus msghdr fields.
+334727 Build fails with -Werror=format-security
+334788 clarify doc about --log-file initial program directory
+334834 PPC64 Little Endian support, patch 2
+334836 PPC64 Little Endian support, patch 3 testcase fixes
+334936 patch to fix false positives on alsa SNDRV_CTL_* ioctls
+335034 Unhandled ioctl: HCIGETDEVLIST
+335155 vgdb, fix error print statement.
+335262 arm64: movi 8bit version is not supported
+335263 arm64: dmb instruction is not implemented
+335441 unhandled ioctl 0x8905 (SIOCATMARK) when running wine under valgrind
+335496 arm64: sbc/abc instructions are not implemented
+335554 arm64: unhandled instruction: abs
+335564 arm64: unhandled instruction: fcvtpu Xn, Sn
+335735 arm64: unhandled instruction: cnt
+335736 arm64: unhandled instruction: uaddlv
+335848 arm64: unhandled instruction: {s,u}cvtf
+335902 arm64: unhandled instruction: sli
+335903 arm64: unhandled instruction: umull (vector)
+336055 arm64: unhandled instruction: mov (element)
+336062 arm64: unhandled instruction: shrn{,2}
+336139 mip64: [...] valgrind hangs and spins on a single core [...]
+336189 arm64: unhandled Instruction: mvn
+336435 Valgrind hangs in pthread_spin_lock consuming 100% CPU
+336619 valgrind --read-var-info=yes doesn't handle DW_TAG_restrict_type
+336772 Make moans about unknown ioctls more informative
+336957 Add a section about the Solaris/illumos port on the webpage
+337094 ifunc wrapper is broken on ppc64
+337285 fcntl commands F_OFD_SETLK, F_OFD_SETLKW, and F_OFD_GETLK not supported
+337528 leak check heuristic for block prefixed by length as 64bit number
+337740 Implement additional Xen hypercalls
+337762 guest_arm64_toIR.c:4166 (dis_ARM64_load_store): Assertion `0' failed.
+337766 arm64-linux: unhandled syscalls mlock (228) and mlockall (230)
+337871 deprecate --db-attach
+338023 Add support for all V4L2/media ioctls
+338024 inlined functions are not shown if DW_AT_ranges is used
+338106 Add support for 'kcmp' syscall
+338115 DRD: computed conflict set differs from actual after fork
+338160 implement display of thread local storage in gdbsrv
+338205 configure.ac and check for -Wno-tautological-compare
+338300 coredumps are missing one byte of every segment
+338445 amd64 vbit-test fails with unknown opcodes used by arm64 VEX
+338499 --sim-hints parsing broken due to wrong order in tokens
+338615 suppress glibc 2.20 optimized strcmp implementation for ARMv7
+338681 Unable to unwind through clone thread created on i386-linux
+338698 race condition between gdbsrv and vgdb on startup
+338703 helgrind on arm-linux gets false positives in dynamic loader
+338791 alt dwz files can be relative of debug/main file
+338878 on MacOS: assertion 'VG_IS_PAGE_ALIGNED(clstack_end+1)' failed
+338932 build V-trunk with gcc-trunk
+338974 glibc 2.20 changed size of struct sigaction sa_flags field on s390
+345079 Fix build problems in VEX/useful/test_main.c
+n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
+n-i-bz s390x: Fix memory corruption for multithreaded applications
+n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
+n-i-bz internal error in Valgrind if vgdb transmit signals when ptrace invoked
+n-i-bz Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
+n-i-bz drd manual: Document how to C++11 programs that use class "std::thread"
+n-i-bz Add command-line option --default-suppressions
+n-i-bz Add support for BLKDISCARDZEROES ioctl
+n-i-bz ppc32/64: fix a regression with the mtfsb0/mtfsb1 instructions
+n-i-bz Add support for sys_pivot_root and sys_unshare
+
+(3.10.0.BETA1: 2 September 2014, vex r2940, valgrind r14428)
+(3.10.0.BETA2: 8 September 2014, vex r2950, valgrind r14503)
+(3.10.0: 10 September 2014, vex r2950, valgrind r14514)
+
+
+
+Release 3.9.0 (31 October 2013)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.9.0 is a feature release with many improvements and the usual
+collection of bug fixes.
-- The GDB attach mechanism is more flexible. Allow the GDB to
- be run to be specified by --gdb-path=/path/to/gdb, and specify
- which file descriptor V will read its input from with
- --input-fd=<number>.
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android,
+X86/Android, X86/MacOSX 10.7 and AMD64/MacOSX 10.7. Support for
+MacOSX 10.8 is significantly improved relative to the 3.8.0 release.
-- Cachegrind gives more accurate results (wasn't tracking instructions in
- malloc() and friends previously, is now).
+* ================== PLATFORM CHANGES =================
-- Complete support for the MMX instruction set.
+* Support for MIPS64 LE and BE running Linux. Valgrind has been
+ tested on MIPS64 Debian Squeeze and Debian Wheezy distributions.
-- Partial support for the SSE and SSE2 instruction sets. Work for this
- is ongoing. About half the SSE/SSE2 instructions are done, so
- some SSE based programs may work. Currently you need to specify
- --skin=addrcheck. Basically not suitable for real use yet.
+* Support for MIPS DSP ASE on MIPS32 platforms.
-- Significant speedups (10%-20%) for standard memory checking.
+* Support for s390x Decimal Floating Point instructions on hosts that
+ have the DFP facility installed.
-- Fix assertion failure in pthread_once().
+* Support for POWER8 (Power ISA 2.07) instructions
-- Fix this:
- valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
- Assertion `ms_end >= ms_now' failed.
+* Support for Intel AVX2 instructions. This is available only on 64
+ bit code.
-- Implement pthread_mutexattr_setpshared.
+* Initial support for Intel Transactional Synchronization Extensions,
+ both RTM and HLE.
-- Understand Pentium 4 branch hints. Also implemented a couple more
- obscure x86 instructions.
+* Initial support for Hardware Transactional Memory on POWER.
-- Lots of other minor bug fixes.
+* Improved support for MacOSX 10.8 (64-bit only). Memcheck can now
+ run large GUI apps tolerably well.
-- We have a decent regression test system, for the first time.
- This doesn't help you directly, but it does make it a lot easier
- for us to track the quality of the system, especially across
- multiple linux distributions.
+* ==================== TOOL CHANGES ====================
- You can run the regression tests with 'make regtest' after 'make
- install' completes. On SuSE 8.2 and Red Hat 9 I get this:
-
- == 84 tests, 0 stderr failures, 0 stdout failures ==
+* Memcheck:
- On Red Hat 8, I get this:
+ - Improvements in handling of vectorised code, leading to
+ significantly fewer false error reports. You need to use the flag
+ --partial-loads-ok=yes to get the benefits of these changes.
- == 84 tests, 2 stderr failures, 1 stdout failure ==
- corecheck/tests/res_search (stdout)
- memcheck/tests/sigaltstack (stderr)
+ - Better control over the leak checker. It is now possible to
+ specify which leak kinds (definite/indirect/possible/reachable)
+ should be displayed, which should be regarded as errors, and which
+ should be suppressed by a given leak suppression. This is done
+ using the options --show-leak-kinds=kind1,kind2,..,
+ --errors-for-leak-kinds=kind1,kind2,.. and an optional
+ "match-leak-kinds:" line in suppression entries, respectively.
- sigaltstack is probably harmless. res_search doesn't work
- on R H 8 even running natively, so I'm not too worried.
+ Note that generated leak suppressions contain this new line and
+ are therefore more specific than in previous releases. To get the
+ same behaviour as previous releases, remove the "match-leak-kinds:"
+ line from generated suppressions before using them.
- On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
+ - Reduced "possible leak" reports from the leak checker by the use
+ of better heuristics. The available heuristics provide detection
+ of valid interior pointers to std::stdstring, to new[] allocated
+ arrays with elements having destructors and to interior pointers
+ pointing to an inner part of a C++ object using multiple
+ inheritance. They can be selected individually using the
+ option --leak-check-heuristics=heur1,heur2,...
- == 84 tests, 2 stderr failures, 1 stdout failure ==
- corecheck/tests/pth_atfork1 (stdout)
- corecheck/tests/pth_atfork1 (stderr)
- memcheck/tests/sigaltstack (stderr)
+ - Better control of stacktrace acquisition for heap-allocated
+ blocks. Using the --keep-stacktraces option, it is possible to
+ control independently whether a stack trace is acquired for each
+ allocation and deallocation. This can be used to create better
+ "use after free" errors or to decrease Valgrind's resource
+ consumption by recording less information.
- You need to run on a PII system, at least, since some tests
- contain P6-specific instructions, and the test machine needs
- access to the internet so that corecheck/tests/res_search
- (a test that the DNS resolver works) can function.
+ - Better reporting of leak suppression usage. The list of used
+ suppressions (shown when the -v option is given) now shows, for
+ each leak suppressions, how many blocks and bytes it suppressed
+ during the last leak search.
-As ever, thanks for the vast amount of feedback :) and bug reports :(
-We may not answer all messages, but we do at least look at all of
-them, and tend to fix the most frequently reported bugs.
+* Helgrind:
+ - False errors resulting from the use of statically initialised
+ mutexes and condition variables (PTHREAD_MUTEX_INITIALISER, etc)
+ have been removed.
+ - False errors resulting from the use of pthread_cond_waits that
+ timeout, have been removed.
-Version 1.9.6 (7 May 2003 or thereabouts)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* ==================== OTHER CHANGES ====================
-Major changes in 1.9.6:
+* Some attempt to tune Valgrind's space requirements to the expected
+ capabilities of the target:
+
+ - The default size of the translation cache has been reduced from 8
+ sectors to 6 on Android platforms, since each sector occupies
+ about 40MB when using Memcheck.
+
+ - The default size of the translation cache has been increased to 16
+ sectors on all other platforms, reflecting the fact that large
+ applications require instrumentation and storage of huge amounts
+ of code. For similar reasons, the number of memory mapped
+ segments that can be tracked has been increased by a factor of 6.
+
+ - In all cases, the maximum number of sectors in the translation
+ cache can be controlled by the new flag --num-transtab-sectors.
+
+* Changes in how debug info (line numbers, etc) is read:
+
+ - Valgrind no longer temporarily mmaps the entire object to read
+ from it. Instead, reading is done through a small fixed sized
+ buffer. This avoids virtual memory usage spikes when Valgrind
+ reads debuginfo from large shared objects.
+
+ - A new experimental remote debug info server. Valgrind can read
+ debug info from a different machine (typically, a build host)
+ where debuginfo objects are stored. This can save a lot of time
+ and hassle when running Valgrind on resource-constrained targets
+ (phones, tablets) when the full debuginfo objects are stored
+ somewhere else. This is enabled by the --debuginfo-server=
+ option.
+
+ - Consistency checking between main and debug objects can be
+ disabled using the --allow-mismatched-debuginfo option.
+
+* Stack unwinding by stack scanning, on ARM. Unwinding by stack
+ scanning can recover stack traces in some cases when the normal
+ unwind mechanisms fail. Stack scanning is best described as "a
+ nasty, dangerous and misleading hack" and so is disabled by default.
+ Use --unw-stack-scan-thresh and --unw-stack-scan-frames to enable
+ and control it.
+
+* Detection and merging of recursive stack frame cycles. When your
+ program has recursive algorithms, this limits the memory used by
+ Valgrind for recorded stack traces and avoids recording
+ uninteresting repeated calls. This is controlled by the command
+ line option --merge-recursive-frame and by the monitor command
+ "v.set merge-recursive-frames".
+
+* File name and line numbers for used suppressions. The list of used
+ suppressions (shown when the -v option is given) now shows, for each
+ used suppression, the file name and line number where the suppression
+ is defined.
+
+* New and modified GDB server monitor features:
+
+ - valgrind.h has a new client request, VALGRIND_MONITOR_COMMAND,
+ that can be used to execute gdbserver monitor commands from the
+ client program.
+
+ - A new monitor command, "v.info open_fds", that gives the list of
+ open file descriptors and additional details.
+
+ - An optional message in the "v.info n_errs_found" monitor command,
+ for example "v.info n_errs_found test 1234 finished", allowing a
+ comment string to be added to the process output, perhaps for the
+ purpose of separating errors of different tests or test phases.
+
+ - A new monitor command "v.info execontext" that shows information
+ about the stack traces recorded by Valgrind.
+
+ - A new monitor command "v.do expensive_sanity_check_general" to run
+ some internal consistency checks.
+
+* New flag --sigill-diagnostics to control whether a diagnostic
+ message is printed when the JIT encounters an instruction it can't
+ translate. The actual behavior -- delivery of SIGILL to the
+ application -- is unchanged.
+
+* The maximum amount of memory that Valgrind can use on 64 bit targets
+ has been increased from 32GB to 64GB. This should make it possible
+ to run applications on Memcheck that natively require up to about 35GB.
+
+* ==================== 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.
+
+123837 system call: 4th argument is optional, depending on cmd
+135425 memcheck should tell you where Freed blocks were Mallocd
+164485 VG_N_SEGNAMES and VG_N_SEGMENTS are (still) too small
+207815 Adds some of the drm ioctls to syswrap-linux.c
+251569 vex amd64->IR: 0xF 0x1 0xF9 0xBF 0x90 0xD0 0x3 0x0 (RDTSCP)
+252955 Impossible to compile with ccache
+253519 Memcheck reports auxv pointer accesses as invalid reads.
+263034 Crash when loading some PPC64 binaries
+269599 Increase deepest backtrace
+274695 s390x: Support "compare to/from logical" instructions (z196)
+275800 s390x: Autodetect cache info (part 2)
+280271 Valgrind reports possible memory leaks on still-reachable std::string
+284540 Memcheck shouldn't count suppressions matching still-reachable [..]
+289578 Backtraces with ARM unwind tables (stack scan flags)
+296311 Wrong stack traces due to -fomit-frame-pointer (x86)
+304832 ppc32: build failure
+305431 Use find_buildid shdr fallback for separate .debug files
+305728 Add support for AVX2 instructions
+305948 ppc64: code generation for ShlD64 / ShrD64 asserts
+306035 s390x: Fix IR generation for LAAG and friends
+306054 s390x: Condition code computation for convert-to-int/logical
+306098 s390x: alternate opcode form for convert to/from fixed
+306587 Fix cache line detection from auxiliary vector for PPC.
+306783 Mips unhandled syscall : 4025 / 4079 / 4182
+307038 DWARF2 CFI reader: unhandled DW_OP_ opcode 0x8 (DW_OP_const1u et al)
+307082 HG false positive: pthread_cond_destroy: destruction of unknown CV
+307101 sys_capget second argument can be NULL
+307103 sys_openat: If pathname is absolute, then dirfd is ignored.
+307106 amd64->IR: f0 0f c0 02 (lock xadd byte)
+307113 s390x: DFP support
+307141 valgrind does't work in mips-linux system
+307155 filter_gdb should filter out syscall-template.S T_PSEUDO
+307285 x86_amd64 feature test for avx in test suite is wrong
+307290 memcheck overlap testcase needs memcpy version filter
+307463 Please add "&limit=0" to the "all open bugs" link
+307465 --show-possibly-lost=no should reduce the error count / exit code
+307557 Leaks on Mac OS X 10.7.5 libraries at ImageLoader::recursiveInit[..]
+307729 pkgconfig support broken valgrind.pc
+307828 Memcheck false errors SSE optimized wcscpy, wcscmp, wcsrchr, wcschr
+307955 Building valgrind 3.7.0-r4 fails in Gentoo AMD64 when using clang
+308089 Unhandled syscall on ppc64: prctl
+308135 PPC32 MPC8xx has 16 bytes cache size
+308321 testsuite memcheck filter interferes with gdb_filter
+308333 == 307106
+308341 vgdb should report process exit (or fatal signal)
+308427 s390 memcheck reports tsearch cjump/cmove depends on uninit
+308495 Remove build dependency on installed Xen headers
+308573 Internal error on 64-bit instruction executed in 32-bit mode
+308626 == 308627
+308627 pmovmskb validity bit propagation is imprecise
+308644 vgdb command for having the info for the track-fds option
+308711 give more info about aspacemgr and arenas in out_of_memory
+308717 ARM: implement fixed-point VCVT.F64.[SU]32
+308718 ARM implement SMLALBB family of instructions
+308886 Missing support for PTRACE_SET/GETREGSET
+308930 syscall name_to_handle_at (303 on amd64) not handled
+309229 V-bit tester does not report number of tests generated
+309323 print unrecognized instuction on MIPS
+309425 Provide a --sigill-diagnostics flag to suppress illegal [..]
+309427 SSE optimized stpncpy trigger uninitialised value [..] errors
+309430 Self hosting ppc64 encounters a vassert error on operand type
+309600 valgrind is a bit confused about 0-sized sections
+309823 Generate errors for still reachable blocks
+309921 PCMPISTRI validity bit propagation is imprecise
+309922 none/tests/ppc64/test_dfp5 sometimes fails
+310169 The Iop_CmpORD class of Iops is not supported by the vbit checker.
+310424 --read-var-info does not properly describe static variables
+310792 search additional path for debug symbols
+310931 s390x: Message-security assist (MSA) instruction extension [..]
+311100 PPC DFP implementation of the integer operands is inconsistent [..]
+311318 ARM: "128-bit constant is not implemented" error message
+311407 ssse3 bcopy (actually converted memcpy) causes invalid read [..]
+311690 V crashes because it redirects branches inside of a redirected function
+311880 x86_64: make regtest hangs at shell_valid1
+311922 WARNING: unhandled syscall: 170
+311933 == 251569
+312171 ppc: insn selection for DFP
+312571 Rounding mode call wrong for the DFP Iops [..]
+312620 Change to Iop_D32toD64 [..] for s390 DFP support broke ppc [..]
+312913 Dangling pointers error should also report the alloc stack trace
+312980 Building on Mountain Lion generates some compiler warnings
+313267 Adding MIPS64/Linux port to Valgrind
+313348 == 251569
+313354 == 251569
+313811 Buffer overflow in assert_fail
+314099 coverity pointed out error in VEX guest_ppc_toIR.c insn_suffix
+314269 ppc: dead code in insn selection
+314718 ARM: implement integer divide instruction (sdiv and udiv)
+315345 cl-format.xml and callgrind/dump.c don't agree on using cfl= or cfi=
+315441 sendmsg syscall should ignore unset msghdr msg_flags
+315534 msgrcv inside a thread causes valgrind to hang (block)
+315545 Assertion '(UChar*)sec->tt[tteNo].tcptr <= (UChar*)hcode' failed
+315689 disInstr(thumb): unhandled instruction: 0xF852 0x0E10 (LDRT)
+315738 disInstr(arm): unhandled instruction: 0xEEBE0BEE (vcvt.s32.f64)
+315959 valgrind man page has bogus SGCHECK (and no BBV) OPTIONS section
+316144 valgrind.1 manpage contains unknown ??? strings [..]
+316145 callgrind command line options in manpage reference (unknown) [..]
+316145 callgrind command line options in manpage reference [..]
+316181 drd: Fixed a 4x slowdown for certain applications
+316503 Valgrind does not support SSE4 "movntdqa" instruction
+316535 Use of |signed int| instead of |size_t| in valgrind messages
+316696 fluidanimate program of parsec 2.1 stuck
+316761 syscall open_by_handle_at (304 on amd64, 342 on x86) not handled
+317091 Use -Wl,-Ttext-segment when static linking if possible [..]
+317186 "Impossible happens" when occurs VCVT instruction on ARM
+317318 Support for Threading Building Blocks "scalable_malloc"
+317444 amd64->IR: 0xC4 0x41 0x2C 0xC2 0xD2 0x8 (vcmpeq_uqps)
+317461 Fix BMI assembler configure check and avx2/bmi/fma vgtest prereqs
+317463 bmi testcase IR SANITY CHECK FAILURE
+317506 memcheck/tests/vbit-test fails with unknown opcode after [..]
+318050 libmpiwrap fails to compile with out-of-source build
+318203 setsockopt handling needs to handle SOL_SOCKET/SO_ATTACH_FILTER
+318643 annotate_trace_memory tests infinite loop on arm and ppc [..]
+318773 amd64->IR: 0xF3 0x48 0x0F 0xBC 0xC2 0xC3 0x66 0x0F
+318929 Crash with: disInstr(thumb): 0xF321 0x0001 (ssat16)
+318932 Add missing PPC64 and PPC32 system call support
+319235 --db-attach=yes is broken with Yama (ptrace scoping) enabled
+319395 Crash with unhandled instruction on STRT (Thumb) instructions
+319494 VEX Makefile-gcc standalone build update after r2702
+319505 [MIPSEL] Crash: unhandled UNRAY operator.
+319858 disInstr(thumb): unhandled instruction on instruction STRBT
+319932 disInstr(thumb): unhandled instruction on instruction STRHT
+320057 Problems when we try to mmap more than 12 memory pages on MIPS32
+320063 Memory from PTRACE_GET_THREAD_AREA is reported uninitialised
+320083 disInstr(thumb): unhandled instruction on instruction LDRBT
+320116 bind on AF_BLUETOOTH produces warnings because of sockaddr_rc padding
+320131 WARNING: unhandled syscall: 369 on ARM (prlimit64)
+320211 Stack buffer overflow in ./coregrind/m_main.c with huge TMPDIR
+320661 vgModuleLocal_read_elf_debug_info(): "Assertion '!di->soname'
+320895 add fanotify support (patch included)
+320998 vex amd64->IR pcmpestri and pcmpestrm SSE4.2 instruction
+321065 Valgrind updates for Xen 4.3
+321148 Unhandled instruction: PLI (Thumb 1, 2, 3)
+321363 Unhandled instruction: SSAX (ARM + Thumb)
+321364 Unhandled instruction: SXTAB16 (ARM + Thumb)
+321466 Unhandled instruction: SHASX (ARM + Thumb)
+321467 Unhandled instruction: SHSAX (ARM + Thumb)
+321468 Unhandled instruction: SHSUB16 (ARM + Thumb)
+321619 Unhandled instruction: SHSUB8 (ARM + Thumb)
+321620 Unhandled instruction: UASX (ARM + Thumb)
+321621 Unhandled instruction: USAX (ARM + Thumb)
+321692 Unhandled instruction: UQADD16 (ARM + Thumb)
+321693 Unhandled instruction: LDRSBT (Thumb)
+321694 Unhandled instruction: UQASX (ARM + Thumb)
+321696 Unhandled instruction: UQSAX (Thumb + ARM)
+321697 Unhandled instruction: UHASX (ARM + Thumb)
+321703 Unhandled instruction: UHSAX (ARM + Thumb)
+321704 Unhandled instruction: REVSH (ARM + Thumb)
+321730 Add cg_diff and cg_merge man pages
+321738 Add vgdb and valgrind-listener man pages
+321814 == 315545
+321891 Unhandled instruction: LDRHT (Thumb)
+321960 pthread_create() then alloca() causing invalid stack write errors
+321969 ppc32 and ppc64 don't support [lf]setxattr
+322254 Show threadname together with tid if set by application
+322294 Add initial support for IBM Power ISA 2.07
+322368 Assertion failure in wqthread_hijack under OS X 10.8
+322563 vex mips->IR: 0x70 0x83 0xF0 0x3A
+322807 VALGRIND_PRINTF_BACKTRACE writes callstack to xml and text to stderr
+322851 0bXXX binary literal syntax is not standard
+323035 Unhandled instruction: LDRSHT(Thumb)
+323036 Unhandled instruction: SMMLS (ARM and Thumb)
+323116 The memcheck/tests/ppc64/power_ISA2_05.c fails to build [..]
+323175 Unhandled instruction: SMLALD (ARM + Thumb)
+323177 Unhandled instruction: SMLSLD (ARM + Thumb)
+323432 Calling pthread_cond_destroy() or pthread_mutex_destroy() [..]
+323437 Phase 2 support for IBM Power ISA 2.07
+323713 Support mmxext (integer sse) subset on i386 (athlon)
+323803 Transactional memory instructions are not supported for Power
+323893 SSE3 not available on amd cpus in valgrind
+323905 Probable false positive from Valgrind/drd on close()
+323912 valgrind.h header isn't compatible for mingw64
+324047 Valgrind doesn't support [LDR,ST]{S}[B,H]T ARM instructions
+324149 helgrind: When pthread_cond_timedwait returns ETIMEDOUT [..]
+324181 mmap does not handle MAP_32BIT
+324227 memcheck false positive leak when a thread calls exit+block [..]
+324421 Support for fanotify API on ARM architecture
+324514 gdbserver monitor cmd output behaviour consistency [..]
+324518 ppc64: Emulation of dcbt instructions does not handle [..]
+324546 none/tests/ppc32 test_isa_2_07_part2 requests -m64
+324582 When access is made to freed memory, report both allocation [..]
+324594 Fix overflow computation for Power ISA 2.06 insns: mulldo/mulldo.
+324765 ppc64: illegal instruction when executing none/tests/ppc64/jm-misc
+324816 Incorrect VEX implementation for xscvspdp/xvcvspdp for SNaN inputs
+324834 Unhandled instructions in Microsoft C run-time for x86_64
+324894 Phase 3 support for IBM Power ISA 2.07
+326091 drd: Avoid false race reports from optimized strlen() impls
+326113 valgrind libvex hwcaps error on AMD64
+n-i-bz Some wrong command line options could be ignored
+n-i-bz patch to allow fair-sched on android
+n-i-bz report error for vgdb snapshot requested before execution
+n-i-bz same as 303624 (fixed in 3.8.0), but for x86 android
+
+(3.9.0: 31 October 2013, vex r2796, valgrind r13708)
+
+
+
+Release 3.8.1 (19 September 2012)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.8.1 is a bug fix release. It fixes some assertion failures in 3.8.0
+that occur moderately frequently in real use cases, adds support for
+some missing instructions on ARM, and fixes a deadlock condition on
+MacOSX. If you package or deliver 3.8.0 for others to use, you might
+want to consider upgrading to 3.8.1 instead.
+
+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.
+
+284004 == 301281
+289584 Unhandled instruction: 0xF 0x29 0xE5 (MOVAPS)
+295808 amd64->IR: 0xF3 0xF 0xBC 0xC0 (TZCNT)
+298281 wcslen causes false(?) uninitialised value warnings
+301281 valgrind hangs on OS X when the process calls system()
+304035 disInstr(arm): unhandled instruction 0xE1023053
+304867 implement MOVBE instruction in x86 mode
+304980 Assertion 'lo <= hi' failed in vgModuleLocal_find_rx_mapping
+305042 amd64: implement 0F 7F encoding of movq between two registers
+305199 ARM: implement QDADD and QDSUB
+305321 amd64->IR: 0xF 0xD 0xC (prefetchw)
+305513 killed by fatal signal: SIGSEGV
+305690 DRD reporting invalid semaphore when sem_trywait fails
+305926 Invalid alignment checks for some AVX instructions
+306297 disInstr(thumb): unhandled instruction 0xE883 0x000C
+306310 3.8.0 release tarball missing some files
+306612 RHEL 6 glibc-2.X default suppressions need /lib*/libc-*patterns
+306664 vex amd64->IR: 0x66 0xF 0x3A 0x62 0xD1 0x46 0x66 0xF
+n-i-bz shmat of a segment > 4Gb does not work
+n-i-bz simulate_control_c script wrong USR1 signal number on mips
+n-i-bz vgdb ptrace calls wrong on mips [...]
+n-i-bz Fixes for more MPI false positives
+n-i-bz exp-sgcheck's memcpy causes programs to segfault
+n-i-bz OSX build w/ clang: asserts at startup
+n-i-bz Incorrect undef'dness prop for Iop_DPBtoBCD and Iop_BCDtoDPB
+n-i-bz fix a couple of union tag-vs-field mixups
+n-i-bz OSX: use __NR_poll_nocancel rather than __NR_poll
+
+The following bugs were fixed in 3.8.0 but not listed in this NEWS
+file at the time:
+
+254088 Valgrind should know about UD2 instruction
+301280 == 254088
+301902 == 254088
+304754 NEWS blows TeX's little mind
+
+(3.8.1: 19 September 2012, vex r2537, valgrind r12996)
+
+
+
+Release 3.8.0 (10 August 2012)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.8.0 is a feature release with many improvements and the usual
+collection of bug fixes.
-- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
- RedHat 9, to name but two ...) It turned out that 1.9.5
- had problems with threading support on glibc >= 2.3.2,
- usually manifested by threaded programs deadlocking in system calls,
- or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
- is the first valgrind which gives reasonable support for
- glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, S390X/Linux, MIPS/Linux, ARM/Android, X86/Android,
+X86/MacOSX 10.6/10.7 and AMD64/MacOSX 10.6/10.7. Support for recent
+distros and toolchain components (glibc 2.16, gcc 4.7) has been added.
+There is initial support for MacOSX 10.8, but it is not usable for
+serious work at present.
-- Majorly expanded FAQ.txt. We've added workarounds for all
- common problems for which a workaround is known.
+* ================== PLATFORM CHANGES =================
-Minor changes in 1.9.6:
+* Support for MIPS32 platforms running Linux. Valgrind has been
+ tested on MIPS32 and MIPS32r2 platforms running different Debian
+ Squeeze and MeeGo distributions. Both little-endian and big-endian
+ cores are supported. The tools Memcheck, Massif and Lackey have
+ been tested and are known to work. See README.mips for more details.
-- Fix identification of the main thread's stack. Incorrect
- identification of it was causing some on-stack addresses to not get
- identified as such. This only affected the usefulness of some error
- messages; the correctness of the checks made is unchanged.
+* Preliminary support for Android running on x86.
-- Support for kernels >= 2.5.68.
+* Preliminary (as-yet largely unusable) support for MacOSX 10.8.
-- Dummy implementations of __libc_current_sigrtmin,
- __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
- good enough to keep alive programs which previously died for lack of
- them.
+* Support for Intel AVX instructions and for AES instructions. This
+ support is available only for 64 bit code.
-- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
+* Support for POWER Decimal Floating Point instructions.
-- Fix bug in the DWARF2 debug line info loader, when instructions
- following each other have source lines far from each other
- (e.g. with inlined functions).
+* ==================== TOOL CHANGES ====================
-- Debug info reading: read symbols from both "symtab" and "dynsym"
- sections, rather than merely from the one that comes last in the
- file.
+* Non-libc malloc implementations are now supported. This is useful
+ for tools that replace malloc (Memcheck, Massif, DRD, Helgrind).
+ Using the new option --soname-synonyms, such tools can be informed
+ that the malloc implementation is either linked statically into the
+ executable, or is present in some other shared library different
+ from libc.so. This makes it possible to process statically linked
+ programs, and programs using other malloc libraries, for example
+ TCMalloc or JEMalloc.
-- New syscall support: prctl(), creat(), lookup_dcookie().
+* For tools that provide their own replacement for malloc et al, the
+ option --redzone-size=<number> allows users to specify the size of
+ the padding blocks (redzones) added before and after each client
+ allocated block. Smaller redzones decrease the memory needed by
+ Valgrind. Bigger redzones increase the chance to detect blocks
+ overrun or underrun. Prior to this change, the redzone size was
+ hardwired to 16 bytes in Memcheck.
-- When checking calls to accept(), recvfrom(), getsocketopt(),
- don't complain if buffer values are NULL.
+* Memcheck:
-- Try and avoid assertion failures in
- mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
+ - The leak_check GDB server monitor command now can
+ control the maximum nr of loss records to output.
-- Minor bug fixes in cg_annotate.
+ - Reduction of memory use for applications allocating
+ many blocks and/or having many partially defined bytes.
+
+ - Addition of GDB server monitor command 'block_list' that lists
+ the addresses/sizes of the blocks of a leak search loss record.
+
+ - Addition of GDB server monitor command 'who_points_at' that lists
+ the locations pointing at a block.
+
+ - If a redzone size > 0 is given, VALGRIND_MALLOCLIKE_BLOCK now will
+ detect an invalid access of these redzones, by marking them
+ noaccess. Similarly, if a redzone size is given for a memory
+ pool, VALGRIND_MEMPOOL_ALLOC will mark the redzones no access.
+ This still allows to find some bugs if the user has forgotten to
+ mark the pool superblock noaccess.
+
+ - Performance of memory leak check has been improved, especially in
+ cases where there are many leaked blocks and/or many suppression
+ rules used to suppress leak reports.
+
+ - Reduced noise (false positive) level on MacOSX 10.6/10.7, due to
+ more precise analysis, which is important for LLVM/Clang
+ generated code. This is at the cost of somewhat reduced
+ performance. Note there is no change to analysis precision or
+ costs on Linux targets.
+
+* DRD:
+
+ - Added even more facilities that can help finding the cause of a data
+ race, namely the command-line option --ptrace-addr and the macro
+ DRD_STOP_TRACING_VAR(x). More information can be found in the manual.
+
+ - Fixed a subtle bug that could cause false positive data race reports.
+
+* ==================== OTHER CHANGES ====================
+
+* The C++ demangler has been updated so as to work well with C++
+ compiled by up to at least g++ 4.6.
+
+* Tool developers can make replacement/wrapping more flexible thanks
+ to the new option --soname-synonyms. This was reported above, but
+ in fact is very general and applies to all function
+ replacement/wrapping, not just to malloc-family functions.
+
+* Round-robin scheduling of threads can be selected, using the new
+ option --fair-sched= yes. Prior to this change, the pipe-based
+ thread serialisation mechanism (which is still the default) could
+ give very unfair scheduling. --fair-sched=yes improves
+ responsiveness of interactive multithreaded applications, and
+ improves repeatability of results from the thread checkers Helgrind
+ and DRD.
+
+* For tool developers: support to run Valgrind on Valgrind has been
+ improved. We can now routinely Valgrind on Helgrind or Memcheck.
+
+* gdbserver now shows the float shadow registers as integer
+ rather than float values, as the shadow values are mostly
+ used as bit patterns.
+
+* Increased limit for the --num-callers command line flag to 500.
+
+* Performance improvements for error matching when there are many
+ suppression records in use.
+
+* Improved support for DWARF4 debugging information (bug 284184).
+
+* Initial support for DWZ compressed Dwarf debug info.
+
+* Improved control over the IR optimiser's handling of the tradeoff
+ between performance and precision of exceptions. Specifically,
+ --vex-iropt-precise-memory-exns has been removed and replaced by
+ --vex-iropt-register-updates, with extended functionality. This
+ allows the Valgrind gdbserver to always show up to date register
+ values to GDB.
+
+* Modest performance gains through the use of translation chaining for
+ JIT-generated code.
+
+* ==================== 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.
+
+197914 Building valgrind from svn now requires automake-1.10
+203877 increase to 16Mb maximum allowed alignment for memalign et al
+219156 Handle statically linked malloc or other malloc lib (e.g. tcmalloc)
+247386 make perf does not run all performance tests
+270006 Valgrind scheduler unfair
+270777 Adding MIPS/Linux port to Valgrind
+270796 s390x: Removed broken support for the TS insn
+271438 Fix configure for proper SSE4.2 detection
+273114 s390x: Support TR, TRE, TROO, TROT, TRTO, and TRTT instructions
+273475 Add support for AVX instructions
+274078 improved configure logic for mpicc
+276993 fix mremap 'no thrash checks'
+278313 Fedora 15/x64: err read debug info with --read-var-info=yes flag
+281482 memcheck incorrect byte allocation count in realloc() for silly argument
+282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit
+283413 Fix wrong sanity check
+283671 Robustize alignment computation in LibVEX_Alloc
+283961 Adding support for some HCI IOCTLs
+284124 parse_type_DIE: confused by: DWARF 4
+284864 == 273475 (Add support for AVX instructions)
+285219 Too-restrictive constraints for Thumb2 "SP plus/minus register"
+285662 (MacOSX): Memcheck needs to replace memcpy/memmove
+285725 == 273475 (Add support for AVX instructions)
+286261 add wrapper for linux I2C_RDWR ioctl
+286270 vgpreload is not friendly to 64->32 bit execs, gives ld.so warnings
+286374 Running cachegrind with --branch-sim=yes on 64-bit PowerPC program fails
+286384 configure fails "checking for a supported version of gcc"
+286497 == 273475 (Add support for AVX instructions)
+286596 == 273475 (Add support for AVX instructions)
+286917 disInstr(arm): unhandled instruction: QADD (also QSUB)
+287175 ARM: scalar VFP fixed-point VCVT instructions not handled
+287260 Incorrect conditional jump or move depends on uninitialised value(s)
+287301 vex amd64->IR: 0x66 0xF 0x38 0x41 0xC0 0xB8 0x0 0x0 (PHMINPOSUW)
+287307 == 273475 (Add support for AVX instructions)
+287858 VG_(strerror): unknown error
+288298 (MacOSX) unhandled syscall shm_unlink
+288995 == 273475 (Add support for AVX instructions)
+289470 Loading of large Mach-O thin binaries fails.
+289656 == 273475 (Add support for AVX instructions)
+289699 vgdb connection in relay mode erroneously closed due to buffer overrun
+289823 == 293754 (PCMPxSTRx not implemented for 16-bit characters)
+289839 s390x: Provide support for unicode conversion instructions
+289939 monitor cmd 'leak_check' with details about leaked or reachable blocks
+290006 memcheck doesn't mark %xmm as initialized after "pcmpeqw %xmm %xmm"
+290655 Add support for AESKEYGENASSIST instruction
+290719 valgrind-3.7.0 fails with automake-1.11.2 due to"pkglibdir" usage
+290974 vgdb must align pages to VKI_SHMLBA (16KB) on ARM
+291253 ES register not initialised in valgrind simulation
+291568 Fix 3DNOW-related crashes with baseline x86_64 CPU (w patch)
+291865 s390x: Support the "Compare Double and Swap" family of instructions
+292300 == 273475 (Add support for AVX instructions)
+292430 unrecognized instruction in __intel_get_new_mem_ops_cpuid
+292493 == 273475 (Add support for AVX instructions)
+292626 Missing fcntl F_SETOWN_EX and F_GETOWN_EX support
+292627 Missing support for some SCSI ioctls
+292628 none/tests/x86/bug125959-x86.c triggers undefined behavior
+292841 == 273475 (Add support for AVX instructions)
+292993 implement the getcpu syscall on amd64-linux
+292995 Implement the “cross memory attach” syscalls introduced in Linux 3.2
+293088 Add some VEX sanity checks for ppc64 unhandled instructions
+293751 == 290655 (Add support for AESKEYGENASSIST instruction)
+293754 PCMPxSTRx not implemented for 16-bit characters
+293755 == 293754 (No tests for PCMPxSTRx on 16-bit characters)
+293808 CLFLUSH not supported by latest VEX for amd64
+294047 valgrind does not correctly emulate prlimit64(..., RLIMIT_NOFILE, ...)
+294048 MPSADBW instruction not implemented
+294055 regtest none/tests/shell fails when locale is not set to C
+294185 INT 0x44 (and others) not supported on x86 guest, but used by Jikes RVM
+294190 --vgdb-error=xxx can be out of sync with errors shown to the user
+294191 amd64: fnsave/frstor and 0x66 size prefixes on FP instructions
+294260 disInstr_AMD64: disInstr miscalculated next %rip
+294523 --partial-loads-ok=yes causes false negatives
+294617 vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A
+294736 vex amd64->IR: 0x48 0xF 0xD7 0xD6 0x48 0x83
+294812 patch allowing to run (on x86 at least) helgrind/drd on tool.
+295089 can not annotate source for both helgrind and drd
+295221 POWER Processor decimal floating point instruction support missing
+295427 building for i386 with clang on darwin11 requires "-new_linker linker"
+295428 coregrind/m_main.c has incorrect x86 assembly for darwin
+295590 Helgrind: Assertion 'cvi->nWaiters > 0' failed
+295617 ARM - Add some missing syscalls
+295799 Missing \n with get_vbits in gdbserver when line is % 80 [...]
+296229 Linux user input device ioctls missing wrappers
+296318 ELF Debug info improvements (more than one rx/rw mapping)
+296422 Add translation chaining support
+296457 vex amd64->IR: 0x66 0xF 0x3A 0xDF 0xD1 0x1 0xE8 0x6A (dup of AES)
+296792 valgrind 3.7.0: add SIOCSHWTSTAMP (0x89B0) ioctl wrapper
+296983 Fix build issues on x86_64/ppc64 without 32-bit toolchains
+297078 gdbserver signal handling problems [..]
+297147 drd false positives on newly allocated memory
+297329 disallow decoding of IBM Power DFP insns on some machines
+297497 POWER Processor decimal floating point instruction support missing
+297701 Another alias for strncasecmp_l in libc-2.13.so
+297911 'invalid write' not reported when using APIs for custom mem allocators.
+297976 s390x: revisit EX implementation
+297991 Valgrind interferes with mmap()+ftell()
+297992 Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux)
+297993 Fix compilation of valgrind with gcc -g3.
+298080 POWER Processor DFP support missing, part 3
+298227 == 273475 (Add support for AVX instructions)
+298335 == 273475 (Add support for AVX instructions)
+298354 Unhandled ARM Thumb instruction 0xEB0D 0x0585 (streq)
+298394 s390x: Don't bail out on an unknown machine model. [..]
+298421 accept4() syscall (366) support is missing for ARM
+298718 vex amd64->IR: 0xF 0xB1 0xCB 0x9C 0x8F 0x45
+298732 valgrind installation problem in ubuntu with kernel version 3.x
+298862 POWER Processor DFP instruction support missing, part 4
+298864 DWARF reader mis-parses DW_FORM_ref_addr
+298943 massif asserts with --pages-as-heap=yes when brk is changing [..]
+299053 Support DWARF4 DW_AT_high_pc constant form
+299104 == 273475 (Add support for AVX instructions)
+299316 Helgrind: hg_main.c:628 (map_threads_lookup): Assertion 'thr' failed.
+299629 dup3() syscall (358) support is missing for ARM
+299694 POWER Processor DFP instruction support missing, part 5
+299756 Ignore --free-fill for MEMPOOL_FREE and FREELIKE client requests
+299803 == 273475 (Add support for AVX instructions)
+299804 == 273475 (Add support for AVX instructions)
+299805 == 273475 (Add support for AVX instructions)
+300140 ARM - Missing (T1) SMMUL
+300195 == 296318 (ELF Debug info improvements (more than one rx/rw mapping))
+300389 Assertion `are_valid_hwcaps(VexArchAMD64, [..])' failed.
+300414 FCOM and FCOMP unimplemented for amd64 guest
+301204 infinite loop in canonicaliseSymtab with ifunc symbol
+301229 == 203877 (increase to 16Mb maximum allowed alignment for memalign etc)
+301265 add x86 support to Android build
+301984 configure script doesn't detect certain versions of clang
+302205 Fix compiler warnings for POWER VEX code and POWER test cases
+302287 Unhandled movbe instruction on Atom processors
+302370 PPC: fnmadd, fnmsub, fnmadds, fnmsubs insns always negate the result
+302536 Fix for the POWER Valgrind regression test: memcheck-ISA2.0.
+302578 Unrecognized isntruction 0xc5 0x32 0xc2 0xca 0x09 vcmpngess
+302656 == 273475 (Add support for AVX instructions)
+302709 valgrind for ARM needs extra tls support for android emulator [..]
+302827 add wrapper for CDROM_GET_CAPABILITY
+302901 Valgrind crashes with dwz optimized debuginfo
+302918 Enable testing of the vmaddfp and vnsubfp instructions in the testsuite
+303116 Add support for the POWER instruction popcntb
+303127 Power test suite fixes for frsqrte, vrefp, and vrsqrtefp instructions.
+303250 Assertion `instrs_in->arr_used <= 10000' failed w/ OpenSSL code
+303466 == 273475 (Add support for AVX instructions)
+303624 segmentation fault on Android 4.1 (e.g. on Galaxy Nexus OMAP)
+303963 strstr() function produces wrong results under valgrind callgrind
+304054 CALL_FN_xx macros need to enforce stack alignment
+304561 tee system call not supported
+715750 (MacOSX): Incorrect invalid-address errors near 0xFFFFxxxx (mozbug#)
+n-i-bz Add missing gdbserver xml files for shadow registers for ppc32
+n-i-bz Bypass gcc4.4/4.5 code gen bugs causing out of memory or asserts
+n-i-bz Fix assert in gdbserver for watchpoints watching the same address
+n-i-bz Fix false positive in sys_clone on amd64 when optional args [..]
+n-i-bz s390x: Shadow registers can now be examined using vgdb
+
+(3.8.0-TEST3: 9 August 2012, vex r2465, valgrind r12865)
+(3.8.0: 10 August 2012, vex r2465, valgrind r12866)
+
+
+
+Release 3.7.0 (5 November 2011)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.7.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, S390X/Linux, ARM/Android, X86/Darwin and AMD64/Darwin.
+Support for recent distros and toolchain components (glibc 2.14, gcc
+4.6, MacOSX 10.7) has been added.
+* ================== PLATFORM CHANGES =================
-Version 1.9.5 (7 April 2003)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Support for IBM z/Architecture (s390x) running Linux. Valgrind can
+ analyse 64-bit programs running on z/Architecture. Most user space
+ instructions up to and including z10 are supported. Valgrind has
+ been tested extensively on z9, z10, and z196 machines running SLES
+ 10/11, RedHat 5/6m, and Fedora. The Memcheck and Massif tools are
+ known to work well. Callgrind, Helgrind, and DRD work reasonably
+ well on z9 and later models. See README.s390 for more details.
-It occurs to me that it would be helpful for valgrind users to record
-in the source distribution the changes in each release. So I now
-attempt to mend my errant ways :-) Changes in this and future releases
-will be documented in the NEWS file in the source distribution.
-
-Major changes in 1.9.5:
-
-- (Critical bug fix): Fix a bug in the FPU simulation. This was
- causing some floating point conditional tests not to work right.
- Several people reported this. If you had floating point code which
- didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
-
-- Partial support for Red Hat 9. RH9 uses the new Native Posix
- Threads Library (NPTL), instead of the older LinuxThreads.
- This potentially causes problems with V which will take some
- time to correct. In the meantime we have partially worked around
- this, and so 1.9.5 works on RH9. Threaded programs still work,
- but they may deadlock, because some system calls (accept, read,
- write, etc) which should be nonblocking, in fact do block. This
- is a known bug which we are looking into.
-
- If you can, your best bet (unfortunately) is to avoid using
- 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
- If your glibc is 2.3.1 or earlier, you're almost certainly OK.
-
-Minor changes in 1.9.5:
-
-- Added some #errors to valgrind.h to ensure people don't include
- it accidentally in their sources. This is a change from 1.0.X
- which was never properly documented. The right thing to include
- is now memcheck.h. Some people reported problems and strange
- behaviour when (incorrectly) including valgrind.h in code with
- 1.9.1 -- 1.9.4. This is no longer possible.
-
-- Add some __extension__ bits and pieces so that gcc configured
- for valgrind-checking compiles even with -Werror. If you
- don't understand this, ignore it. Of interest to gcc developers
- only.
-
-- Removed a pointless check which caused problems interworking
- with Clearcase. V would complain about shared objects whose
- names did not end ".so", and refuse to run. This is now fixed.
- In fact it was fixed in 1.9.4 but not documented.
-
-- Fixed a bug causing an assertion failure of "waiters == 1"
- somewhere in vg_scheduler.c, when running large threaded apps,
- notably MySQL.
-
-- Add support for the munlock system call (124).
-
-Some comments about future releases:
-
-1.9.5 is, we hope, the most stable Valgrind so far. It pretty much
-supersedes the 1.0.X branch. If you are a valgrind packager, please
-consider making 1.9.5 available to your users. You can regard the
-1.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
-are no plans at all for further releases of the 1.0.X branch.
-
-If you want a leading-edge valgrind, consider building the cvs head
-(from SourceForge), or getting a snapshot of it. Current cool stuff
-going in includes MMX support (done); SSE/SSE2 support (in progress),
-a significant (10-20%) performance improvement (done), and the usual
-large collection of minor changes. Hopefully we will be able to
-improve our NPTL support, but no promises.
+* Preliminary support for MacOSX 10.7 and XCode 4. Both 32- and
+ 64-bit processes are supported. Some complex threaded applications
+ (Firefox) are observed to hang when run as 32 bit applications,
+ whereas 64-bit versions run OK. The cause is unknown. Memcheck
+ will likely report some false errors. In general, expect some rough
+ spots. This release also supports MacOSX 10.6, but drops support
+ for 10.5.
+
+* Preliminary support for Android (on ARM). Valgrind can now run
+ large applications (eg, Firefox) on (eg) a Samsung Nexus S. See
+ README.android for more details, plus instructions on how to get
+ started.
+
+* Support for the IBM Power ISA 2.06 (Power7 instructions)
+
+* General correctness and performance improvements for ARM/Linux, and,
+ by extension, ARM/Android.
+
+* Further solidification of support for SSE 4.2 in 64-bit mode. AVX
+ instruction set support is under development but is not available in
+ this release.
+
+* Support for AIX5 has been removed.
+
+* ==================== TOOL CHANGES ====================
+
+* Memcheck: some incremental changes:
+
+ - reduction of memory use in some circumstances
+
+ - improved handling of freed memory, which in some circumstances
+ can cause detection of use-after-free that would previously have
+ been missed
+
+ - fix of a longstanding bug that could cause false negatives (missed
+ errors) in programs doing vector saturated narrowing instructions.
+
+* Helgrind: performance improvements and major memory use reductions,
+ particularly for large, long running applications which perform many
+ synchronisation (lock, unlock, etc) events. Plus many smaller
+ changes:
+
+ - display of locksets for both threads involved in a race
+
+ - general improvements in formatting/clarity of error messages
+
+ - addition of facilities and documentation regarding annotation
+ of thread safe reference counted C++ classes
+
+ - new flag --check-stack-refs=no|yes [yes], to disable race checking
+ on thread stacks (a performance hack)
+
+ - new flag --free-is-write=no|yes [no], to enable detection of races
+ where one thread accesses heap memory but another one frees it,
+ without any coordinating synchronisation event
+
+* DRD: enabled XML output; added support for delayed thread deletion
+ in order to detect races that occur close to the end of a thread
+ (--join-list-vol); fixed a memory leak triggered by repeated client
+ memory allocatation and deallocation; improved Darwin support.
+
+* exp-ptrcheck: this tool has been renamed to exp-sgcheck
+
+* exp-sgcheck: this tool has been reduced in scope so as to improve
+ performance and remove checking that Memcheck does better.
+ Specifically, the ability to check for overruns for stack and global
+ arrays is unchanged, but the ability to check for overruns of heap
+ blocks has been removed. The tool has accordingly been renamed to
+ exp-sgcheck ("Stack and Global Array Checking").
+
+* ==================== OTHER CHANGES ====================
+
+* GDB server: Valgrind now has an embedded GDB server. That means it
+ is possible to control a Valgrind run from GDB, doing all the usual
+ things that GDB can do (single stepping, breakpoints, examining
+ data, etc). Tool-specific functionality is also available. For
+ example, it is possible to query the definedness state of variables
+ or memory from within GDB when running Memcheck; arbitrarily large
+ memory watchpoints are supported, etc. To use the GDB server, start
+ Valgrind with the flag --vgdb-error=0 and follow the on-screen
+ instructions.
+
+* Improved support for unfriendly self-modifying code: a new option
+ --smc-check=all-non-file is available. This adds the relevant
+ consistency checks only to code that originates in non-file-backed
+ mappings. In effect this confines the consistency checking only to
+ code that is or might be JIT generated, and avoids checks on code
+ that must have been compiled ahead of time. This significantly
+ improves performance on applications that generate code at run time.
+
+* It is now possible to build a working Valgrind using Clang-2.9 on
+ Linux.
+
+* new client requests VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.
+ These enable and disable error reporting on a per-thread, and
+ nestable, basis. This is useful for hiding errors in particularly
+ troublesome pieces of code. The MPI wrapper library (libmpiwrap.c)
+ now uses this facility.
+
+* Added the --mod-funcname option to cg_diff.
+
+* ==================== 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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
+
+ 79311 malloc silly arg warning does not give stack trace
+210935 port valgrind.h (not valgrind) to win32 to support client requests
+214223 valgrind SIGSEGV on startup gcc 4.4.1 ppc32 (G4) Ubuntu 9.10
+243404 Port to zSeries
+243935 Helgrind: incorrect handling of ANNOTATE_HAPPENS_BEFORE()/AFTER()
+247223 non-x86: Suppress warning: 'regparm' attribute directive ignored
+250101 huge "free" memory usage due to m_mallocfree.c fragmentation
+253206 Some fixes for the faultstatus testcase
+255223 capget testcase fails when running as root
+256703 xlc_dbl_u32.c testcase broken
+256726 Helgrind tests have broken inline asm
+259977 == 214223 (Valgrind segfaults doing __builtin_longjmp)
+264800 testcase compile failure on zseries
+265762 make public VEX headers compilable by G++ 3.x
+265771 assertion in jumps.c (r11523) fails with glibc-2.3
+266753 configure script does not give the user the option to not use QtCore
+266931 gen_insn_test.pl is broken
+266961 ld-linux.so.2 i?86-linux strlen issues
+266990 setns instruction causes false positive
+267020 Make directory for temporary files configurable at run-time.
+267342 == 267997 (segmentation fault on Mac OS 10.6)
+267383 Assertion 'vgPlain_strlen(dir) + vgPlain_strlen(file) + 1 < 256' failed
+267413 Assertion 'DRD_(g_threadinfo)[tid].synchr_nesting >= 1' failed.
+267488 regtest: darwin support for 64-bit build
+267552 SIGSEGV (misaligned_stack_error) with DRD, but not with other tools
+267630 Add support for IBM Power ISA 2.06 -- stage 1
+267769 == 267997 (Darwin: memcheck triggers segmentation fault)
+267819 Add client request for informing the core about reallocation
+267925 laog data structure quadratic for a single sequence of lock
+267968 drd: (vgDrd_thread_set_joinable): Assertion '0 <= (int)tid ..' failed
+267997 MacOSX: 64-bit V segfaults on launch when built with Xcode 4.0.1
+268513 missed optimizations in fold_Expr
+268619 s390x: fpr - gpr transfer facility
+268620 s390x: reconsider "long displacement" requirement
+268621 s390x: improve IR generation for XC
+268715 s390x: FLOGR is not universally available
+268792 == 267997 (valgrind seg faults on startup when compiled with Xcode 4)
+268930 s390x: MHY is not universally available
+269078 arm->IR: unhandled instruction SUB (SP minus immediate/register)
+269079 Support ptrace system call on ARM
+269144 missing "Bad option" error message
+269209 conditional load and store facility (z196)
+269354 Shift by zero on x86 can incorrectly clobber CC_NDEP
+269641 == 267997 (valgrind segfaults immediately (segmentation fault))
+269736 s390x: minor code generation tweaks
+269778 == 272986 (valgrind.h: swap roles of VALGRIND_DO_CLIENT_REQUEST() ..)
+269863 s390x: remove unused function parameters
+269864 s390x: tweak s390_emit_load_cc
+269884 == 250101 (overhead for huge blocks exhausts space too soon)
+270082 s390x: Make sure to point the PSW address to the next address on SIGILL
+270115 s390x: rewrite some testcases
+270309 == 267997 (valgrind crash on startup)
+270320 add support for Linux FIOQSIZE ioctl() call
+270326 segfault while trying to sanitize the environment passed to execle
+270794 IBM POWER7 support patch causes regression in none/tests
+270851 IBM POWER7 fcfidus instruction causes memcheck to fail
+270856 IBM POWER7 xsnmaddadp instruction causes memcheck to fail on 32bit app
+270925 hyper-optimized strspn() in /lib64/libc-2.13.so needs fix
+270959 s390x: invalid use of R0 as base register
+271042 VSX configure check fails when it should not
+271043 Valgrind build fails with assembler error on ppc64 with binutils 2.21
+271259 s390x: fix code confusion
+271337 == 267997 (Valgrind segfaults on MacOS X)
+271385 s390x: Implement Ist_MBE
+271501 s390x: misc cleanups
+271504 s390x: promote likely and unlikely
+271579 ppc: using wrong enum type
+271615 unhandled instruction "popcnt" (arch=amd10h)
+271730 Fix bug when checking ioctls: duplicate check
+271776 s390x: provide STFLE instruction support
+271779 s390x: provide clock instructions like STCK
+271799 Darwin: ioctls without an arg report a memory error
+271820 arm: fix type confusion
+271917 pthread_cond_timedwait failure leads to not-locked false positive
+272067 s390x: fix DISP20 macro
+272615 A typo in debug output in mc_leakcheck.c
+272661 callgrind_annotate chokes when run from paths containing regex chars
+272893 amd64->IR: 0x66 0xF 0x38 0x2B 0xC1 0x66 0xF 0x7F == (closed as dup)
+272955 Unhandled syscall error for pwrite64 on ppc64 arch
+272967 make documentation build-system more robust
+272986 Fix gcc-4.6 warnings with valgrind.h
+273318 amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38 (missing PCMPxSTRx case)
+273318 unhandled PCMPxSTRx case: vex amd64->IR: 0x66 0xF 0x3A 0x61 0xC1 0x38
+273431 valgrind segfaults in evalCfiExpr (debuginfo.c:2039)
+273465 Callgrind: jumps.c:164 (new_jcc): Assertion '(0 <= jmp) && ...'
+273536 Build error: multiple definition of `vgDrd_pthread_cond_initializer'
+273640 ppc64-linux: unhandled syscalls setresuid(164) and setresgid(169)
+273729 == 283000 (Illegal opcode for SSE2 "roundsd" instruction)
+273778 exp-ptrcheck: unhandled sysno == 259
+274089 exp-ptrcheck: unhandled sysno == 208
+274378 s390x: Various dispatcher tweaks
+274447 WARNING: unhandled syscall: 340
+274776 amd64->IR: 0x66 0xF 0x38 0x2B 0xC5 0x66
+274784 == 267997 (valgrind ls -l results in Segmentation Fault)
+274926 valgrind does not build against linux-3
+275148 configure FAIL with glibc-2.14
+275151 Fedora 15 / glibc-2.14 'make regtest' FAIL
+275168 Make Valgrind work for MacOSX 10.7 Lion
+275212 == 275284 (lots of false positives from __memcpy_ssse3_back et al)
+275278 valgrind does not build on Linux kernel 3.0.* due to silly
+275284 Valgrind memcpy/memmove redirection stopped working in glibc 2.14/x86_64
+275308 Fix implementation for ppc64 fres instruc
+275339 s390x: fix testcase compile warnings
+275517 s390x: Provide support for CKSM instruction
+275710 s390x: get rid of redundant address mode calculation
+275815 == 247894 (Valgrind doesn't know about Linux readahead(2) syscall)
+275852 == 250101 (valgrind uses all swap space and is killed)
+276784 Add support for IBM Power ISA 2.06 -- stage 3
+276987 gdbsrv: fix tests following recent commits
+277045 Valgrind crashes with unhandled DW_OP_ opcode 0x2a
+277199 The test_isa_2_06_part1.c in none/tests/ppc64 should be a symlink
+277471 Unhandled syscall: 340
+277610 valgrind crashes in VG_(lseek)(core_fd, phdrs[idx].p_offset, ...)
+277653 ARM: support Thumb2 PLD instruction
+277663 ARM: NEON float VMUL by scalar incorrect
+277689 ARM: tests for VSTn with register post-index are broken
+277694 ARM: BLX LR instruction broken in ARM mode
+277780 ARM: VMOV.F32 (immediate) instruction is broken
+278057 fuse filesystem syscall deadlocks
+278078 Unimplemented syscall 280 on ppc32
+278349 F_GETPIPE_SZ and F_SETPIPE_SZ Linux fcntl commands
+278454 VALGRIND_STACK_DEREGISTER has wrong output type
+278502 == 275284 (Valgrind confuses memcpy() and memmove())
+278892 gdbsrv: factorize gdb version handling, fix doc and typos
+279027 Support for MVCL and CLCL instruction
+279027 s390x: Provide support for CLCL and MVCL instructions
+279062 Remove a redundant check in the insn selector for ppc.
+279071 JDK creates PTEST with redundant REX.W prefix
+279212 gdbsrv: add monitor cmd v.info scheduler.
+279378 exp-ptrcheck: the 'impossible' happened on mkfifo call
+279698 memcheck discards valid-bits for packuswb
+279795 memcheck reports uninitialised values for mincore on amd64
+279994 Add support for IBM Power ISA 2.06 -- stage 3
+280083 mempolicy syscall check errors
+280290 vex amd64->IR: 0x66 0xF 0x38 0x28 0xC1 0x66 0xF 0x6F
+280710 s390x: config files for nightly builds
+280757 /tmp dir still used by valgrind even if TMPDIR is specified
+280965 Valgrind breaks fcntl locks when program does mmap
+281138 WARNING: unhandled syscall: 340
+281241 == 275168 (valgrind useless on Macos 10.7.1 Lion)
+281304 == 275168 (Darwin: dyld "cannot load inserted library")
+281305 == 275168 (unhandled syscall: unix:357 on Darwin 11.1)
+281468 s390x: handle do_clone and gcc clones in call traces
+281488 ARM: VFP register corruption
+281828 == 275284 (false memmove warning: "Source and destination overlap")
+281883 s390x: Fix system call wrapper for "clone".
+282105 generalise 'reclaimSuperBlock' to also reclaim splittable superblock
+282112 Unhandled instruction bytes: 0xDE 0xD9 0x9B 0xDF (fcompp)
+282238 SLES10: make check fails
+282979 strcasestr needs replacement with recent(>=2.12) glibc
+283000 vex amd64->IR: 0x66 0xF 0x3A 0xA 0xC0 0x9 0xF3 0xF
+283243 Regression in ppc64 memcheck tests
+283325 == 267997 (Darwin: V segfaults on startup when built with Xcode 4.0)
+283427 re-connect epoll_pwait syscall on ARM linux
+283600 gdbsrv: android: port vgdb.c
+283709 none/tests/faultstatus needs to account for page size
+284305 filter_gdb needs enhancement to work on ppc64
+284384 clang 3.1 -Wunused-value warnings in valgrind.h, memcheck.h
+284472 Thumb2 ROR.W encoding T2 not implemented
+284621 XML-escape process command line in XML output
+n-i-bz cachegrind/callgrind: handle CPUID information for Core iX Intel CPUs
+ that have non-power-of-2 sizes (also AMDs)
+n-i-bz don't be spooked by libraries mashed by elfhack
+n-i-bz don't be spooked by libxul.so linked with gold
+n-i-bz improved checking for VALGRIND_CHECK_MEM_IS_DEFINED
+
+(3.7.0-TEST1: 27 October 2011, vex r2228, valgrind r12245)
+(3.7.0.RC1: 1 November 2011, vex r2231, valgrind r12257)
+(3.7.0: 5 November 2011, vex r2231, valgrind r12258)
+
+
+
+Release 3.6.1 (16 February 2011)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.6.1 is a bug fix release. It adds support for some SSE4
+instructions that were omitted in 3.6.0 due to lack of time. Initial
+support for glibc-2.13 has been added. A number of bugs causing
+crashing or assertion failures have been fixed.
+
+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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
+
+188572 Valgrind on Mac should suppress setenv() mem leak
+194402 vex amd64->IR: 0x48 0xF 0xAE 0x4 (proper FX{SAVE,RSTOR} support)
+210481 vex amd64->IR: Assertion `sz == 2 || sz == 4' failed (REX.W POPQ)
+246152 callgrind internal error after pthread_cancel on 32 Bit Linux
+250038 ppc64: Altivec LVSR and LVSL instructions fail their regtest
+254420 memory pool tracking broken
+254957 Test code failing to compile due to changes in memcheck.h
+255009 helgrind/drd: crash on chmod with invalid parameter
+255130 readdwarf3.c parse_type_DIE confused by GNAT Ada types
+255355 helgrind/drd: crash on threaded programs doing fork
+255358 == 255355
+255418 (SSE4.x) rint call compiled with ICC
+255822 --gen-suppressions can create invalid files: "too many callers [...]"
+255888 closing valgrindoutput tag outputted to log-stream on error
+255963 (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x9 0xDB 0x0 (ROUNDPD)
+255966 Slowness when using mempool annotations
+256387 vex x86->IR: 0xD4 0xA 0x2 0x7 (AAD and AAM)
+256600 super-optimized strcasecmp() false positive
+256669 vex amd64->IR: Unhandled LOOPNEL insn on amd64
+256968 (SSE4.x) vex amd64->IR: 0x66 0xF 0x38 0x10 0xD3 0x66 (BLENDVPx)
+257011 (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0xE 0xFD 0xA0 (PBLENDW)
+257063 (SSE4.x) vex amd64->IR: 0x66 0xF 0x3A 0x8 0xC0 0x0 (ROUNDPS)
+257276 Missing case in memcheck --track-origins=yes
+258870 (SSE4.x) Add support for EXTRACTPS SSE 4.1 instruction
+261966 (SSE4.x) support for CRC32B and CRC32Q is lacking (also CRC32{W,L})
+262985 VEX regression in valgrind 3.6.0 in handling PowerPC VMX
+262995 (SSE4.x) crash when trying to valgrind gcc-snapshot (PCMPxSTRx $0)
+263099 callgrind_annotate counts Ir improperly [...]
+263877 undefined coprocessor instruction on ARMv7
+265964 configure FAIL with glibc-2.13
+n-i-bz Fix compile error w/ icc-12.x in guest_arm_toIR.c
+n-i-bz Docs: fix bogus descriptions for VALGRIND_CREATE_BLOCK et al
+n-i-bz Massif: don't assert on shmat() with --pages-as-heap=yes
+n-i-bz Bug fixes and major speedups for the exp-DHAT space profiler
+n-i-bz DRD: disable --free-is-write due to implementation difficulties
+
+(3.6.1: 16 February 2011, vex r2103, valgrind r11561).
--- /dev/null
+Release 3.6.0 (21 October 2010)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.6.0 is a feature release with many significant improvements and the
+usual collection of bug fixes.
+
+This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux,
+PPC64/Linux, X86/Darwin and AMD64/Darwin. Support for recent distros
+and toolchain components (glibc 2.12, gcc 4.5, OSX 10.6) has been added.
+
+ -------------------------
+
+Here are some highlights. Details are shown further down:
+
+* Support for ARM/Linux.
+
+* Support for recent Linux distros: Ubuntu 10.10 and Fedora 14.
+
+* Support for Mac OS X 10.6, both 32- and 64-bit executables.
+
+* Support for the SSE4.2 instruction set.
+
+* Enhancements to the Callgrind profiler, including the ability to
+ handle CPUs with three levels of cache.
+
+* A new experimental heap profiler, DHAT.
+
+* A huge number of bug fixes and small enhancements.
+
+ -------------------------
+
+Here are details of the above changes, together with descriptions of
+many other changes, and a list of fixed bugs.
+
+* ================== PLATFORM CHANGES =================
+
+* Support for ARM/Linux. Valgrind now runs on ARMv7 capable CPUs
+ running Linux. It is known to work on Ubuntu 10.04, Ubuntu 10.10,
+ and Maemo 5, so you can run Valgrind on your Nokia N900 if you want.
+
+ This requires a CPU capable of running the ARMv7-A instruction set
+ (Cortex A5, A8 and A9). Valgrind provides fairly complete coverage
+ of the user space instruction set, including ARM and Thumb integer
+ code, VFPv3, NEON and V6 media instructions. The Memcheck,
+ Cachegrind and Massif tools work properly; other tools work to
+ varying degrees.
+
+* Support for recent Linux distros (Ubuntu 10.10 and Fedora 14), along
+ with support for recent releases of the underlying toolchain
+ components, notably gcc-4.5 and glibc-2.12.
+
+* Support for Mac OS X 10.6, both 32- and 64-bit executables. 64-bit
+ support also works much better on OS X 10.5, and is as solid as
+ 32-bit support now.
+
+* Support for the SSE4.2 instruction set. SSE4.2 is supported in
+ 64-bit mode. In 32-bit mode, support is only available up to and
+ including SSSE3. Some exceptions: SSE4.2 AES instructions are not
+ supported in 64-bit mode, and 32-bit mode does in fact support the
+ bare minimum SSE4 instructions to needed to run programs on Mac OS X
+ 10.6 on 32-bit targets.
+
+* Support for IBM POWER6 cpus has been improved. The Power ISA up to
+ and including version 2.05 is supported.
+
+* ==================== TOOL CHANGES ====================
+
+* Cachegrind has a new processing script, cg_diff, which finds the
+ difference between two profiles. It's very useful for evaluating
+ the performance effects of a change in a program.
+
+ Related to this change, the meaning of cg_annotate's (rarely-used)
+ --threshold option has changed; this is unlikely to affect many
+ people, if you do use it please see the user manual for details.
+
+* Callgrind now can do branch prediction simulation, similar to
+ Cachegrind. In addition, it optionally can count the number of
+ executed global bus events. Both can be used for a better
+ approximation of a "Cycle Estimation" as derived event (you need to
+ update the event formula in KCachegrind yourself).
+
+* Cachegrind and Callgrind now refer to the LL (last-level) cache
+ rather than the L2 cache. This is to accommodate machines with
+ three levels of caches -- if Cachegrind/Callgrind auto-detects the
+ cache configuration of such a machine it will run the simulation as
+ if the L2 cache isn't present. This means the results are less
+ likely to match the true result for the machine, but
+ Cachegrind/Callgrind's results are already only approximate, and
+ should not be considered authoritative. The results are still
+ useful for giving a general idea about a program's locality.
+
+* Massif has a new option, --pages-as-heap, which is disabled by
+ default. When enabled, instead of tracking allocations at the level
+ of heap blocks (as allocated with malloc/new/new[]), it instead
+ tracks memory allocations at the level of memory pages (as mapped by
+ mmap, brk, etc). Each mapped page is treated as its own block.
+ Interpreting the page-level output is harder than the heap-level
+ output, but this option is useful if you want to account for every
+ byte of memory used by a program.
+
+* DRD has two new command-line options: --free-is-write and
+ --trace-alloc. The former allows to detect reading from already freed
+ memory, and the latter allows tracing of all memory allocations and
+ deallocations.
+
+* DRD has several new annotations. Custom barrier implementations can
+ now be annotated, as well as benign races on static variables.
+
+* DRD's happens before / happens after annotations have been made more
+ powerful, so that they can now also be used to annotate e.g. a smart
+ pointer implementation.
+
+* Helgrind's annotation set has also been drastically improved, so as
+ to provide to users a general set of annotations to describe locks,
+ semaphores, barriers and condition variables. Annotations to
+ describe thread-safe reference counted heap objects have also been
+ added.
+
+* Memcheck has a new command-line option, --show-possibly-lost, which
+ is enabled by default. When disabled, the leak detector will not
+ show possibly-lost blocks.
+
+* A new experimental heap profiler, DHAT (Dynamic Heap Analysis Tool),
+ has been added. DHAT keeps track of allocated heap blocks, and also
+ inspects every memory reference to see which block (if any) is being
+ accessed. This gives a lot of insight into block lifetimes,
+ utilisation, turnover, liveness, and the location of hot and cold
+ fields. You can use DHAT to do hot-field profiling.
+
+* ==================== OTHER CHANGES ====================
+
+* Improved support for unfriendly self-modifying code: the extra
+ overhead incurred by --smc-check=all has been reduced by
+ approximately a factor of 5 as compared with 3.5.0.
+
+* Ability to show directory names for source files in error messages.
+ This is combined with a flexible mechanism for specifying which
+ parts of the paths should be shown. This is enabled by the new flag
+ --fullpath-after.
+
+* A new flag, --require-text-symbol, which will stop the run if a
+ specified symbol is not found it a given shared object when it is
+ loaded into the process. This makes advanced working with function
+ intercepting and wrapping safer and more reliable.
+
+* Improved support for the Valkyrie GUI, version 2.0.0. GUI output
+ and control of Valgrind is now available for the tools Memcheck and
+ Helgrind. XML output from Valgrind is available for Memcheck,
+ Helgrind and exp-Ptrcheck.
+
+* More reliable stack unwinding on amd64-linux, particularly in the
+ presence of function wrappers, and with gcc-4.5 compiled code.
+
+* Modest scalability (performance improvements) for massive
+ long-running applications, particularly for those with huge amounts
+ of code.
+
+* Support for analyzing programs running under Wine with has been
+ improved. The header files <valgrind/valgrind.h>,
+ <valgrind/memcheck.h> and <valgrind/drd.h> can now be used in
+ Windows-programs compiled with MinGW or one of the Microsoft Visual
+ Studio compilers.
+
+* A rare but serious error in the 64-bit x86 CPU simulation was fixed.
+ The 32-bit simulator was not affected. This did not occur often,
+ but when it did would usually crash the program under test.
+ Bug 245925.
+
+* A large number of bugs were fixed. These are shown below.
+
+* A number of bugs were investigated, and were candidates for fixing,
+ but are not fixed in 3.6.0, due to lack of developer time. They may
+ get fixed in later releases. They are:
+
+ 194402 vex amd64->IR: 0x48 0xF 0xAE 0x4 0x24 0x49 (FXSAVE64)
+ 212419 false positive "lock order violated" (A+B vs A)
+ 213685 Undefined value propagates past dependency breaking instruction
+ 216837 Incorrect instrumentation of NSOperationQueue on Darwin
+ 237920 valgrind segfault on fork failure
+ 242137 support for code compiled by LLVM-2.8
+ 242423 Another unknown Intel cache config value
+ 243232 Inconsistent Lock Orderings report with trylock
+ 243483 ppc: callgrind triggers VEX assertion failure
+ 243935 Helgrind: implementation of ANNOTATE_HAPPENS_BEFORE() is wrong
+ 244677 Helgrind crash hg_main.c:616 (map_threads_lookup): Assertion
+ 'thr' failed.
+ 246152 callgrind internal error after pthread_cancel on 32 Bit Linux
+ 249435 Analyzing wine programs with callgrind triggers a crash
+ 250038 ppc64: Altivec lvsr and lvsl instructions fail their regtest
+ 250065 Handling large allocations
+ 250101 huge "free" memory usage due to m_mallocfree.c
+ "superblocks fragmentation"
+ 251569 vex amd64->IR: 0xF 0x1 0xF9 0x8B 0x4C 0x24 (RDTSCP)
+ 252091 Callgrind on ARM does not detect function returns correctly
+ 252600 [PATCH] Allow lhs to be a pointer for shl/shr
+ 254420 memory pool tracking broken
+ n-i-bz support for adding symbols for JIT generated code
+
+
+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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
+
+135264 dcbzl instruction missing
+142688 == 250799
+153699 Valgrind should report unaligned reads with movdqa
+180217 == 212335
+190429 Valgrind reports lost of errors in ld.so
+ with x86_64 2.9.90 glibc
+197266 valgrind appears to choke on the xmms instruction
+ "roundsd" on x86_64
+197988 Crash when demangling very large symbol names
+202315 unhandled syscall: 332 (inotify_init1)
+203256 Add page-level profiling to Massif
+205093 dsymutil=yes needs quotes, locking (partial fix)
+205241 Snow Leopard 10.6 support (partial fix)
+206600 Leak checker fails to upgrade indirect blocks when their
+ parent becomes reachable
+210935 port valgrind.h (not valgrind) to win32 so apps run under
+ wine can make client requests
+211410 vex amd64->IR: 0x15 0xFF 0xFF 0x0 0x0 0x89
+ within Linux ip-stack checksum functions
+212335 unhandled instruction bytes: 0xF3 0xF 0xBD 0xC0
+ (lzcnt %eax,%eax)
+213685 Undefined value propagates past dependency breaking instruction
+ (partial fix)
+215914 Valgrind inserts bogus empty environment variable
+217863 == 197988
+219538 adjtimex syscall wrapper wrong in readonly adjtime mode
+222545 shmat fails under valgind on some arm targets
+222560 ARM NEON support
+230407 == 202315
+231076 == 202315
+232509 Docs build fails with formatting inside <title></title> elements
+232793 == 202315
+235642 [PATCH] syswrap-linux.c: support evdev EVIOCG* ioctls
+236546 vex x86->IR: 0x66 0xF 0x3A 0xA
+237202 vex amd64->IR: 0xF3 0xF 0xB8 0xC0 0x49 0x3B
+237371 better support for VALGRIND_MALLOCLIKE_BLOCK
+237485 symlink (syscall 57) is not supported on Mac OS
+237723 sysno == 101 exp-ptrcheck: the 'impossible' happened:
+ unhandled syscall
+238208 is_just_below_ESP doesn't take into account red-zone
+238345 valgrind passes wrong $0 when executing a shell script
+238679 mq_timedreceive syscall doesn't flag the reception buffer
+ as "defined"
+238696 fcntl command F_DUPFD_CLOEXEC not supported
+238713 unhandled instruction bytes: 0x66 0xF 0x29 0xC6
+238713 unhandled instruction bytes: 0x66 0xF 0x29 0xC6
+238745 3.5.0 Make fails on PPC Altivec opcodes, though configure
+ says "Altivec off"
+239992 vex amd64->IR: 0x48 0xF 0xC4 0xC1 0x0 0x48
+240488 == 197988
+240639 == 212335
+241377 == 236546
+241903 == 202315
+241920 == 212335
+242606 unhandled syscall: setegid (in Ptrcheck)
+242814 Helgrind "Impossible has happened" during
+ QApplication::initInstance();
+243064 Valgrind attempting to read debug information from iso
+243270 Make stack unwinding in Valgrind wrappers more reliable
+243884 exp-ptrcheck: the 'impossible happened: unhandled syscall
+ sysno = 277 (mq_open)
+244009 exp-ptrcheck unknown syscalls in analyzing lighttpd
+244493 ARM VFP d16-d31 registers support
+244670 add support for audit_session_self syscall on Mac OS 10.6
+244921 The xml report of helgrind tool is not well format
+244923 In the xml report file, the <preamble> not escape the
+ xml char, eg '<','&','>'
+245535 print full path names in plain text reports
+245925 x86-64 red zone handling problem
+246258 Valgrind not catching integer underruns + new [] s
+246311 reg/reg cmpxchg doesn't work on amd64
+246549 unhandled syscall unix:277 while testing 32-bit Darwin app
+246888 Improve Makefile.vex.am
+247510 [OS X 10.6] Memcheck reports unaddressable bytes passed
+ to [f]chmod_extended
+247526 IBM POWER6 (ISA 2.05) support is incomplete
+247561 Some leak testcases fails due to reachable addresses in
+ caller save regs
+247875 sizeofIRType to handle Ity_I128
+247894 [PATCH] unhandled syscall sys_readahead
+247980 Doesn't honor CFLAGS passed to configure
+248373 darwin10.supp is empty in the trunk
+248822 Linux FIBMAP ioctl has int parameter instead of long
+248893 [PATCH] make readdwarf.c big endianess safe to enable
+ unwinding on big endian systems
+249224 Syscall 336 not supported (SYS_proc_info)
+249359 == 245535
+249775 Incorrect scheme for detecting NEON capabilities of host CPU
+249943 jni JVM init fails when using valgrind
+249991 Valgrind incorrectly declares AESKEYGENASSIST support
+ since VEX r2011
+249996 linux/arm: unhandled syscall: 181 (__NR_pwrite64)
+250799 frexp$fenv_access_off function generates SIGILL
+250998 vex x86->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x2E
+251251 support pclmulqdq insn
+251362 valgrind: ARM: attach to debugger either fails or provokes
+ kernel oops
+251674 Unhandled syscall 294
+251818 == 254550
+
+254257 Add support for debugfiles found by build-id
+254550 [PATCH] Implement DW_ATE_UTF (DWARF4)
+254646 Wrapped functions cause stack misalignment on OS X
+ (and possibly Linux)
+254556 ARM: valgrinding anything fails with SIGSEGV for 0xFFFF0FA0
+
+(3.6.0: 21 October 2010, vex r2068, valgrind r11471).
+
+
+
+Release 3.5.0 (19 August 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.5.0 is a feature release with many significant improvements and the
+usual collection of bug fixes. The main improvement is that Valgrind
+now works on Mac OS X.
+
+This release supports X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux
+and X86/Darwin. Support for recent distros and toolchain components
+(glibc 2.10, gcc 4.5) has been added.
+
+ -------------------------
+
+Here is a short summary of the changes. Details are shown further
+down:
+
+* Support for Mac OS X (10.5.x).
+
+* Improvements and simplifications to Memcheck's leak checker.
+
+* Clarification and simplifications in various aspects of Valgrind's
+ text output.
+
+* XML output for Helgrind and Ptrcheck.
+
+* Performance and stability improvements for Helgrind and DRD.
+
+* Genuinely atomic support for x86/amd64/ppc atomic instructions.
+
+* A new experimental tool, BBV, useful for computer architecture
+ research.
+
+* Improved Wine support, including ability to read Windows PDB
+ debuginfo.
+
+ -------------------------
+
+Here are details of the above changes, followed by descriptions of
+many other minor changes, and a list of fixed bugs.
+
+
+* Valgrind now runs on Mac OS X. (Note that Mac OS X is sometimes
+ called "Darwin" because that is the name of the OS core, which is the
+ level that Valgrind works at.)
+
+ Supported systems:
+
+ - It requires OS 10.5.x (Leopard). Porting to 10.4.x is not planned
+ because it would require work and 10.4 is only becoming less common.
+
+ - 32-bit programs on x86 and AMD64 (a.k.a x86-64) machines are supported
+ fairly well. For 10.5.x, 32-bit programs are the default even on
+ 64-bit machines, so it handles most current programs.
+
+ - 64-bit programs on x86 and AMD64 (a.k.a x86-64) machines are not
+ officially supported, but simple programs at least will probably work.
+ However, start-up is slow.
+
+ - PowerPC machines are not supported.
+
+ Things that don't work:
+
+ - The Ptrcheck tool.
+
+ - Objective-C garbage collection.
+
+ - --db-attach=yes.
+
+ - If you have Rogue Amoeba's "Instant Hijack" program installed,
+ Valgrind will fail with a SIGTRAP at start-up. See
+ https://bugs.kde.org/show_bug.cgi?id=193917 for details and a
+ simple work-around.
+
+ Usage notes:
+
+ - You will likely find --dsymutil=yes a useful option, as error
+ messages may be imprecise without it.
+
+ - Mac OS X support is new and therefore will be less robust than the
+ Linux support. Please report any bugs you find.
+
+ - Threaded programs may run more slowly than on Linux.
+
+ Many thanks to Greg Parker for developing this port over several years.
+
+
+* Memcheck's leak checker has been improved.
+
+ - The results for --leak-check=summary now match the summary results
+ for --leak-check=full. Previously they could differ because
+ --leak-check=summary counted "indirectly lost" blocks and
+ "suppressed" blocks as "definitely lost".
+
+ - Blocks that are only reachable via at least one interior-pointer,
+ but are directly pointed to by a start-pointer, were previously
+ marked as "still reachable". They are now correctly marked as
+ "possibly lost".
+
+ - The default value for the --leak-resolution option has been
+ changed from "low" to "high". In general, this means that more
+ leak reports will be produced, but each leak report will describe
+ fewer leaked blocks.
+
+ - With --leak-check=full, "definitely lost" and "possibly lost"
+ leaks are now considered as proper errors, ie. they are counted
+ for the "ERROR SUMMARY" and affect the behaviour of
+ --error-exitcode. These leaks are not counted as errors if
+ --leak-check=summary is specified, however.
+
+ - Documentation for the leak checker has been improved.
+
+
+* Various aspects of Valgrind's text output have changed.
+
+ - Valgrind's start-up message has changed. It is shorter but also
+ includes the command being run, which makes it easier to use
+ --trace-children=yes. An example:
+
+ - Valgrind's shut-down messages have also changed. This is most
+ noticeable with Memcheck, where the leak summary now occurs before
+ the error summary. This change was necessary to allow leaks to be
+ counted as proper errors (see the description of the leak checker
+ changes above for more details). This was also necessary to fix a
+ longstanding bug in which uses of suppressions against leaks were
+ not "counted", leading to difficulties in maintaining suppression
+ files (see https://bugs.kde.org/show_bug.cgi?id=186790).
+
+ - Behavior of -v has changed. In previous versions, -v printed out
+ a mixture of marginally-user-useful information, and tool/core
+ statistics. The statistics printing has now been moved to its own
+ flag, --stats=yes. This means -v is less verbose and more likely
+ to convey useful end-user information.
+
+ - The format of some (non-XML) stack trace entries has changed a
+ little. Previously there were six possible forms:
+
+ 0x80483BF: really (a.c:20)
+ 0x80483BF: really (in /foo/a.out)
+ 0x80483BF: really
+ 0x80483BF: (within /foo/a.out)
+ 0x80483BF: ??? (a.c:20)
+ 0x80483BF: ???
+
+ The third and fourth of these forms have been made more consistent
+ with the others. The six possible forms are now:
+
+ 0x80483BF: really (a.c:20)
+ 0x80483BF: really (in /foo/a.out)
+ 0x80483BF: really (in ???)
+ 0x80483BF: ??? (in /foo/a.out)
+ 0x80483BF: ??? (a.c:20)
+ 0x80483BF: ???
+
+ Stack traces produced when --xml=yes is specified are different
+ and unchanged.
+
+
+* Helgrind and Ptrcheck now support XML output, so they can be used
+ from GUI tools. Also, the XML output mechanism has been
+ overhauled.
+
+ - The XML format has been overhauled and generalised, so it is more
+ suitable for error reporting tools in general. The Memcheck
+ specific aspects of it have been removed. The new format, which
+ is an evolution of the old format, is described in
+ docs/internals/xml-output-protocol4.txt.
+
+ - Memcheck has been updated to use the new format.
+
+ - Helgrind and Ptrcheck are now able to emit output in this format.
+
+ - The XML output mechanism has been overhauled. XML is now output
+ to its own file descriptor, which means that:
+
+ * Valgrind can output text and XML independently.
+
+ * The longstanding problem of XML output being corrupted by
+ unexpected un-tagged text messages is solved.
+
+ As before, the destination for text output is specified using
+ --log-file=, --log-fd= or --log-socket=.
+
+ As before, XML output for a tool is enabled using --xml=yes.
+
+ Because there's a new XML output channel, the XML output
+ destination is now specified by --xml-file=, --xml-fd= or
+ --xml-socket=.
+
+ Initial feedback has shown this causes some confusion. To
+ clarify, the two envisaged usage scenarios are:
+
+ (1) Normal text output. In this case, do not specify --xml=yes
+ nor any of --xml-file=, --xml-fd= or --xml-socket=.
+
+ (2) XML output. In this case, specify --xml=yes, and one of
+ --xml-file=, --xml-fd= or --xml-socket= to select the XML
+ destination, one of --log-file=, --log-fd= or --log-socket=
+ to select the destination for any remaining text messages,
+ and, importantly, -q.
+
+ -q makes Valgrind completely silent on the text channel,
+ except in the case of critical failures, such as Valgrind
+ itself segfaulting, or failing to read debugging information.
+ Hence, in this scenario, it suffices to check whether or not
+ any output appeared on the text channel. If yes, then it is
+ likely to be a critical error which should be brought to the
+ attention of the user. If no (the text channel produced no
+ output) then it can be assumed that the run was successful.
+
+ This allows GUIs to make the critical distinction they need to
+ make (did the run fail or not?) without having to search or
+ filter the text output channel in any way.
+
+ It is also recommended to use --child-silent-after-fork=yes in
+ scenario (2).
+
+
+* Improvements and changes in Helgrind:
+
+ - XML output, as described above
+
+ - Checks for consistent association between pthread condition
+ variables and their associated mutexes are now performed.
+
+ - pthread_spinlock functions are supported.
+
+ - Modest performance improvements.
+
+ - Initial (skeletal) support for describing the behaviour of
+ non-POSIX synchronisation objects through ThreadSanitizer
+ compatible ANNOTATE_* macros.
+
+ - More controllable tradeoffs between performance and the level of
+ detail of "previous" accesses in a race. There are now three
+ settings:
+
+ * --history-level=full. This is the default, and was also the
+ default in 3.4.x. It shows both stacks involved in a race, but
+ requires a lot of memory and can be very slow in programs that
+ do many inter-thread synchronisation events.
+
+ * --history-level=none. This only shows the later stack involved
+ in a race. This can be much faster than --history-level=full,
+ but makes it much more difficult to find the other access
+ involved in the race.
+
+ The new intermediate setting is
+
+ * --history-level=approx
+
+ For the earlier (other) access, two stacks are presented. The
+ earlier access is guaranteed to be somewhere in between the two
+ program points denoted by those stacks. This is not as useful
+ as showing the exact stack for the previous access (as per
+ --history-level=full), but it is better than nothing, and it's
+ almost as fast as --history-level=none.
+
+
+* New features and improvements in DRD:
+
+ - The error messages printed by DRD are now easier to interpret.
+ Instead of using two different numbers to identify each thread
+ (Valgrind thread ID and DRD thread ID), DRD does now identify
+ threads via a single number (the DRD thread ID). Furthermore
+ "first observed at" information is now printed for all error
+ messages related to synchronization objects.
+
+ - Added support for named semaphores (sem_open() and sem_close()).
+
+ - Race conditions between pthread_barrier_wait() and
+ pthread_barrier_destroy() calls are now reported.
+
+ - Added support for custom allocators through the macros
+ VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
+ in <valgrind/valgrind.h>). An alternative for these two macros is
+ the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
+ <valgrind/drd.h>).
+
+ - Added support for annotating non-POSIX synchronization objects
+ through several new ANNOTATE_*() macros.
+
+ - OpenMP: added support for the OpenMP runtime (libgomp) included
+ with gcc versions 4.3.0 and 4.4.0.
+
+ - Faster operation.
+
+ - Added two new command-line options (--first-race-only and
+ --segment-merging-interval).
+
+
+* Genuinely atomic support for x86/amd64/ppc atomic instructions
+
+ Valgrind will now preserve (memory-access) atomicity of LOCK-
+ prefixed x86/amd64 instructions, and any others implying a global
+ bus lock. Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.
+
+ This means that Valgrinded processes will "play nicely" in
+ situations where communication with other processes, or the kernel,
+ is done through shared memory and coordinated with such atomic
+ instructions. Prior to this change, such arrangements usually
+ resulted in hangs, races or other synchronisation failures, because
+ Valgrind did not honour atomicity of such instructions.
+
+
+* A new experimental tool, BBV, has been added. BBV generates basic
+ block vectors for use with the SimPoint analysis tool, which allows
+ a program's overall behaviour to be approximated by running only a
+ fraction of it. This is useful for computer architecture
+ researchers. You can run BBV by specifying --tool=exp-bbv (the
+ "exp-" prefix is short for "experimental"). BBV was written by
+ Vince Weaver.
+
+
+* Modestly improved support for running Windows applications under
+ Wine. In particular, initial support for reading Windows .PDB debug
+ information has been added.
+
+
+* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been
+ added. It is similar to VALGRIND_COUNT_LEAKS but counts blocks
+ instead of bytes.
+
+
+* The Valgrind client requests VALGRIND_PRINTF and
+ VALGRIND_PRINTF_BACKTRACE have been changed slightly. Previously,
+ the string was always printed immediately on its own line. Now, the
+ string will be added to a buffer but not printed until a newline is
+ encountered, or other Valgrind output is printed (note that for
+ VALGRIND_PRINTF_BACKTRACE, the back-trace itself is considered
+ "other Valgrind output"). This allows you to use multiple
+ VALGRIND_PRINTF calls to build up a single output line, and also to
+ print multiple output lines with a single request (by embedding
+ multiple newlines in the string).
+
+
+* The graphs drawn by Massif's ms_print program have changed slightly:
+
+ - The half-height chars '.' and ',' are no longer drawn, because
+ they are confusing. The --y option can be used if the default
+ y-resolution is not high enough.
+
+ - Horizontal lines are now drawn after the top of a snapshot if
+ there is a gap until the next snapshot. This makes it clear that
+ the memory usage has not dropped to zero between snapshots.
+
+
+* Something that happened in 3.4.0, but wasn't clearly announced: the
+ option --read-var-info=yes can be used by some tools (Memcheck,
+ Helgrind and DRD). When enabled, it causes Valgrind to read DWARF3
+ variable type and location information. This makes those tools
+ start up more slowly and increases memory consumption, but
+ descriptions of data addresses in error messages become more
+ detailed.
+
+
+* exp-Omega, an experimental instantaneous leak-detecting tool, was
+ disabled in 3.4.0 due to a lack of interest and maintenance,
+ although the source code was still in the distribution. The source
+ code has now been removed from the distribution. For anyone
+ interested, the removal occurred in SVN revision r10247.
+
+
+* Some changes have been made to the build system.
+
+ - VEX/ is now integrated properly into the build system. This means
+ that dependency tracking within VEX/ now works properly, "make
+ install" will work without requiring "make" before it, and
+ parallel builds (ie. 'make -j') now work (previously a
+ .NOTPARALLEL directive was used to serialize builds, ie. 'make -j'
+ was effectively ignored).
+
+ - The --with-vex configure option has been removed. It was of
+ little use and removing it simplified the build system.
+
+ - The location of some install files has changed. This should not
+ affect most users. Those who might be affected:
+
+ * For people who use Valgrind with MPI programs, the installed
+ libmpiwrap.so library has moved from
+ $(INSTALL)/<platform>/libmpiwrap.so to
+ $(INSTALL)/libmpiwrap-<platform>.so.
+
+ * For people who distribute standalone Valgrind tools, the
+ installed libraries such as $(INSTALL)/<platform>/libcoregrind.a
+ have moved to $(INSTALL)/libcoregrind-<platform>.a.
+
+ These changes simplify the build system.
+
+ - Previously, all the distributed suppression (*.supp) files were
+ installed. Now, only default.supp is installed. This should not
+ affect users as the other installed suppression files were not
+ read; the fact that they were installed was a mistake.
+
+
+* KNOWN LIMITATIONS:
+
+ - Memcheck is unusable with the Intel compiler suite version 11.1,
+ when it generates code for SSE2-and-above capable targets. This
+ is because of icc's use of highly optimised inlined strlen
+ implementations. It causes Memcheck to report huge numbers of
+ false errors even in simple programs. Helgrind and DRD may also
+ have problems.
+
+ Versions 11.0 and earlier may be OK, but this has not been
+ properly tested.
+
+
+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 (http://bugs.kde.org/enter_valgrind_bug.cgi) 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.
+
+84303 How about a LockCheck tool?
+91633 dereference of null ptr in vgPlain_st_basetype
+97452 Valgrind doesn't report any pthreads problems
+100628 leak-check gets assertion failure when using
+ VALGRIND_MALLOCLIKE_BLOCK on malloc()ed memory
+108528 NPTL pthread cleanup handlers not called
+110126 Valgrind 2.4.1 configure.in tramples CFLAGS
+110128 mallinfo is not implemented...
+110770 VEX: Generated files not always updated when making valgrind
+111102 Memcheck: problems with large (memory footprint) applications
+115673 Vex's decoder should never assert
+117564 False positive: Syscall param clone(child_tidptr) contains
+ uninitialised byte(s)
+119404 executing ssh from inside valgrind fails
+133679 Callgrind does not write path names to sources with dwarf debug
+ info
+135847 configure.in problem with non gnu compilers (and possible fix)
+136154 threads.c:273 (vgCallgrind_post_signal): Assertion
+ '*(vgCallgrind_current_fn_stack.top) == 0' failed.
+136230 memcheck reports "possibly lost", should be "still reachable"
+137073 NULL arg to MALLOCLIKE_BLOCK causes crash
+137904 Valgrind reports a memory leak when using POSIX threads,
+ while it shouldn't
+139076 valgrind VT_GETSTATE error
+142228 complaint of elf_dynamic_do_rela in trivial usage
+145347 spurious warning with USBDEVFS_REAPURB
+148441 (wine) can't find memory leak in Wine, win32 binary
+ executable file.
+148742 Leak-check fails assert on exit
+149878 add (proper) check for calloc integer overflow
+150606 Call graph is broken when using callgrind control
+152393 leak errors produce an exit code of 0. I need some way to
+ cause leak errors to result in a nonzero exit code.
+157154 documentation (leak-resolution doc speaks about num-callers
+ def=4) + what is a loss record
+159501 incorrect handling of ALSA ioctls
+162020 Valgrinding an empty/zero-byte file crashes valgrind
+162482 ppc: Valgrind crashes while reading stabs information
+162718 x86: avoid segment selector 0 in sys_set_thread_area()
+163253 (wine) canonicaliseSymtab forgot some fields in DiSym
+163560 VEX/test_main.c is missing from valgrind-3.3.1
+164353 malloc_usable_size() doesn't return a usable size
+165468 Inconsistent formatting in memcheck manual -- please fix
+169505 main.c:286 (endOfInstr):
+ Assertion 'ii->cost_offset == *cost_offset' failed
+177206 Generate default.supp during compile instead of configure
+177209 Configure valt_load_address based on arch+os
+177305 eventfd / syscall 323 patch lost
+179731 Tests fail to build because of inlining of non-local asm labels
+181394 helgrind: libhb_core.c:3762 (msm_write): Assertion
+ 'ordxx == POrd_EQ || ordxx == POrd_LT' failed.
+181594 Bogus warning for empty text segment
+181707 dwarf doesn't require enumerations to have name
+185038 exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64
+185050 exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
+ Assertion '!already_present' failed.
+185359 exp-ptrcheck: unhandled syscall getresuid()
+185794 "WARNING: unhandled syscall: 285" (fallocate) on x86_64
+185816 Valgrind is unable to handle debug info for files with split
+ debug info that are prelinked afterwards
+185980 [darwin] unhandled syscall: sem_open
+186238 bbToIR_AMD64: disInstr miscalculated next %rip
+186507 exp-ptrcheck unhandled syscalls prctl, etc.
+186790 Suppression pattern used for leaks are not reported
+186796 Symbols with length>200 in suppression files are ignored
+187048 drd: mutex PTHREAD_PROCESS_SHARED attribute missinterpretation
+187416 exp-ptrcheck: support for __NR_{setregid,setreuid,setresuid}
+188038 helgrind: hg_main.c:926: mk_SHVAL_fail: the 'impossible' happened
+188046 bashisms in the configure script
+188127 amd64->IR: unhandled instruction bytes: 0xF0 0xF 0xB0 0xA
+188161 memcheck: --track-origins=yes asserts "mc_machine.c:672
+ (get_otrack_shadow_offset_wrk): the 'impossible' happened."
+188248 helgrind: pthread_cleanup_push, pthread_rwlock_unlock,
+ assertion fail "!lock->heldBy"
+188427 Add support for epoll_create1 (with patch)
+188530 Support for SIOCGSTAMPNS
+188560 Include valgrind.spec in the tarball
+188572 Valgrind on Mac should suppress setenv() mem leak
+189054 Valgrind fails to build because of duplicate non-local asm labels
+189737 vex amd64->IR: unhandled instruction bytes: 0xAC
+189762 epoll_create syscall not handled (--tool=exp-ptrcheck)
+189763 drd assertion failure: s_threadinfo[tid].is_recording
+190219 unhandled syscall: 328 (x86-linux)
+190391 dup of 181394; see above
+190429 Valgrind reports lots of errors in ld.so with x86_64 2.9.90 glibc
+190820 No debug information on powerpc-linux
+191095 PATCH: Improve usbdevfs ioctl handling
+191182 memcheck: VALGRIND_LEAK_CHECK quadratic when big nr of chunks
+ or big nr of errors
+191189 --xml=yes should obey --gen-suppressions=all
+191192 syslog() needs a suppression on macosx
+191271 DARWIN: WARNING: unhandled syscall: 33554697 a.k.a.: 265
+191761 getrlimit on MacOSX
+191992 multiple --fn-skip only works sometimes; dependent on order
+192634 V. reports "aspacem sync_check_mapping_callback:
+ segment mismatch" on Darwin
+192954 __extension__ missing on 2 client requests
+194429 Crash at start-up with glibc-2.10.1 and linux-2.6.29
+194474 "INSTALL" file has different build instructions than "README"
+194671 Unhandled syscall (sem_wait?) from mac valgrind
+195069 memcheck: reports leak (memory still reachable) for
+ printf("%d', x)
+195169 drd: (vgDrd_barrier_post_wait):
+ Assertion 'r->sg[p->post_iteration]' failed.
+195268 valgrind --log-file doesn't accept ~/...
+195838 VEX abort: LibVEX_N_SPILL_BYTES too small for CPUID boilerplate
+195860 WARNING: unhandled syscall: unix:223
+196528 need a error suppression for pthread_rwlock_init under os x?
+197227 Support aio_* syscalls on Darwin
+197456 valgrind should reject --suppressions=(directory)
+197512 DWARF2 CFI reader: unhandled CFI instruction 0:10
+197591 unhandled syscall 27 (mincore)
+197793 Merge DCAS branch to the trunk == 85756, 142103
+197794 Avoid duplicate filenames in Vex
+197898 make check fails on current SVN
+197901 make check fails also under exp-ptrcheck in current SVN
+197929 Make --leak-resolution=high the default
+197930 Reduce spacing between leak reports
+197933 Print command line of client at start-up, and shorten preamble
+197966 unhandled syscall 205 (x86-linux, --tool=exp-ptrcheck)
+198395 add BBV to the distribution as an experimental tool
+198624 Missing syscalls on Darwin: 82, 167, 281, 347
+198649 callgrind_annotate doesn't cumulate counters
+199338 callgrind_annotate sorting/thresholds are broken for all but Ir
+199977 Valgrind complains about an unrecognized instruction in the
+ atomic_incs test program
+200029 valgrind isn't able to read Fedora 12 debuginfo
+200760 darwin unhandled syscall: unix:284
+200827 DRD doesn't work on Mac OS X
+200990 VG_(read_millisecond_timer)() does not work correctly
+201016 Valgrind does not support pthread_kill() on Mac OS
+201169 Document --read-var-info
+201323 Pre-3.5.0 performance sanity checking
+201384 Review user manual for the 3.5.0 release
+201585 mfpvr not implemented on ppc
+201708 tests failing because x86 direction flag is left set
+201757 Valgrind doesn't handle any recent sys_futex additions
+204377 64-bit valgrind can not start a shell script
+ (with #!/path/to/shell) if the shell is a 32-bit executable
+n-i-bz drd: fixed assertion failure triggered by mutex reinitialization.
+n-i-bz drd: fixed a bug that caused incorrect messages to be printed
+ about memory allocation events with memory access tracing enabled
+n-i-bz drd: fixed a memory leak triggered by vector clock deallocation
+
+(3.5.0: 19 Aug 2009, vex r1913, valgrind r10846).
+
+
+
+Release 3.4.1 (28 February 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.4.1 is a bug-fix release that fixes some regressions and assertion
+failures in debug info reading in 3.4.0, most notably incorrect stack
+traces on amd64-linux on older (glibc-2.3 based) systems. Various
+other debug info problems are also fixed. A number of bugs in the
+exp-ptrcheck tool introduced in 3.4.0 have been fixed.
+
+In view of the fact that 3.4.0 contains user-visible regressions
+relative to 3.3.x, upgrading to 3.4.1 is recommended. Packagers are
+encouraged to ship 3.4.1 in preference to 3.4.0.
+
+The fixed bugs are as follows. 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
+(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
+developers (or mailing lists) directly -- bugs that are not entered
+into bugzilla tend to get forgotten about or ignored.
+
+n-i-bz Fix various bugs reading icc-11 generated debug info
+n-i-bz Fix various bugs reading gcc-4.4 generated debug info
+n-i-bz Preliminary support for glibc-2.10 / Fedora 11
+n-i-bz Cachegrind and Callgrind: handle non-power-of-two cache sizes,
+ so as to support (eg) 24k Atom D1 and Core2 with 3/6/12MB L2.
+179618 exp-ptrcheck crashed / exit prematurely
+179624 helgrind: false positive races with pthread_create and
+ recv/open/close/read
+134207 pkg-config output contains @VG_PLATFORM@
+176926 floating point exception at valgrind startup with PPC 440EPX
+181594 Bogus warning for empty text segment
+173751 amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant rex prefixes)
+181707 Dwarf3 doesn't require enumerations to have name
+185038 exp-ptrcheck: "unhandled syscall: 285" (fallocate) on x86_64
+185050 exp-ptrcheck: sg_main.c:727 (add_block_to_GlobalTree):
+ Assertion '!already_present' failed.
+185359 exp-ptrcheck unhandled syscall getresuid()
+
+(3.4.1.RC1: 24 Feb 2008, vex r1884, valgrind r9253).
+(3.4.1: 28 Feb 2008, vex r1884, valgrind r9293).
+
+
+
+Release 3.4.0 (2 January 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.4.0 is a feature release with many significant improvements and the
+usual collection of bug fixes. This release supports X86/Linux,
+AMD64/Linux, PPC32/Linux and PPC64/Linux. Support for recent distros
+(using gcc 4.4, glibc 2.8 and 2.9) has been added.
+
+3.4.0 brings some significant tool improvements. Memcheck can now
+report the origin of uninitialised values, the thread checkers
+Helgrind and DRD are much improved, and we have a new experimental
+tool, exp-Ptrcheck, which is able to detect overruns of stack and
+global arrays. In detail:
+
+* Memcheck is now able to track the origin of uninitialised values.
+ When it reports an uninitialised value error, it will try to show
+ the origin of the value, as either a heap or stack allocation.
+ Origin tracking is expensive and so is not enabled by default. To
+ use it, specify --track-origins=yes. Memcheck's speed will be
+ essentially halved, and memory usage will be significantly
+ increased. Nevertheless it can drastically reduce the effort
+ required to identify the root cause of uninitialised value errors,
+ and so is often a programmer productivity win, despite running more
+ slowly.
+
+* A version (1.4.0) of the Valkyrie GUI, that works with Memcheck in
+ 3.4.0, will be released shortly.
+
+* Helgrind's race detection algorithm has been completely redesigned
+ and reimplemented, to address usability and scalability concerns:
+
+ - The new algorithm has a lower false-error rate: it is much less
+ likely to report races that do not really exist.
+
+ - Helgrind will display full call stacks for both accesses involved
+ in a race. This makes it easier to identify the root causes of
+ races.
+
+ - Limitations on the size of program that can run have been removed.
+
+ - Performance has been modestly improved, although that is very
+ workload-dependent.
+
+ - Direct support for Qt4 threading has been added.
+
+ - pthread_barriers are now directly supported.
+
+ - Helgrind works well on all supported Linux targets.
+
+* The DRD thread debugging tool has seen major improvements:
+
+ - Greatly improved performance and significantly reduced memory
+ usage.
+
+ - Support for several major threading libraries (Boost.Thread, Qt4,
+ glib, OpenMP) has been added.
+
+ - Support for atomic instructions, POSIX semaphores, barriers and
+ reader-writer locks has been added.
+
+ - Works now on PowerPC CPUs too.
+
+ - Added support for printing thread stack usage at thread exit time.
+
+ - Added support for debugging lock contention.
+
+ - Added a manual for Drd.
+
+* A new experimental tool, exp-Ptrcheck, has been added. Ptrcheck
+ checks for misuses of pointers. In that sense it is a bit like
+ Memcheck. However, Ptrcheck can do things Memcheck can't: it can
+ detect overruns of stack and global arrays, it can detect
+ arbitrarily far out-of-bounds accesses to heap blocks, and it can
+ detect accesses heap blocks that have been freed a very long time
+ ago (millions of blocks in the past).
+
+ Ptrcheck currently works only on x86-linux and amd64-linux. To use
+ it, use --tool=exp-ptrcheck. A simple manual is provided, as part
+ of the main Valgrind documentation. As this is an experimental
+ tool, we would be particularly interested in hearing about your
+ experiences with it.
+
+* exp-Omega, an experimental instantaneous leak-detecting tool, is no
+ longer built by default, although the code remains in the repository
+ and the tarball. This is due to three factors: a perceived lack of
+ users, a lack of maintenance, and concerns that it may not be
+ possible to achieve reliable operation using the existing design.
+
+* As usual, support for the latest Linux distros and toolchain
+ components has been added. It should work well on Fedora Core 10,
+ OpenSUSE 11.1 and Ubuntu 8.10. gcc-4.4 (in its current pre-release
+ state) is supported, as is glibc-2.9. The C++ demangler has been
+ updated so as to work well with C++ compiled by even the most recent
+ g++'s.
+
+* You can now use frame-level wildcards in suppressions. This was a
+ frequently-requested enhancement. A line "..." in a suppression now
+ matches zero or more frames. This makes it easier to write
+ suppressions which are precise yet insensitive to changes in
+ inlining behaviour.
+
+* 3.4.0 adds support on x86/amd64 for the SSSE3 instruction set.
+
+* Very basic support for IBM Power6 has been added (64-bit processes only).
+
+* Valgrind is now cross-compilable. For example, it is possible to
+ cross compile Valgrind on an x86/amd64-linux host, so that it runs
+ on a ppc32/64-linux target.
+
+* You can set the main thread's stack size at startup using the
+ new --main-stacksize= flag (subject of course to ulimit settings).
+ This is useful for running apps that need a lot of stack space.
+
+* The limitation that you can't use --trace-children=yes together
+ with --db-attach=yes has been removed.
+
+* The following bugs have been fixed. 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 (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+ mailing the developers (or mailing lists) directly.
+
+ n-i-bz Make return types for some client requests 64-bit clean
+ n-i-bz glibc 2.9 support
+ n-i-bz ignore unsafe .valgrindrc's (CVE-2008-4865)
+ n-i-bz MPI_Init(0,0) is valid but libmpiwrap.c segfaults
+ n-i-bz Building in an env without gdb gives bogus gdb attach
+ 92456 Tracing the origin of uninitialised memory
+ 106497 Valgrind does not demangle some C++ template symbols
+ 162222 ==106497
+ 151612 Suppression with "..." (frame-level wildcards in .supp files)
+ 156404 Unable to start oocalc under memcheck on openSUSE 10.3 (64-bit)
+ 159285 unhandled syscall:25 (stime, on x86-linux)
+ 159452 unhandled ioctl 0x8B01 on "valgrind iwconfig"
+ 160954 ppc build of valgrind crashes with illegal instruction (isel)
+ 160956 mallinfo implementation, w/ patch
+ 162092 Valgrind fails to start gnome-system-monitor
+ 162819 malloc_free_fill test doesn't pass on glibc2.8 x86
+ 163794 assertion failure with "--track-origins=yes"
+ 163933 sigcontext.err and .trapno must be set together
+ 163955 remove constraint !(--db-attach=yes && --trace-children=yes)
+ 164476 Missing kernel module loading system calls
+ 164669 SVN regression: mmap() drops posix file locks
+ 166581 Callgrind output corruption when program forks
+ 167288 Patch file for missing system calls on Cell BE
+ 168943 unsupported scas instruction pentium
+ 171645 Unrecognised instruction (MOVSD, non-binutils encoding)
+ 172417 x86->IR: 0x82 ...
+ 172563 amd64->IR: 0xD9 0xF5 - fprem1
+ 173099 .lds linker script generation error
+ 173177 [x86_64] syscalls: 125/126/179 (capget/capset/quotactl)
+ 173751 amd64->IR: 0x48 0xF 0x6F 0x45 (even more redundant prefixes)
+ 174532 == 173751
+ 174908 --log-file value not expanded correctly for core file
+ 175044 Add lookup_dcookie for amd64
+ 175150 x86->IR: 0xF2 0xF 0x11 0xC1 (movss non-binutils encoding)
+
+Developer-visible changes:
+
+* Valgrind's debug-info reading machinery has been majorly overhauled.
+ It can now correctly establish the addresses for ELF data symbols,
+ which is something that has never worked properly before now.
+
+ Also, Valgrind can now read DWARF3 type and location information for
+ stack and global variables. This makes it possible to use the
+ framework to build tools that rely on knowing the type and locations
+ of stack and global variables, for example exp-Ptrcheck.
+
+ Reading of such information is disabled by default, because most
+ tools don't need it, and because it is expensive in space and time.
+ However, you can force Valgrind to read it, using the
+ --read-var-info=yes flag. Memcheck, Helgrind and DRD are able to
+ make use of such information, if present, to provide source-level
+ descriptions of data addresses in the error messages they create.
+
+(3.4.0.RC1: 24 Dec 2008, vex r1878, valgrind r8882).
+(3.4.0: 3 Jan 2009, vex r1878, valgrind r8899).
+
+
+Release 3.3.1 (4 June 2008)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.3.1 fixes a bunch of bugs in 3.3.0, adds support for glibc-2.8 based
+systems (openSUSE 11, Fedora Core 9), improves the existing glibc-2.7
+support, and adds support for the SSSE3 (Core 2) instruction set.
+
+3.3.1 will likely be the last release that supports some very old
+systems. In particular, the next major release, 3.4.0, will drop
+support for the old LinuxThreads threading library, and for gcc
+versions prior to 3.0.
+
+The fixed bugs are as follows. 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
+(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
+developers (or mailing lists) directly -- bugs that are not entered
+into bugzilla tend to get forgotten about or ignored.
+
+n-i-bz Massif segfaults at exit
+n-i-bz Memcheck asserts on Altivec code
+n-i-bz fix sizeof bug in Helgrind
+n-i-bz check fd on sys_llseek
+n-i-bz update syscall lists to kernel 2.6.23.1
+n-i-bz support sys_sync_file_range
+n-i-bz handle sys_sysinfo, sys_getresuid, sys_getresgid on ppc64-linux
+n-i-bz intercept memcpy in 64-bit ld.so's
+n-i-bz Fix wrappers for sys_{futimesat,utimensat}
+n-i-bz Minor false-error avoidance fixes for Memcheck
+n-i-bz libmpiwrap.c: add a wrapper for MPI_Waitany
+n-i-bz helgrind support for glibc-2.8
+n-i-bz partial fix for mc_leakcheck.c:698 assert:
+ 'lc_shadows[i]->data + lc_shadows[i] ...
+n-i-bz Massif/Cachegrind output corruption when programs fork
+n-i-bz register allocator fix: handle spill stores correctly
+n-i-bz add support for PA6T PowerPC CPUs
+126389 vex x86->IR: 0xF 0xAE (FXRSTOR)
+158525 ==126389
+152818 vex x86->IR: 0xF3 0xAC (repz lodsb)
+153196 vex x86->IR: 0xF2 0xA6 (repnz cmpsb)
+155011 vex x86->IR: 0xCF (iret)
+155091 Warning [...] unhandled DW_OP_ opcode 0x23
+156960 ==155901
+155528 support Core2/SSSE3 insns on x86/amd64
+155929 ms_print fails on massif outputs containing long lines
+157665 valgrind fails on shmdt(0) after shmat to 0
+157748 support x86 PUSHFW/POPFW
+158212 helgrind: handle pthread_rwlock_try{rd,wr}lock.
+158425 sys_poll incorrectly emulated when RES==0
+158744 vex amd64->IR: 0xF0 0x41 0xF 0xC0 (xaddb)
+160907 Support for a couple of recent Linux syscalls
+161285 Patch -- support for eventfd() syscall
+161378 illegal opcode in debug libm (FUCOMPP)
+160136 ==161378
+161487 number of suppressions files is limited to 10
+162386 ms_print typo in milliseconds time unit for massif
+161036 exp-drd: client allocated memory was never freed
+162663 signalfd_wrapper fails on 64bit linux
+
+(3.3.1.RC1: 2 June 2008, vex r1854, valgrind r8169).
+(3.3.1: 4 June 2008, vex r1854, valgrind r8180).
+
+
+
+Release 3.3.0 (7 December 2007)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.3.0 is a feature release with many significant improvements and the
+usual collection of bug fixes. This release supports X86/Linux,
+AMD64/Linux, PPC32/Linux and PPC64/Linux. Support for recent distros
+(using gcc 4.3, glibc 2.6 and 2.7) has been added.
+
+The main excitement in 3.3.0 is new and improved tools. Helgrind
+works again, Massif has been completely overhauled and much improved,
+Cachegrind now does branch-misprediction profiling, and a new category
+of experimental tools has been created, containing two new tools:
+Omega and DRD. There are many other smaller improvements. In detail:
+
+- Helgrind has been completely overhauled and works for the first time
+ since Valgrind 2.2.0. Supported functionality is: detection of
+ misuses of the POSIX PThreads API, detection of potential deadlocks
+ resulting from cyclic lock dependencies, and detection of data
+ races. Compared to the 2.2.0 Helgrind, the race detection algorithm
+ has some significant improvements aimed at reducing the false error
+ rate. Handling of various kinds of corner cases has been improved.
+ Efforts have been made to make the error messages easier to
+ understand. Extensive documentation is provided.
+
+- Massif has been completely overhauled. Instead of measuring
+ space-time usage -- which wasn't always useful and many people found
+ confusing -- it now measures space usage at various points in the
+ execution, including the point of peak memory allocation. Its
+ output format has also changed: instead of producing PostScript
+ graphs and HTML text, it produces a single text output (via the new
+ 'ms_print' script) that contains both a graph and the old textual
+ information, but in a more compact and readable form. Finally, the
+ new version should be more reliable than the old one, as it has been
+ tested more thoroughly.
+
+- Cachegrind has been extended to do branch-misprediction profiling.
+ Both conditional and indirect branches are profiled. The default
+ behaviour of Cachegrind is unchanged. To use the new functionality,
+ give the option --branch-sim=yes.
+
+- A new category of "experimental tools" has been created. Such tools
+ may not work as well as the standard tools, but are included because
+ some people will find them useful, and because exposure to a wider
+ user group provides tool authors with more end-user feedback. These
+ tools have a "exp-" prefix attached to their names to indicate their
+ experimental nature. Currently there are two experimental tools:
+
+ * exp-Omega: an instantaneous leak detector. See
+ exp-omega/docs/omega_introduction.txt.
+
+ * exp-DRD: a data race detector based on the happens-before
+ relation. See exp-drd/docs/README.txt.
+
+- Scalability improvements for very large programs, particularly those
+ which have a million or more malloc'd blocks in use at once. These
+ improvements mostly affect Memcheck. Memcheck is also up to 10%
+ faster for all programs, with x86-linux seeing the largest
+ improvement.
+
+- Works well on the latest Linux distros. Has been tested on Fedora
+ Core 8 (x86, amd64, ppc32, ppc64) and openSUSE 10.3. glibc 2.6 and
+ 2.7 are supported. gcc-4.3 (in its current pre-release state) is
+ supported. At the same time, 3.3.0 retains support for older
+ distros.
+
+- The documentation has been modestly reorganised with the aim of
+ making it easier to find information on common-usage scenarios.
+ Some advanced material has been moved into a new chapter in the main
+ manual, so as to unclutter the main flow, and other tidying up has
+ been done.
+
+- There is experimental support for AIX 5.3, both 32-bit and 64-bit
+ processes. You need to be running a 64-bit kernel to use Valgrind
+ on a 64-bit executable.
+
+- There have been some changes to command line options, which may
+ affect you:
+
+ * --log-file-exactly and
+ --log-file-qualifier options have been removed.
+
+ To make up for this --log-file option has been made more powerful.
+ It now accepts a %p format specifier, which is replaced with the
+ process ID, and a %q{FOO} format specifier, which is replaced with
+ the contents of the environment variable FOO.
+
+ * --child-silent-after-fork=yes|no [no]
+
+ Causes Valgrind to not show any debugging or logging output for
+ the child process resulting from a fork() call. This can make the
+ output less confusing (although more misleading) when dealing with
+ processes that create children.
+
+ * --cachegrind-out-file, --callgrind-out-file and --massif-out-file
+
+ These control the names of the output files produced by
+ Cachegrind, Callgrind and Massif. They accept the same %p and %q
+ format specifiers that --log-file accepts. --callgrind-out-file
+ replaces Callgrind's old --base option.
+
+ * Cachegrind's 'cg_annotate' script no longer uses the --<pid>
+ option to specify the output file. Instead, the first non-option
+ argument is taken to be the name of the output file, and any
+ subsequent non-option arguments are taken to be the names of
+ source files to be annotated.
+
+ * Cachegrind and Callgrind now use directory names where possible in
+ their output files. This means that the -I option to
+ 'cg_annotate' and 'callgrind_annotate' should not be needed in
+ most cases. It also means they can correctly handle the case
+ where two source files in different directories have the same
+ name.
+
+- Memcheck offers a new suppression kind: "Jump". This is for
+ suppressing jump-to-invalid-address errors. Previously you had to
+ use an "Addr1" suppression, which didn't make much sense.
+
+- Memcheck has new flags --malloc-fill=<hexnum> and
+ --free-fill=<hexnum> which free malloc'd / free'd areas with the
+ specified byte. This can help shake out obscure memory corruption
+ problems. The definedness and addressability of these areas is
+ unchanged -- only the contents are affected.
+
+- The behaviour of Memcheck's client requests VALGRIND_GET_VBITS and
+ VALGRIND_SET_VBITS have changed slightly. They no longer issue
+ addressability errors -- if either array is partially unaddressable,
+ they just return 3 (as before). Also, SET_VBITS doesn't report
+ definedness errors if any of the V bits are undefined.
+
+- The following Memcheck client requests have been removed:
+ VALGRIND_MAKE_NOACCESS
+ VALGRIND_MAKE_WRITABLE
+ VALGRIND_MAKE_READABLE
+ VALGRIND_CHECK_WRITABLE
+ VALGRIND_CHECK_READABLE
+ VALGRIND_CHECK_DEFINED
+ They were deprecated in 3.2.0, when equivalent but better-named client
+ requests were added. See the 3.2.0 release notes for more details.
+
+- The behaviour of the tool Lackey has changed slightly. First, the output
+ from --trace-mem has been made more compact, to reduce the size of the
+ traces. Second, a new option --trace-superblocks has been added, which
+ shows the addresses of superblocks (code blocks) as they are executed.
+
+- The following bugs have been fixed. 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 (http://bugs.kde.org/enter_valgrind_bug.cgi) rather than
+ mailing the developers (or mailing lists) directly.
+
+ n-i-bz x86_linux_REDIR_FOR_index() broken
+ n-i-bz guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed.
+ n-i-bz Support x86 INT insn (INT (0xCD) 0x40 - 0x43)
+ n-i-bz Add sys_utimensat system call for Linux x86 platform
+ 79844 Helgrind complains about race condition which does not exist
+ 82871 Massif output function names too short
+ 89061 Massif: ms_main.c:485 (get_XCon): Assertion `xpt->max_chi...'
+ 92615 Write output from Massif at crash
+ 95483 massif feature request: include peak allocation in report
+ 112163 MASSIF crashed with signal 7 (SIGBUS) after running 2 days
+ 119404 problems running setuid executables (partial fix)
+ 121629 add instruction-counting mode for timing
+ 127371 java vm giving unhandled instruction bytes: 0x26 0x2E 0x64 0x65
+ 129937 ==150380
+ 129576 Massif loses track of memory, incorrect graphs
+ 132132 massif --format=html output does not do html entity escaping
+ 132950 Heap alloc/usage summary
+ 133962 unhandled instruction bytes: 0xF2 0x4C 0xF 0x10
+ 134990 use -fno-stack-protector if possible
+ 136382 ==134990
+ 137396 I would really like helgrind to work again...
+ 137714 x86/amd64->IR: 0x66 0xF 0xF7 0xC6 (maskmovq, maskmovdq)
+ 141631 Massif: percentages don't add up correctly
+ 142706 massif numbers don't seem to add up
+ 143062 massif crashes on app exit with signal 8 SIGFPE
+ 144453 (get_XCon): Assertion 'xpt->max_children != 0' failed.
+ 145559 valgrind aborts when malloc_stats is called
+ 145609 valgrind aborts all runs with 'repeated section!'
+ 145622 --db-attach broken again on x86-64
+ 145837 ==149519
+ 145887 PPC32: getitimer() system call is not supported
+ 146252 ==150678
+ 146456 (update_XCon): Assertion 'xpt->curr_space >= -space_delta'...
+ 146701 ==134990
+ 146781 Adding support for private futexes
+ 147325 valgrind internal error on syscall (SYS_io_destroy, 0)
+ 147498 amd64->IR: 0xF0 0xF 0xB0 0xF (lock cmpxchg %cl,(%rdi))
+ 147545 Memcheck: mc_main.c:817 (get_sec_vbits8): Assertion 'n' failed.
+ 147628 SALC opcode 0xd6 unimplemented
+ 147825 crash on amd64-linux with gcc 4.2 and glibc 2.6 (CFI)
+ 148174 Incorrect type of freed_list_volume causes assertion [...]
+ 148447 x86_64 : new NOP codes: 66 66 66 66 2e 0f 1f
+ 149182 PPC Trap instructions not implemented in valgrind
+ 149504 Assertion hit on alloc_xpt->curr_space >= -space_delta
+ 149519 ppc32: V aborts with SIGSEGV on execution of a signal handler
+ 149892 ==137714
+ 150044 SEGV during stack deregister
+ 150380 dwarf/gcc interoperation (dwarf3 read problems)
+ 150408 ==148447
+ 150678 guest-amd64/toIR.c:3741 (dis_Grp5): Assertion `sz == 4' failed
+ 151209 V unable to execute programs for users with UID > 2^16
+ 151938 help on --db-command= misleading
+ 152022 subw $0x28, %%sp causes assertion failure in memcheck
+ 152357 inb and outb not recognized in 64-bit mode
+ 152501 vex x86->IR: 0x27 0x66 0x89 0x45 (daa)
+ 152818 vex x86->IR: 0xF3 0xAC 0xFC 0x9C (rep lodsb)
+
+Developer-visible changes:
+
+- The names of some functions and types within the Vex IR have
+ changed. Run 'svn log -r1689 VEX/pub/libvex_ir.h' for full details.
+ Any existing standalone tools will have to be updated to reflect
+ these changes. The new names should be clearer. The file
+ VEX/pub/libvex_ir.h is also much better commented.
+
+- A number of new debugging command line options have been added.
+ These are mostly of use for debugging the symbol table and line
+ number readers:
+
+ --trace-symtab-patt=<patt> limit debuginfo tracing to obj name <patt>
+ --trace-cfi=no|yes show call-frame-info details? [no]
+ --debug-dump=syms mimic /usr/bin/readelf --syms
+ --debug-dump=line mimic /usr/bin/readelf --debug-dump=line
+ --debug-dump=frames mimic /usr/bin/readelf --debug-dump=frames
+ --sym-offsets=yes|no show syms in form 'name+offset' ? [no]
+
+- Internally, the code base has been further factorised and
+ abstractified, particularly with respect to support for non-Linux
+ OSs.
+
+(3.3.0.RC1: 2 Dec 2007, vex r1803, valgrind r7268).
+(3.3.0.RC2: 5 Dec 2007, vex r1804, valgrind r7282).
+(3.3.0.RC3: 9 Dec 2007, vex r1804, valgrind r7288).
+(3.3.0: 10 Dec 2007, vex r1804, valgrind r7290).
+
+
+
+Release 3.2.3 (29 Jan 2007)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Unfortunately 3.2.2 introduced a regression which can cause an
+assertion failure ("vex: the `impossible' happened: eqIRConst") when
+running obscure pieces of SSE code. 3.2.3 fixes this and adds one
+more glibc-2.5 intercept. In all other respects it is identical to
+3.2.2. Please do not use (or package) 3.2.2; instead use 3.2.3.
+
+n-i-bz vex: the `impossible' happened: eqIRConst
+n-i-bz Add an intercept for glibc-2.5 __stpcpy_chk
+
+(3.2.3: 29 Jan 2007, vex r1732, valgrind r6560).
+
+
+Release 3.2.2 (22 Jan 2007)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.2.2 fixes a bunch of bugs in 3.2.1, adds support for glibc-2.5 based
+systems (openSUSE 10.2, Fedora Core 6), improves support for icc-9.X
+compiled code, and brings modest performance improvements in some
+areas, including amd64 floating point, powerpc support, and startup
+responsiveness on all targets.
+
+The fixed bugs are as follows. 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
+(http://bugs.kde.org/enter_valgrind_bug.cgi) rather than mailing the
+developers (or mailing lists) directly.
+
+129390 ppc?->IR: some kind of VMX prefetch (dstt)
+129968 amd64->IR: 0xF 0xAE 0x0 (fxsave)
+134319 ==129968
+133054 'make install' fails with syntax errors
+118903 ==133054
+132998 startup fails in when running on UML
+134207 pkg-config output contains @VG_PLATFORM@
+134727 valgrind exits with "Value too large for defined data type"
+n-i-bz ppc32/64: support mcrfs
+n-i-bz Cachegrind/Callgrind: Update cache parameter detection
+135012 x86->IR: 0xD7 0x8A 0xE0 0xD0 (xlat)
+125959 ==135012
+126147 x86->IR: 0xF2 0xA5 0xF 0x77 (repne movsw)
+136650 amd64->IR: 0xC2 0x8 0x0
+135421 x86->IR: unhandled Grp5(R) case 6
+n-i-bz Improved documentation of the IR intermediate representation
+n-i-bz jcxz (x86) (users list, 8 Nov)
+n-i-bz ExeContext hashing fix
+n-i-bz fix CFI reading failures ("Dwarf CFI 0:24 0:32 0:48 0:7")
+n-i-bz fix Cachegrind/Callgrind simulation bug
+n-i-bz libmpiwrap.c: fix handling of MPI_LONG_DOUBLE
+n-i-bz make User errors suppressible
+136844 corrupted malloc line when using --gen-suppressions=yes
+138507 ==136844
+n-i-bz Speed up the JIT's register allocator
+n-i-bz Fix confusing leak-checker flag hints
+n-i-bz Support recent autoswamp versions
+n-i-bz ppc32/64 dispatcher speedups
+n-i-bz ppc64 front end rld/rlw improvements
+n-i-bz ppc64 back end imm64 improvements
+136300 support 64K pages on ppc64-linux
+139124 == 136300
+n-i-bz fix ppc insn set tests for gcc >= 4.1
+137493 x86->IR: recent binutils no-ops
+137714 x86->IR: 0x66 0xF 0xF7 0xC6 (maskmovdqu)
+138424 "failed in UME with error 22" (produce a better error msg)
+138856 ==138424
+138627 Enhancement support for prctl ioctls
+138896 Add support for usb ioctls
+136059 ==138896
+139050 ppc32->IR: mfspr 268/269 instructions not handled
+n-i-bz ppc32->IR: lvxl/stvxl
+n-i-bz glibc-2.5 support
+n-i-bz memcheck: provide replacement for mempcpy
+n-i-bz memcheck: replace bcmp in ld.so
+n-i-bz Use 'ifndef' in VEX's Makefile correctly
+n-i-bz Suppressions for MVL 4.0.1 on ppc32-linux
+n-i-bz libmpiwrap.c: Fixes for MPICH
+n-i-bz More robust handling of hinted client mmaps
+139776 Invalid read in unaligned memcpy with Intel compiler v9
+n-i-bz Generate valid XML even for very long fn names
+n-i-bz Don't prompt about suppressions for unshown reachable leaks
+139910 amd64 rcl is not supported
+n-i-bz DWARF CFI reader: handle DW_CFA_undefined
+n-i-bz DWARF CFI reader: handle icc9 generated CFI info better
+n-i-bz fix false uninit-value errs in icc9 generated FP code
+n-i-bz reduce extraneous frames in libmpiwrap.c
+n-i-bz support pselect6 on amd64-linux
+
+(3.2.2: 22 Jan 2007, vex r1729, valgrind r6545).
+
+
+Release 3.2.1 (16 Sept 2006)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.2.1 adds x86/amd64 support for all SSE3 instructions except monitor
+and mwait, further reduces memcheck's false error rate on all
+platforms, adds support for recent binutils (in OpenSUSE 10.2 and
+Fedora Rawhide) and fixes a bunch of bugs in 3.2.0. Some of the fixed
+bugs were causing large programs to segfault with --tool=callgrind and
+--tool=cachegrind, so an upgrade is recommended.
+
+In view of the fact that any 3.3.0 release is unlikely to happen until
+well into 1Q07, we intend to keep the 3.2.X line alive for a while
+yet, and so we tentatively plan a 3.2.2 release sometime in December
+06.
+
+The fixed bugs are as follows. 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.
+
+n-i-bz Expanding brk() into last available page asserts
+n-i-bz ppc64-linux stack RZ fast-case snafu
+n-i-bz 'c' in --gen-supps=yes doesn't work
+n-i-bz VG_N_SEGMENTS too low (users, 28 June)
+n-i-bz VG_N_SEGNAMES too low (Stu Robinson)
+106852 x86->IR: fisttp (SSE3)
+117172 FUTEX_WAKE does not use uaddr2
+124039 Lacks support for VKI_[GP]IO_UNIMAP*
+127521 amd64->IR: 0xF0 0x48 0xF 0xC7 (cmpxchg8b)
+128917 amd64->IR: 0x66 0xF 0xF6 0xC4 (psadbw,SSE2)
+129246 JJ: ppc32/ppc64 syscalls, w/ patch
+129358 x86->IR: fisttpl (SSE3)
+129866 cachegrind/callgrind causes executable to die
+130020 Can't stat .so/.exe error while reading symbols
+130388 Valgrind aborts when process calls malloc_trim()
+130638 PATCH: ppc32 missing system calls
+130785 amd64->IR: unhandled instruction "pushfq"
+131481: (HINT_NOP) vex x86->IR: 0xF 0x1F 0x0 0xF
+131298 ==131481
+132146 Programs with long sequences of bswap[l,q]s
+132918 vex amd64->IR: 0xD9 0xF8 (fprem)
+132813 Assertion at priv/guest-x86/toIR.c:652 fails
+133051 'cfsi->len > 0 && cfsi->len < 2000000' failed
+132722 valgrind header files are not standard C
+n-i-bz Livelocks entire machine (users list, Timothy Terriberry)
+n-i-bz Alex Bennee mmap problem (9 Aug)
+n-i-bz BartV: Don't print more lines of a stack-trace than were obtained.
+n-i-bz ppc32 SuSE 10.1 redir
+n-i-bz amd64 padding suppressions
+n-i-bz amd64 insn printing fix.
+n-i-bz ppc cmp reg,reg fix
+n-i-bz x86/amd64 iropt e/rflag reduction rules
+n-i-bz SuSE 10.1 (ppc32) minor fixes
+133678 amd64->IR: 0x48 0xF 0xC5 0xC0 (pextrw?)
+133694 aspacem assertion: aspacem_minAddr <= holeStart
+n-i-bz callgrind: fix warning about malformed creator line
+n-i-bz callgrind: fix annotate script for data produced with
+ --dump-instr=yes
+n-i-bz callgrind: fix failed assertion when toggling
+ instrumentation mode
+n-i-bz callgrind: fix annotate script fix warnings with
+ --collect-jumps=yes
+n-i-bz docs path hardwired (Dennis Lubert)
+
+The following bugs were not fixed, due primarily to lack of developer
+time, and also because bug reporters did not answer requests for
+feedback in time for the release:
+
+129390 ppc?->IR: some kind of VMX prefetch (dstt)
+129968 amd64->IR: 0xF 0xAE 0x0 (fxsave)
+133054 'make install' fails with syntax errors
+n-i-bz Signal race condition (users list, 13 June, Johannes Berg)
+n-i-bz Unrecognised instruction at address 0x70198EC2 (users list,
+ 19 July, Bennee)
+132998 startup fails in when running on UML
+
+The following bug was tentatively fixed on the mainline but the fix
+was considered too risky to push into 3.2.X:
+
+133154 crash when using client requests to register/deregister stack
+
+(3.2.1: 16 Sept 2006, vex r1658, valgrind r6070).
+
+
+Release 3.2.0 (7 June 2006)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.2.0 is a feature release with many significant improvements and the
+usual collection of bug fixes. This release supports X86/Linux,
+AMD64/Linux, PPC32/Linux and PPC64/Linux.
+
+Performance, especially of Memcheck, is improved, Addrcheck has been
+removed, Callgrind has been added, PPC64/Linux support has been added,
+Lackey has been improved, and MPI support has been added. In detail:
+
+- Memcheck has improved speed and reduced memory use. Run times are
+ typically reduced by 15-30%, averaging about 24% for SPEC CPU2000.
+ The other tools have smaller but noticeable speed improvements. We
+ are interested to hear what improvements users get.
+
+ Memcheck uses less memory due to the introduction of a compressed
+ representation for shadow memory. The space overhead has been
+ reduced by a factor of up to four, depending on program behaviour.
+ This means you should be able to run programs that use more memory
+ than before without hitting problems.
+
+- Addrcheck has been removed. It has not worked since version 2.4.0,
+ and the speed and memory improvements to Memcheck make it redundant.
+ If you liked using Addrcheck because it didn't give undefined value
+ errors, you can use the new Memcheck option --undef-value-errors=no
+ to get the same behaviour.
+
+- The number of undefined-value errors incorrectly reported by
+ Memcheck has been reduced (such false reports were already very
+ rare). In particular, efforts have been made to ensure Memcheck
+ works really well with gcc 4.0/4.1-generated code on X86/Linux and
+ AMD64/Linux.
+
+- Josef Weidendorfer's popular Callgrind tool has been added. Folding
+ it in was a logical step given its popularity and usefulness, and
+ makes it easier for us to ensure it works "out of the box" on all
+ supported targets. The associated KDE KCachegrind GUI remains a
+ separate project.
+
+- A new release of the Valkyrie GUI for Memcheck, version 1.2.0,
+ accompanies this release. Improvements over previous releases
+ include improved robustness, many refinements to the user interface,
+ and use of a standard autoconf/automake build system. You can get
+ it from http://www.valgrind.org/downloads/guis.html.
+
+- Valgrind now works on PPC64/Linux. As with the AMD64/Linux port,
+ this supports programs using to 32G of address space. On 64-bit
+ capable PPC64/Linux setups, you get a dual architecture build so
+ that both 32-bit and 64-bit executables can be run. Linux on POWER5
+ is supported, and POWER4 is also believed to work. Both 32-bit and
+ 64-bit DWARF2 is supported. This port is known to work well with
+ both gcc-compiled and xlc/xlf-compiled code.
+
+- Floating point accuracy has been improved for PPC32/Linux.
+ Specifically, the floating point rounding mode is observed on all FP
+ arithmetic operations, and multiply-accumulate instructions are
+ preserved by the compilation pipeline. This means you should get FP
+ results which are bit-for-bit identical to a native run. These
+ improvements are also present in the PPC64/Linux port.
+
+- Lackey, the example tool, has been improved:
+
+ * It has a new option --detailed-counts (off by default) which
+ causes it to print out a count of loads, stores and ALU operations
+ done, and their sizes.
+
+ * It has a new option --trace-mem (off by default) which causes it
+ to print out a trace of all memory accesses performed by a
+ program. It's a good starting point for building Valgrind tools
+ that need to track memory accesses. Read the comments at the top
+ of the file lackey/lk_main.c for details.
+
+ * The original instrumentation (counting numbers of instructions,
+ jumps, etc) is now controlled by a new option --basic-counts. It
+ is on by default.
+
+- MPI support: partial support for debugging distributed applications
+ using the MPI library specification has been added. Valgrind is
+ aware of the memory state changes caused by a subset of the MPI
+ functions, and will carefully check data passed to the (P)MPI_
+ interface.
+
+- A new flag, --error-exitcode=, has been added. This allows changing
+ the exit code in runs where Valgrind reported errors, which is
+ useful when using Valgrind as part of an automated test suite.
+
+- Various segfaults when reading old-style "stabs" debug information
+ have been fixed.
+
+- A simple performance evaluation suite has been added. See
+ perf/README and README_DEVELOPERS for details. There are
+ various bells and whistles.
+
+- New configuration flags:
+ --enable-only32bit
+ --enable-only64bit
+ By default, on 64 bit platforms (ppc64-linux, amd64-linux) the build
+ system will attempt to build a Valgrind which supports both 32-bit
+ and 64-bit executables. This may not be what you want, and you can
+ override the default behaviour using these flags.
+
+Please note that Helgrind is still not working. We have made an
+important step towards making it work again, however, with the
+addition of function wrapping (see below).
+
+Other user-visible changes:
+
+- Valgrind now has the ability to intercept and wrap arbitrary
+ functions. This is a preliminary step towards making Helgrind work
+ again, and was required for MPI support.
+
+- There are some changes to Memcheck's client requests. Some of them
+ have changed names:
+
+ MAKE_NOACCESS --> MAKE_MEM_NOACCESS
+ MAKE_WRITABLE --> MAKE_MEM_UNDEFINED
+ MAKE_READABLE --> MAKE_MEM_DEFINED
+
+ CHECK_WRITABLE --> CHECK_MEM_IS_ADDRESSABLE
+ CHECK_READABLE --> CHECK_MEM_IS_DEFINED
+ CHECK_DEFINED --> CHECK_VALUE_IS_DEFINED
+
+ The reason for the change is that the old names are subtly
+ misleading. The old names will still work, but they are deprecated
+ and may be removed in a future release.
+
+ We also added a new client request:
+
+ MAKE_MEM_DEFINED_IF_ADDRESSABLE(a, len)
+
+ which is like MAKE_MEM_DEFINED but only affects a byte if the byte is
+ already addressable.
+
+- The way client requests are encoded in the instruction stream has
+ changed. Unfortunately, this means 3.2.0 will not honour client
+ requests compiled into binaries using headers from earlier versions
+ of Valgrind. We will try to keep the client request encodings more
+ stable in future.
+
+BUGS FIXED:
+
+108258 NPTL pthread cleanup handlers not called
+117290 valgrind is sigKILL'd on startup
+117295 == 117290
+118703 m_signals.c:1427 Assertion 'tst->status == VgTs_WaitSys'
+118466 add %reg, %reg generates incorrect validity for bit 0
+123210 New: strlen from ld-linux on amd64
+123244 DWARF2 CFI reader: unhandled CFI instruction 0:18
+123248 syscalls in glibc-2.4: openat, fstatat, symlinkat
+123258 socketcall.recvmsg(msg.msg_iov[i] points to uninit
+123535 mremap(new_addr) requires MREMAP_FIXED in 4th arg
+123836 small typo in the doc
+124029 ppc compile failed: `vor' gcc 3.3.5
+124222 Segfault: @@don't know what type ':' is
+124475 ppc32: crash (syscall?) timer_settime()
+124499 amd64->IR: 0xF 0xE 0x48 0x85 (femms)
+124528 FATAL: aspacem assertion failed: segment_is_sane
+124697 vex x86->IR: 0xF 0x70 0xC9 0x0 (pshufw)
+124892 vex x86->IR: 0xF3 0xAE (REPx SCASB)
+126216 == 124892
+124808 ppc32: sys_sched_getaffinity() not handled
+n-i-bz Very long stabs strings crash m_debuginfo
+n-i-bz amd64->IR: 0x66 0xF 0xF5 (pmaddwd)
+125492 ppc32: support a bunch more syscalls
+121617 ppc32/64: coredumping gives assertion failure
+121814 Coregrind return error as exitcode patch
+126517 == 121814
+125607 amd64->IR: 0x66 0xF 0xA3 0x2 (btw etc)
+125651 amd64->IR: 0xF8 0x49 0xFF 0xE3 (clc?)
+126253 x86 movx is wrong
+126451 3.2 SVN doesn't work on ppc32 CPU's without FPU
+126217 increase # threads
+126243 vex x86->IR: popw mem
+126583 amd64->IR: 0x48 0xF 0xA4 0xC2 (shld $1,%rax,%rdx)
+126668 amd64->IR: 0x1C 0xFF (sbb $0xff,%al)
+126696 support for CDROMREADRAW ioctl and CDROMREADTOCENTRY fix
+126722 assertion: segment_is_sane at m_aspacemgr/aspacemgr.c:1624
+126938 bad checking for syscalls linkat, renameat, symlinkat
+
+(3.2.0RC1: 27 May 2006, vex r1626, valgrind r5947).
+(3.2.0: 7 June 2006, vex r1628, valgrind r5957).
+
+
+Release 3.1.1 (15 March 2006)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.1.1 fixes a bunch of bugs reported in 3.1.0. There is no new
+functionality. The fixed bugs are:
+
+(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
+ a bugzilla entry).
+
+n-i-bz ppc32: fsub 3,3,3 in dispatcher doesn't clear NaNs
+n-i-bz ppc32: __NR_{set,get}priority
+117332 x86: missing line info with icc 8.1
+117366 amd64: 0xDD 0x7C fnstsw
+118274 == 117366
+117367 amd64: 0xD9 0xF4 fxtract
+117369 amd64: __NR_getpriority (140)
+117419 ppc32: lfsu f5, -4(r11)
+117419 ppc32: fsqrt
+117936 more stabs problems (segfaults while reading debug info)
+119914 == 117936
+120345 == 117936
+118239 amd64: 0xF 0xAE 0x3F (clflush)
+118939 vm86old system call
+n-i-bz memcheck/tests/mempool reads freed memory
+n-i-bz AshleyP's custom-allocator assertion
+n-i-bz Dirk strict-aliasing stuff
+n-i-bz More space for debugger cmd line (Dan Thaler)
+n-i-bz Clarified leak checker output message
+n-i-bz AshleyP's --gen-suppressions output fix
+n-i-bz cg_annotate's --sort option broken
+n-i-bz OSet 64-bit fastcmp bug
+n-i-bz VG_(getgroups) fix (Shinichi Noda)
+n-i-bz ppc32: allocate from callee-saved FP/VMX regs
+n-i-bz misaligned path word-size bug in mc_main.c
+119297 Incorrect error message for sse code
+120410 x86: prefetchw (0xF 0xD 0x48 0x4)
+120728 TIOCSERGETLSR, TIOCGICOUNT, HDIO_GET_DMA ioctls
+120658 Build fixes for gcc 2.96
+120734 x86: Support for changing EIP in signal handler
+n-i-bz memcheck/tests/zeropage de-looping fix
+n-i-bz x86: fxtract doesn't work reliably
+121662 x86: lock xadd (0xF0 0xF 0xC0 0x2)
+121893 calloc does not always return zeroed memory
+121901 no support for syscall tkill
+n-i-bz Suppression update for Debian unstable
+122067 amd64: fcmovnu (0xDB 0xD9)
+n-i-bz ppc32: broken signal handling in cpu feature detection
+n-i-bz ppc32: rounding mode problems (improved, partial fix only)
+119482 ppc32: mtfsb1
+n-i-bz ppc32: mtocrf/mfocrf
+
+(3.1.1: 15 March 2006, vex r1597, valgrind r5771).
+
+
+Release 3.1.0 (25 November 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.1.0 is a feature release with a number of significant improvements:
+AMD64 support is much improved, PPC32 support is good enough to be
+usable, and the handling of memory management and address space is
+much more robust. In detail:
+
+- AMD64 support is much improved. The 64-bit vs. 32-bit issues in
+ 3.0.X have been resolved, and it should "just work" now in all
+ cases. On AMD64 machines both 64-bit and 32-bit versions of
+ Valgrind are built. The right version will be invoked
+ automatically, even when using --trace-children and mixing execution
+ between 64-bit and 32-bit executables. Also, many more instructions
+ are supported.
+
+- PPC32 support is now good enough to be usable. It should work with
+ all tools, but please let us know if you have problems. Three
+ classes of CPUs are supported: integer only (no FP, no Altivec),
+ which covers embedded PPC uses, integer and FP but no Altivec
+ (G3-ish), and CPUs capable of Altivec too (G4, G5).
+
+- Valgrind's address space management has been overhauled. As a
+ result, Valgrind should be much more robust with programs that use
+ large amounts of memory. There should be many fewer "memory
+ exhausted" messages, and debug symbols should be read correctly on
+ large (eg. 300MB+) executables. On 32-bit machines the full address
+ space available to user programs (usually 3GB or 4GB) can be fully
+ utilised. On 64-bit machines up to 32GB of space is usable; when
+ using Memcheck that means your program can use up to about 14GB.
+
+ A side effect of this change is that Valgrind is no longer protected
+ against wild writes by the client. This feature was nice but relied
+ on the x86 segment registers and so wasn't portable.
+
+- Most users should not notice, but as part of the address space
+ manager change, the way Valgrind is built has been changed. Each
+ tool is now built as a statically linked stand-alone executable,
+ rather than as a shared object that is dynamically linked with the
+ core. The "valgrind" program invokes the appropriate tool depending
+ on the --tool option. This slightly increases the amount of disk
+ space used by Valgrind, but it greatly simplified many things and
+ removed Valgrind's dependence on glibc.
+
+Please note that Addrcheck and Helgrind are still not working. Work
+is underway to reinstate them (or equivalents). We apologise for the
+inconvenience.
+
+Other user-visible changes:
+
+- The --weird-hacks option has been renamed --sim-hints.
+
+- The --time-stamp option no longer gives an absolute date and time.
+ It now prints the time elapsed since the program began.
+
+- It should build with gcc-2.96.
+
+- Valgrind can now run itself (see README_DEVELOPERS for how).
+ This is not much use to you, but it means the developers can now
+ profile Valgrind using Cachegrind. As a result a couple of
+ performance bad cases have been fixed.
+
+- The XML output format has changed slightly. See
+ docs/internals/xml-output.txt.
+
+- Core dumping has been reinstated (it was disabled in 3.0.0 and 3.0.1).
+ If your program crashes while running under Valgrind, a core file with
+ the name "vgcore.<pid>" will be created (if your settings allow core
+ file creation). Note that the floating point information is not all
+ there. If Valgrind itself crashes, the OS will create a normal core
+ file.
+
+The following are some user-visible changes that occurred in earlier
+versions that may not have been announced, or were announced but not
+widely noticed. So we're mentioning them now.
+
+- The --tool flag is optional once again; if you omit it, Memcheck
+ is run by default.
+
+- The --num-callers flag now has a default value of 12. It was
+ previously 4.
+
+- The --xml=yes flag causes Valgrind's output to be produced in XML
+ format. This is designed to make it easy for other programs to
+ consume Valgrind's output. The format is described in the file
+ docs/internals/xml-format.txt.
+
+- The --gen-suppressions flag supports an "all" value that causes every
+ suppression to be printed without asking.
+
+- The --log-file option no longer puts "pid" in the filename, eg. the
+ old name "foo.pid12345" is now "foo.12345".
+
+- There are several graphical front-ends for Valgrind, such as Valkyrie,
+ Alleyoop and Valgui. See http://www.valgrind.org/downloads/guis.html
+ for a list.
+
+BUGS FIXED:
+
+109861 amd64 hangs at startup
+110301 ditto
+111554 valgrind crashes with Cannot allocate memory
+111809 Memcheck tool doesn't start java
+111901 cross-platform run of cachegrind fails on opteron
+113468 (vgPlain_mprotect_range): Assertion 'r != -1' failed.
+ 92071 Reading debugging info uses too much memory
+109744 memcheck loses track of mmap from direct ld-linux.so.2
+110183 tail of page with _end
+ 82301 FV memory layout too rigid
+ 98278 Infinite recursion possible when allocating memory
+108994 Valgrind runs out of memory due to 133x overhead
+115643 valgrind cannot allocate memory
+105974 vg_hashtable.c static hash table
+109323 ppc32: dispatch.S uses Altivec insn, which doesn't work on POWER.
+109345 ptrace_setregs not yet implemented for ppc
+110831 Would like to be able to run against both 32 and 64 bit
+ binaries on AMD64
+110829 == 110831
+111781 compile of valgrind-3.0.0 fails on my linux (gcc 2.X prob)
+112670 Cachegrind: cg_main.c:486 (handleOneStatement ...
+112941 vex x86: 0xD9 0xF4 (fxtract)
+110201 == 112941
+113015 vex amd64->IR: 0xE3 0x14 0x48 0x83 (jrcxz)
+113126 Crash with binaries built with -gstabs+/-ggdb
+104065 == 113126
+115741 == 113126
+113403 Partial SSE3 support on x86
+113541 vex: Grp5(x86) (alt encoding inc/dec) case 1
+113642 valgrind crashes when trying to read debug information
+113810 vex x86->IR: 66 0F F6 (66 + PSADBW == SSE PSADBW)
+113796 read() and write() do not work if buffer is in shared memory
+113851 vex x86->IR: (pmaddwd): 0x66 0xF 0xF5 0xC7
+114366 vex amd64 cannnot handle __asm__( "fninit" )
+114412 vex amd64->IR: 0xF 0xAD 0xC2 0xD3 (128-bit shift, shrdq?)
+114455 vex amd64->IR: 0xF 0xAC 0xD0 0x1 (also shrdq)
+115590: amd64->IR: 0x67 0xE3 0x9 0xEB (address size override)
+115953 valgrind svn r5042 does not build with parallel make (-j3)
+116057 maximum instruction size - VG_MAX_INSTR_SZB too small?
+116483 shmat failes with invalid argument
+102202 valgrind crashes when realloc'ing until out of memory
+109487 == 102202
+110536 == 102202
+112687 == 102202
+111724 vex amd64->IR: 0x41 0xF 0xAB (more BT{,S,R,C} fun n games)
+111748 vex amd64->IR: 0xDD 0xE2 (fucom)
+111785 make fails if CC contains spaces
+111829 vex x86->IR: sbb AL, Ib
+111851 vex x86->IR: 0x9F 0x89 (lahf/sahf)
+112031 iopl on AMD64 and README_MISSING_SYSCALL_OR_IOCTL update
+112152 code generation for Xin_MFence on x86 with SSE0 subarch
+112167 == 112152
+112789 == 112152
+112199 naked ar tool is used in vex makefile
+112501 vex x86->IR: movq (0xF 0x7F 0xC1 0xF) (mmx MOVQ)
+113583 == 112501
+112538 memalign crash
+113190 Broken links in docs/html/
+113230 Valgrind sys_pipe on x86-64 wrongly thinks file descriptors
+ should be 64bit
+113996 vex amd64->IR: fucomp (0xDD 0xE9)
+114196 vex x86->IR: out %eax,(%dx) (0xEF 0xC9 0xC3 0x90)
+114289 Memcheck fails to intercept malloc when used in an uclibc environment
+114756 mbind syscall support
+114757 Valgrind dies with assertion: Assertion 'noLargerThan > 0' failed
+114563 stack tracking module not informed when valgrind switches threads
+114564 clone() and stacks
+114565 == 114564
+115496 glibc crashes trying to use sysinfo page
+116200 enable fsetxattr, fgetxattr, and fremovexattr for amd64
+
+(3.1.0RC1: 20 November 2005, vex r1466, valgrind r5224).
+(3.1.0: 26 November 2005, vex r1471, valgrind r5235).
+
+
+Release 3.0.1 (29 August 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.0.1 fixes a bunch of bugs reported in 3.0.0. There is no new
+functionality. Some of the fixed bugs are critical, so if you
+use/distribute 3.0.0, an upgrade to 3.0.1 is recommended. The fixed
+bugs are:
+
+(note: "n-i-bz" means "not in bugzilla" -- this bug does not have
+ a bugzilla entry).
+
+109313 (== 110505) x86 cmpxchg8b
+n-i-bz x86: track but ignore changes to %eflags.AC (alignment check)
+110102 dis_op2_E_G(amd64)
+110202 x86 sys_waitpid(#286)
+110203 clock_getres(,0)
+110208 execve fail wrong retval
+110274 SSE1 now mandatory for x86
+110388 amd64 0xDD 0xD1
+110464 amd64 0xDC 0x1D FCOMP
+110478 amd64 0xF 0xD PREFETCH
+n-i-bz XML <unique> printing wrong
+n-i-bz Dirk r4359 (amd64 syscalls from trunk)
+110591 amd64 and x86: rdtsc not implemented properly
+n-i-bz Nick r4384 (stub implementations of Addrcheck and Helgrind)
+110652 AMD64 valgrind crashes on cwtd instruction
+110653 AMD64 valgrind crashes on sarb $0x4,foo(%rip) instruction
+110656 PATH=/usr/bin::/bin valgrind foobar stats ./fooba
+110657 Small test fixes
+110671 vex x86->IR: unhandled instruction bytes: 0xF3 0xC3 (rep ret)
+n-i-bz Nick (Cachegrind should not assert when it encounters a client
+ request.)
+110685 amd64->IR: unhandled instruction bytes: 0xE1 0x56 (loope Jb)
+110830 configuring with --host fails to build 32 bit on 64 bit target
+110875 Assertion when execve fails
+n-i-bz Updates to Memcheck manual
+n-i-bz Fixed broken malloc_usable_size()
+110898 opteron instructions missing: btq btsq btrq bsfq
+110954 x86->IR: unhandled instruction bytes: 0xE2 0xF6 (loop Jb)
+n-i-bz Make suppressions work for "???" lines in stacktraces.
+111006 bogus warnings from linuxthreads
+111092 x86: dis_Grp2(Reg): unhandled case(x86)
+111231 sctp_getladdrs() and sctp_getpaddrs() returns uninitialized
+ memory
+111102 (comment #4) Fixed 64-bit unclean "silly arg" message
+n-i-bz vex x86->IR: unhandled instruction bytes: 0x14 0x0
+n-i-bz minor umount/fcntl wrapper fixes
+111090 Internal Error running Massif
+101204 noisy warning
+111513 Illegal opcode for SSE instruction (x86 movups)
+111555 VEX/Makefile: CC is set to gcc
+n-i-bz Fix XML bugs in FAQ
+
+(3.0.1: 29 August 05,
+ vex/branches/VEX_3_0_BRANCH r1367,
+ valgrind/branches/VALGRIND_3_0_BRANCH r4574).
+
+
+
+Release 3.0.0 (3 August 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+3.0.0 is a major overhaul of Valgrind. The most significant user
+visible change is that Valgrind now supports architectures other than
+x86. The new architectures it supports are AMD64 and PPC32, and the
+infrastructure is present for other architectures to be added later.
+
+AMD64 support works well, but has some shortcomings:
+
+- It generally won't be as solid as the x86 version. For example,
+ support for more obscure instructions and system calls may be missing.
+ We will fix these as they arise.
+
+- Address space may be limited; see the point about
+ position-independent executables below.
+
+- If Valgrind is built on an AMD64 machine, it will only run 64-bit
+ executables. If you want to run 32-bit x86 executables under Valgrind
+ on an AMD64, you will need to build Valgrind on an x86 machine and
+ copy it to the AMD64 machine. And it probably won't work if you do
+ something tricky like exec'ing a 32-bit program from a 64-bit program
+ while using --trace-children=yes. We hope to improve this situation
+ in the future.
+
+The PPC32 support is very basic. It may not work reliably even for
+small programs, but it's a start. Many thanks to Paul Mackerras for
+his great work that enabled this support. We are working to make
+PPC32 usable as soon as possible.
+
+Other user-visible changes:
+
+- Valgrind is no longer built by default as a position-independent
+ executable (PIE), as this caused too many problems.
+
+ Without PIE enabled, AMD64 programs will only be able to access 2GB of
+ address space. We will fix this eventually, but not for the moment.
+
+ Use --enable-pie at configure-time to turn this on.
+
+- Support for programs that use stack-switching has been improved. Use
+ the --max-stackframe flag for simple cases, and the
+ VALGRIND_STACK_REGISTER, VALGRIND_STACK_DEREGISTER and
+ VALGRIND_STACK_CHANGE client requests for trickier cases.
+
+- Support for programs that use self-modifying code has been improved,
+ in particular programs that put temporary code fragments on the stack.
+ This helps for C programs compiled with GCC that use nested functions,
+ and also Ada programs. This is controlled with the --smc-check
+ flag, although the default setting should work in most cases.
+
+- Output can now be printed in XML format. This should make it easier
+ for tools such as GUI front-ends and automated error-processing
+ schemes to use Valgrind output as input. The --xml flag controls this.
+ As part of this change, ELF directory information is read from executables,
+ so absolute source file paths are available if needed.
+
+- Programs that allocate many heap blocks may run faster, due to
+ improvements in certain data structures.
+
+- Addrcheck is currently not working. We hope to get it working again
+ soon. Helgrind is still not working, as was the case for the 2.4.0
+ release.
+
+- The JITter has been completely rewritten, and is now in a separate
+ library, called Vex. This enabled a lot of the user-visible changes,
+ such as new architecture support. The new JIT unfortunately translates
+ more slowly than the old one, so programs may take longer to start.
+ We believe the code quality is produces is about the same, so once
+ started, programs should run at about the same speed. Feedback about
+ this would be useful.
+
+ On the plus side, Vex and hence Memcheck tracks value flow properly
+ through floating point and vector registers, something the 2.X line
+ could not do. That means that Memcheck is much more likely to be
+ usably accurate on vectorised code.
+
+- There is a subtle change to the way exiting of threaded programs
+ is handled. In 3.0, Valgrind's final diagnostic output (leak check,
+ etc) is not printed until the last thread exits. If the last thread
+ to exit was not the original thread which started the program, any
+ other process wait()-ing on this one to exit may conclude it has
+ finished before the diagnostic output is printed. This may not be
+ what you expect. 2.X had a different scheme which avoided this
+ problem, but caused deadlocks under obscure circumstances, so we
+ are trying something different for 3.0.
+
+- Small changes in control log file naming which make it easier to
+ use valgrind for debugging MPI-based programs. The relevant
+ new flags are --log-file-exactly= and --log-file-qualifier=.
+
+- As part of adding AMD64 support, DWARF2 CFI-based stack unwinding
+ support was added. In principle this means Valgrind can produce
+ meaningful backtraces on x86 code compiled with -fomit-frame-pointer
+ providing you also compile your code with -fasynchronous-unwind-tables.
+
+- The documentation build system has been completely redone.
+ The documentation masters are now in XML format, and from that
+ HTML, PostScript and PDF documentation is generated. As a result
+ the manual is now available in book form. Note that the
+ documentation in the source tarballs is pre-built, so you don't need
+ any XML processing tools to build Valgrind from a tarball.
+
+Changes that are not user-visible:
+
+- The code has been massively overhauled in order to modularise it.
+ As a result we hope it is easier to navigate and understand.
+
+- Lots of code has been rewritten.
+
+BUGS FIXED:
+
+110046 sz == 4 assertion failed
+109810 vex amd64->IR: unhandled instruction bytes: 0xA3 0x4C 0x70 0xD7
+109802 Add a plausible_stack_size command-line parameter ?
+109783 unhandled ioctl TIOCMGET (running hw detection tool discover)
+109780 unhandled ioctl BLKSSZGET (running fdisk -l /dev/hda)
+109718 vex x86->IR: unhandled instruction: ffreep
+109429 AMD64 unhandled syscall: 127 (sigpending)
+109401 false positive uninit in strchr from ld-linux.so.2
+109385 "stabs" parse failure
+109378 amd64: unhandled instruction REP NOP
+109376 amd64: unhandled instruction LOOP Jb
+109363 AMD64 unhandled instruction bytes
+109362 AMD64 unhandled syscall: 24 (sched_yield)
+109358 fork() won't work with valgrind-3.0 SVN
+109332 amd64 unhandled instruction: ADC Ev, Gv
+109314 Bogus memcheck report on amd64
+108883 Crash; vg_memory.c:905 (vgPlain_init_shadow_range):
+ Assertion `vgPlain_defined_init_shadow_page()' failed.
+108349 mincore syscall parameter checked incorrectly
+108059 build infrastructure: small update
+107524 epoll_ctl event parameter checked on EPOLL_CTL_DEL
+107123 Vex dies with unhandled instructions: 0xD9 0x31 0xF 0xAE
+106841 auxmap & openGL problems
+106713 SDL_Init causes valgrind to exit
+106352 setcontext and makecontext not handled correctly
+106293 addresses beyond initial client stack allocation
+ not checked in VALGRIND_DO_LEAK_CHECK
+106283 PIE client programs are loaded at address 0
+105831 Assertion `vgPlain_defined_init_shadow_page()' failed.
+105039 long run-times probably due to memory manager
+104797 valgrind needs to be aware of BLKGETSIZE64
+103594 unhandled instruction: FICOM
+103320 Valgrind 2.4.0 fails to compile with gcc 3.4.3 and -O0
+103168 potentially memory leak in coregrind/ume.c
+102039 bad permissions for mapped region at address 0xB7C73680
+101881 weird assertion problem
+101543 Support fadvise64 syscalls
+75247 x86_64/amd64 support (the biggest "bug" we have ever fixed)
+
+(3.0RC1: 27 July 05, vex r1303, valgrind r4283).
+(3.0.0: 3 August 05, vex r1313, valgrind r4316).
+
+
+
+Stable release 2.4.1 (1 August 2005)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+(The notes for this release have been lost. Sorry! It would have
+contained various bug fixes but no new features.)
+
+
+
+Stable release 2.4.0 (March 2005) -- CHANGES RELATIVE TO 2.2.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.4.0 brings many significant changes and bug fixes. The most
+significant user-visible change is that we no longer supply our own
+pthread implementation. Instead, Valgrind is finally capable of
+running the native thread library, either LinuxThreads or NPTL.
+
+This means our libpthread has gone, along with the bugs associated
+with it. Valgrind now supports the kernel's threading syscalls, and
+lets you use your standard system libpthread. As a result:
+
+* There are many fewer system dependencies and strange library-related
+ bugs. There is a small performance improvement, and a large
+ stability improvement.
+
+* On the downside, Valgrind can no longer report misuses of the POSIX
+ PThreads API. It also means that Helgrind currently does not work.
+ We hope to fix these problems in a future release.
+
+Note that running the native thread libraries does not mean Valgrind
+is able to provide genuine concurrent execution on SMPs. We still
+impose the restriction that only one thread is running at any given
+time.
+
+There are many other significant changes too:
+
+* Memcheck is (once again) the default tool.
+
+* The default stack backtrace is now 12 call frames, rather than 4.
+
+* Suppressions can have up to 25 call frame matches, rather than 4.
+
+* Memcheck and Addrcheck use less memory. Under some circumstances,
+ they no longer allocate shadow memory if there are large regions of
+ memory with the same A/V states - such as an mmaped file.
+
+* The memory-leak detector in Memcheck and Addrcheck has been
+ improved. It now reports more types of memory leak, including
+ leaked cycles. When reporting leaked memory, it can distinguish
+ between directly leaked memory (memory with no references), and
+ indirectly leaked memory (memory only referred to by other leaked
+ memory).
+
+* Memcheck's confusion over the effect of mprotect() has been fixed:
+ previously mprotect could erroneously mark undefined data as
+ defined.
+
+* Signal handling is much improved and should be very close to what
+ you get when running natively.
+
+ One result of this is that Valgrind observes changes to sigcontexts
+ passed to signal handlers. Such modifications will take effect when
+ the signal returns. You will need to run with --single-step=yes to
+ make this useful.
+
+* Valgrind is built in Position Independent Executable (PIE) format if
+ your toolchain supports it. This allows it to take advantage of all
+ the available address space on systems with 4Gbyte user address
+ spaces.
+
+* Valgrind can now run itself (requires PIE support).
+
+* Syscall arguments are now checked for validity. Previously all
+ memory used by syscalls was checked, but now the actual values
+ passed are also checked.
+
+* Syscall wrappers are more robust against bad addresses being passed
+ to syscalls: they will fail with EFAULT rather than killing Valgrind
+ with SIGSEGV.
+
+* Because clone() is directly supported, some non-pthread uses of it
+ will work. Partial sharing (where some resources are shared, and
+ some are not) is not supported.
+
+* open() and readlink() on /proc/self/exe are supported.
+
+BUGS FIXED:
+
+88520 pipe+fork+dup2 kills the main program
+88604 Valgrind Aborts when using $VALGRIND_OPTS and user progra...
+88614 valgrind: vg_libpthread.c:2323 (read): Assertion `read_pt...
+88703 Stabs parser fails to handle ";"
+88886 ioctl wrappers for TIOCMBIS and TIOCMBIC
+89032 valgrind pthread_cond_timedwait fails
+89106 the 'impossible' happened
+89139 Missing sched_setaffinity & sched_getaffinity
+89198 valgrind lacks support for SIOCSPGRP and SIOCGPGRP
+89263 Missing ioctl translations for scsi-generic and CD playing
+89440 tests/deadlock.c line endings
+89481 `impossible' happened: EXEC FAILED
+89663 valgrind 2.2.0 crash on Redhat 7.2
+89792 Report pthread_mutex_lock() deadlocks instead of returnin...
+90111 statvfs64 gives invalid error/warning
+90128 crash+memory fault with stabs generated by gnat for a run...
+90778 VALGRIND_CHECK_DEFINED() not as documented in memcheck.h
+90834 cachegrind crashes at end of program without reporting re...
+91028 valgrind: vg_memory.c:229 (vgPlain_unmap_range): Assertio...
+91162 valgrind crash while debugging drivel 1.2.1
+91199 Unimplemented function
+91325 Signal routing does not propagate the siginfo structure
+91599 Assertion `cv == ((void *)0)'
+91604 rw_lookup clears orig and sends the NULL value to rw_new
+91821 Small problems building valgrind with $top_builddir ne $t...
+91844 signal 11 (SIGSEGV) at get_tcb (libpthread.c:86) in corec...
+92264 UNIMPLEMENTED FUNCTION: pthread_condattr_setpshared
+92331 per-target flags necessitate AM_PROG_CC_C_O
+92420 valgrind doesn't compile with linux 2.6.8.1/9
+92513 Valgrind 2.2.0 generates some warning messages
+92528 vg_symtab2.c:170 (addLoc): Assertion `loc->size > 0' failed.
+93096 unhandled ioctl 0x4B3A and 0x5601
+93117 Tool and core interface versions do not match
+93128 Can't run valgrind --tool=memcheck because of unimplement...
+93174 Valgrind can crash if passed bad args to certain syscalls
+93309 Stack frame in new thread is badly aligned
+93328 Wrong types used with sys_sigprocmask()
+93763 /usr/include/asm/msr.h is missing
+93776 valgrind: vg_memory.c:508 (vgPlain_find_map_space): Asser...
+93810 fcntl() argument checking a bit too strict
+94378 Assertion `tst->sigqueue_head != tst->sigqueue_tail' failed.
+94429 valgrind 2.2.0 segfault with mmap64 in glibc 2.3.3
+94645 Impossible happened: PINSRW mem
+94953 valgrind: the `impossible' happened: SIGSEGV
+95667 Valgrind does not work with any KDE app
+96243 Assertion 'res==0' failed
+96252 stage2 loader of valgrind fails to allocate memory
+96520 All programs crashing at _dl_start (in /lib/ld-2.3.3.so) ...
+96660 ioctl CDROMREADTOCENTRY causes bogus warnings
+96747 After looping in a segfault handler, the impossible happens
+96923 Zero sized arrays crash valgrind trace back with SIGFPE
+96948 valgrind stops with assertion failure regarding mmap2
+96966 valgrind fails when application opens more than 16 sockets
+97398 valgrind: vg_libpthread.c:2667 Assertion failed
+97407 valgrind: vg_mylibc.c:1226 (vgPlain_safe_fd): Assertion `...
+97427 "Warning: invalid file descriptor -1 in syscall close()" ...
+97785 missing backtrace
+97792 build in obj dir fails - autoconf / makefile cleanup
+97880 pthread_mutex_lock fails from shared library (special ker...
+97975 program aborts without ang VG messages
+98129 Failed when open and close file 230000 times using stdio
+98175 Crashes when using valgrind-2.2.0 with a program using al...
+98288 Massif broken
+98303 UNIMPLEMENTED FUNCTION pthread_condattr_setpshared
+98630 failed--compilation missing warnings.pm, fails to make he...
+98756 Cannot valgrind signal-heavy kdrive X server
+98966 valgrinding the JVM fails with a sanity check assertion
+99035 Valgrind crashes while profiling
+99142 loops with message "Signal 11 being dropped from thread 0...
+99195 threaded apps crash on thread start (using QThread::start...
+99348 Assertion `vgPlain_lseek(core_fd, 0, 1) == phdrs[i].p_off...
+99568 False negative due to mishandling of mprotect
+99738 valgrind memcheck crashes on program that uses sigitimer
+99923 0-sized allocations are reported as leaks
+99949 program seg faults after exit()
+100036 "newSuperblock's request for 1048576 bytes failed"
+100116 valgrind: (pthread_cond_init): Assertion `sizeof(* cond) ...
+100486 memcheck reports "valgrind: the `impossible' happened: V...
+100833 second call to "mremap" fails with EINVAL
+101156 (vgPlain_find_map_space): Assertion `(addr & ((1 << 12)-1...
+101173 Assertion `recDepth >= 0 && recDepth < 500' failed
+101291 creating threads in a forked process fails
+101313 valgrind causes different behavior when resizing a window...
+101423 segfault for c++ array of floats
+101562 valgrind massif dies on SIGINT even with signal handler r...
+
+
+Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.0.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.2.0 brings nine months worth of improvements and bug fixes. We
+believe it to be a worthy successor to 2.0.0. There are literally
+hundreds of bug fixes and minor improvements. There are also some
+fairly major user-visible changes:
+
+* A complete overhaul of handling of system calls and signals, and
+ their interaction with threads. In general, the accuracy of the
+ system call, thread and signal simulations is much improved:
+
+ - Blocking system calls behave exactly as they do when running
+ natively (not on valgrind). That is, if a syscall blocks only the
+ calling thread when running natively, than it behaves the same on
+ valgrind. No more mysterious hangs because V doesn't know that some
+ syscall or other, should block only the calling thread.
+
+ - Interrupted syscalls should now give more faithful results.
+
+ - Signal contexts in signal handlers are supported.
+
+* Improvements to NPTL support to the extent that V now works
+ properly on NPTL-only setups.
+
+* Greater isolation between Valgrind and the program being run, so
+ the program is less likely to inadvertently kill Valgrind by
+ doing wild writes.
+
+* Massif: a new space profiling tool. Try it! It's cool, and it'll
+ tell you in detail where and when your C/C++ code is allocating heap.
+ Draws pretty .ps pictures of memory use against time. A potentially
+ powerful tool for making sense of your program's space use.
+
+* File descriptor leakage checks. When enabled, Valgrind will print out
+ a list of open file descriptors on exit.
+
+* Improved SSE2/SSE3 support.
+
+* Time-stamped output; use --time-stamp=yes
+
+
+
+Stable release 2.2.0 (31 August 2004) -- CHANGES RELATIVE TO 2.1.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.2.0 is not much different from 2.1.2, released seven weeks ago.
+A number of bugs have been fixed, most notably #85658, which gave
+problems for quite a few people. There have been many internal
+cleanups, but those are not user visible.
+
+The following bugs have been fixed since 2.1.2:
+
+85658 Assert in coregrind/vg_libpthread.c:2326 (open64) !=
+ (void*)0 failed
+ This bug was reported multiple times, and so the following
+ duplicates of it are also fixed: 87620, 85796, 85935, 86065,
+ 86919, 86988, 87917, 88156
+
+80716 Semaphore mapping bug caused by unmap (sem_destroy)
+ (Was fixed prior to 2.1.2)
+
+86987 semctl and shmctl syscalls family is not handled properly
+
+86696 valgrind 2.1.2 + RH AS2.1 + librt
+
+86730 valgrind locks up at end of run with assertion failure
+ in __pthread_unwind
+
+86641 memcheck doesn't work with Mesa OpenGL/ATI on Suse 9.1
+ (also fixes 74298, a duplicate of this)
+
+85947 MMX/SSE unhandled instruction 'sfence'
+
+84978 Wrong error "Conditional jump or move depends on
+ uninitialised value" resulting from "sbbl %reg, %reg"
+
+86254 ssort() fails when signed int return type from comparison is
+ too small to handle result of unsigned int subtraction
+
+87089 memalign( 4, xxx) makes valgrind assert
+
+86407 Add support for low-level parallel port driver ioctls.
+
+70587 Add timestamps to Valgrind output? (wishlist)
+
+84937 vg_libpthread.c:2505 (se_remap): Assertion `res == 0'
+ (fixed prior to 2.1.2)
+
+86317 cannot load libSDL-1.2.so.0 using valgrind
+
+86989 memcpy from mac_replace_strmem.c complains about
+ uninitialized pointers passed when length to copy is zero
+
+85811 gnu pascal symbol causes segmentation fault; ok in 2.0.0
+
+79138 writing to sbrk()'d memory causes segfault
+
+77369 sched deadlock while signal received during pthread_join
+ and the joined thread exited
+
+88115 In signal handler for SIGFPE, siginfo->si_addr is wrong
+ under Valgrind
+
+78765 Massif crashes on app exit if FP exceptions are enabled
+
+Additionally there are the following changes, which are not
+connected to any bug report numbers, AFAICS:
+
+* Fix scary bug causing mis-identification of SSE stores vs
+ loads and so causing memcheck to sometimes give nonsense results
+ on SSE code.
+
+* Add support for the POSIX message queue system calls.
+
+* Fix to allow 32-bit Valgrind to run on AMD64 boxes. Note: this does
+ NOT allow Valgrind to work with 64-bit executables - only with 32-bit
+ executables on an AMD64 box.
+
+* At configure time, only check whether linux/mii.h can be processed
+ so that we don't generate ugly warnings by trying to compile it.
+
+* Add support for POSIX clocks and timers.
+
+
+
+Developer (cvs head) release 2.1.2 (18 July 2004)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.1.2 contains four months worth of bug fixes and refinements.
+Although officially a developer release, we believe it to be stable
+enough for widespread day-to-day use. 2.1.2 is pretty good, so try it
+first, although there is a chance it won't work. If so then try 2.0.0
+and tell us what went wrong." 2.1.2 fixes a lot of problems present
+in 2.0.0 and is generally a much better product.
+
+Relative to 2.1.1, a large number of minor problems with 2.1.1 have
+been fixed, and so if you use 2.1.1 you should try 2.1.2. Users of
+the last stable release, 2.0.0, might also want to try this release.
+
+The following bugs, and probably many more, have been fixed. These
+are listed at http://bugs.kde.org. Reporting a bug for valgrind in
+the http://bugs.kde.org is much more likely to get you a fix than
+mailing developers directly, so please continue to keep sending bugs
+there.
+
+76869 Crashes when running any tool under Fedora Core 2 test1
+ This fixes the problem with returning from a signal handler
+ when VDSOs are turned off in FC2.
+
+69508 java 1.4.2 client fails with erroneous "stack size too small".
+ This fix makes more of the pthread stack attribute related
+ functions work properly. Java still doesn't work though.
+
+71906 malloc alignment should be 8, not 4
+ All memory returned by malloc/new etc is now at least
+ 8-byte aligned.
+
+81970 vg_alloc_ThreadState: no free slots available
+ (closed because the workaround is simple: increase
+ VG_N_THREADS, rebuild and try again.)
+
+78514 Conditional jump or move depends on uninitialized value(s)
+ (a slight mishanding of FP code in memcheck)
+
+77952 pThread Support (crash) (due to initialisation-ordering probs)
+ (also 85118)
+
+80942 Addrcheck wasn't doing overlap checking as it should.
+78048 return NULL on malloc/new etc failure, instead of asserting
+73655 operator new() override in user .so files often doesn't get picked up
+83060 Valgrind does not handle native kernel AIO
+69872 Create proper coredumps after fatal signals
+82026 failure with new glibc versions: __libc_* functions are not exported
+70344 UNIMPLEMENTED FUNCTION: tcdrain
+81297 Cancellation of pthread_cond_wait does not require mutex
+82872 Using debug info from additional packages (wishlist)
+83025 Support for ioctls FIGETBSZ and FIBMAP
+83340 Support for ioctl HDIO_GET_IDENTITY
+79714 Support for the semtimedop system call.
+77022 Support for ioctls FBIOGET_VSCREENINFO and FBIOGET_FSCREENINFO
+82098 hp2ps ansification (wishlist)
+83573 Valgrind SIGSEGV on execve
+82999 show which cmdline option was erroneous (wishlist)
+83040 make valgrind VPATH and distcheck-clean (wishlist)
+83998 Assertion `newfd > vgPlain_max_fd' failed (see below)
+82722 Unchecked mmap in as_pad leads to mysterious failures later
+78958 memcheck seg faults while running Mozilla
+85416 Arguments with colon (e.g. --logsocket) ignored
+
+
+Additionally there are the following changes, which are not
+connected to any bug report numbers, AFAICS:
+
+* Rearranged address space layout relative to 2.1.1, so that
+ Valgrind/tools will run out of memory later than currently in many
+ circumstances. This is good news esp. for Calltree. It should
+ be possible for client programs to allocate over 800MB of
+ memory when using memcheck now.
+
+* Improved checking when laying out memory. Should hopefully avoid
+ the random segmentation faults that 2.1.1 sometimes caused.
+
+* Support for Fedora Core 2 and SuSE 9.1. Improvements to NPTL
+ support to the extent that V now works properly on NPTL-only setups.
+
+* Renamed the following options:
+ --logfile-fd --> --log-fd
+ --logfile --> --log-file
+ --logsocket --> --log-socket
+ to be consistent with each other and other options (esp. --input-fd).
+
+* Add support for SIOCGMIIPHY, SIOCGMIIREG and SIOCSMIIREG ioctls and
+ improve the checking of other interface related ioctls.
+
+* Fix building with gcc-3.4.1.
+
+* Remove limit on number of semaphores supported.
+
+* Add support for syscalls: set_tid_address (258), acct (51).
+
+* Support instruction "repne movs" -- not official but seems to occur.
+
+* Implement an emulated soft limit for file descriptors in addition to
+ the current reserved area, which effectively acts as a hard limit. The
+ setrlimit system call now simply updates the emulated limits as best
+ as possible - the hard limit is not allowed to move at all and just
+ returns EPERM if you try and change it. This should stop reductions
+ in the soft limit causing assertions when valgrind tries to allocate
+ descriptors from the reserved area.
+ (This actually came from bug #83998).
+
+* Major overhaul of Cachegrind implementation. First user-visible change
+ is that cachegrind.out files are now typically 90% smaller than they
+ used to be; code annotation times are correspondingly much smaller.
+ Second user-visible change is that hit/miss counts for code that is
+ unloaded at run-time is no longer dumped into a single "discard" pile,
+ but accurately preserved.
+
+* Client requests for telling valgrind about memory pools.
+
+
+
+Developer (cvs head) release 2.1.1 (12 March 2004)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2.1.1 contains some internal structural changes needed for V's
+long-term future. These don't affect end-users. Most notable
+user-visible changes are:
+
+* Greater isolation between Valgrind and the program being run, so
+ the program is less likely to inadvertently kill Valgrind by
+ doing wild writes.
+
+* Massif: a new space profiling tool. Try it! It's cool, and it'll
+ tell you in detail where and when your C/C++ code is allocating heap.
+ Draws pretty .ps pictures of memory use against time. A potentially
+ powerful tool for making sense of your program's space use.
+
+* Fixes for many bugs, including support for more SSE2/SSE3 instructions,
+ various signal/syscall things, and various problems with debug
+ info readers.
+
+* Support for glibc-2.3.3 based systems.
+
+We are now doing automatic overnight build-and-test runs on a variety
+of distros. As a result, we believe 2.1.1 builds and runs on:
+Red Hat 7.2, 7.3, 8.0, 9, Fedora Core 1, SuSE 8.2, SuSE 9.
+
+
+The following bugs, and probably many more, have been fixed. These
+are listed at http://bugs.kde.org. Reporting a bug for valgrind in
+the http://bugs.kde.org is much more likely to get you a fix than
+mailing developers directly, so please continue to keep sending bugs
+there.
+
+69616 glibc 2.3.2 w/NPTL is massively different than what valgrind expects
+69856 I don't know how to instrument MMXish stuff (Helgrind)
+73892 valgrind segfaults starting with Objective-C debug info
+ (fix for S-type stabs)
+73145 Valgrind complains too much about close(<reserved fd>)
+73902 Shadow memory allocation seems to fail on RedHat 8.0
+68633 VG_N_SEMAPHORES too low (V itself was leaking semaphores)
+75099 impossible to trace multiprocess programs
+76839 the `impossible' happened: disInstr: INT but not 0x80 !
+76762 vg_to_ucode.c:3748 (dis_push_segreg): Assertion `sz == 4' failed.
+76747 cannot include valgrind.h in c++ program
+76223 parsing B(3,10) gave NULL type => impossible happens
+75604 shmdt handling problem
+76416 Problems with gcc 3.4 snap 20040225
+75614 using -gstabs when building your programs the `impossible' happened
+75787 Patch for some CDROM ioctls CDORM_GET_MCN, CDROM_SEND_PACKET,
+75294 gcc 3.4 snapshot's libstdc++ have unsupported instructions.
+ (REP RET)
+73326 vg_symtab2.c:272 (addScopeRange): Assertion `range->size > 0' failed.
+72596 not recognizing __libc_malloc
+69489 Would like to attach ddd to running program
+72781 Cachegrind crashes with kde programs
+73055 Illegal operand at DXTCV11CompressBlockSSE2 (more SSE opcodes)
+73026 Descriptor leak check reports port numbers wrongly
+71705 README_MISSING_SYSCALL_OR_IOCTL out of date
+72643 Improve support for SSE/SSE2 instructions
+72484 valgrind leaves it's own signal mask in place when execing
+72650 Signal Handling always seems to restart system calls
+72006 The mmap system call turns all errors in ENOMEM
+71781 gdb attach is pretty useless
+71180 unhandled instruction bytes: 0xF 0xAE 0x85 0xE8
+69886 writes to zero page cause valgrind to assert on exit
+71791 crash when valgrinding gimp 1.3 (stabs reader problem)
+69783 unhandled syscall: 218
+69782 unhandled instruction bytes: 0x66 0xF 0x2B 0x80
+70385 valgrind fails if the soft file descriptor limit is less
+ than about 828
+69529 "rep; nop" should do a yield
+70827 programs with lots of shared libraries report "mmap failed"
+ for some of them when reading symbols
+71028 glibc's strnlen is optimised enough to confuse valgrind
+
+
+
+
+Unstable (cvs head) release 2.1.0 (15 December 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+For whatever it's worth, 2.1.0 actually seems pretty darn stable to me
+(Julian). It looks eminently usable, and given that it fixes some
+significant bugs, may well be worth using on a day-to-day basis.
+2.1.0 is known to build and pass regression tests on: SuSE 9, SuSE
+8.2, RedHat 8.
+
+2.1.0 most notably includes Jeremy Fitzhardinge's complete overhaul of
+handling of system calls and signals, and their interaction with
+threads. In general, the accuracy of the system call, thread and
+signal simulations is much improved. Specifically:
+
+- Blocking system calls behave exactly as they do when running
+ natively (not on valgrind). That is, if a syscall blocks only the
+ calling thread when running natively, than it behaves the same on
+ valgrind. No more mysterious hangs because V doesn't know that some
+ syscall or other, should block only the calling thread.
+
+- Interrupted syscalls should now give more faithful results.
+
+- Finally, signal contexts in signal handlers are supported. As a
+ result, konqueror on SuSE 9 no longer segfaults when notified of
+ file changes in directories it is watching.
+
+Other changes:
+
+- Robert Walsh's file descriptor leakage checks. When enabled,
+ Valgrind will print out a list of open file descriptors on
+ exit. Along with each file descriptor, Valgrind prints out a stack
+ backtrace of where the file was opened and any details relating to the
+ file descriptor such as the file name or socket details.
+ To use, give: --track-fds=yes
+
+- Implemented a few more SSE/SSE2 instructions.
+
+- Less crud on the stack when you do 'where' inside a GDB attach.
+
+- Fixed the following bugs:
+ 68360: Valgrind does not compile against 2.6.0-testX kernels
+ 68525: CVS head doesn't compile on C90 compilers
+ 68566: pkgconfig support (wishlist)
+ 68588: Assertion `sz == 4' failed in vg_to_ucode.c (disInstr)
+ 69140: valgrind not able to explicitly specify a path to a binary.
+ 69432: helgrind asserts encountering a MutexErr when there are
+ EraserErr suppressions
+
+- Increase the max size of the translation cache from 200k average bbs
+ to 300k average bbs. Programs on the size of OOo (680m17) are
+ thrashing the cache at the smaller size, creating large numbers of
+ retranslations and wasting significant time as a result.
+
+
+
+Stable release 2.0.0 (5 Nov 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+2.0.0 improves SSE/SSE2 support, fixes some minor bugs, and
+improves support for SuSE 9 and the Red Hat "Severn" beta.
+
+- Further improvements to SSE/SSE2 support. The entire test suite of
+ the GNU Scientific Library (gsl-1.4) compiled with Intel Icc 7.1
+ 20030307Z '-g -O -xW' now works. I think this gives pretty good
+ coverage of SSE/SSE2 floating point instructions, or at least the
+ subset emitted by Icc.
+
+- Also added support for the following instructions:
+ MOVNTDQ UCOMISD UNPCKLPS UNPCKHPS SQRTSS
+ PUSH/POP %{FS,GS}, and PUSH %CS (Nb: there is no POP %CS).
+
+- CFI support for GDB version 6. Needed to enable newer GDBs
+ to figure out where they are when using --gdb-attach=yes.
+
+- Fix this:
+ mc_translate.c:1091 (memcheck_instrument): Assertion
+ `u_in->size == 4 || u_in->size == 16' failed.
+
+- Return an error rather than panicing when given a bad socketcall.
+
+- Fix checking of syscall rt_sigtimedwait().
+
+- Implement __NR_clock_gettime (syscall 265). Needed on Red Hat Severn.
+
+- Fixed bug in overlap check in strncpy() -- it was assuming the src was 'n'
+ bytes long, when it could be shorter, which could cause false
+ positives.
+
+- Support use of select() for very large numbers of file descriptors.
+
+- Don't fail silently if the executable is statically linked, or is
+ setuid/setgid. Print an error message instead.
+
+- Support for old DWARF-1 format line number info.
+
+
+
+Snapshot 20031012 (12 October 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Three months worth of bug fixes, roughly. Most significant single
+change is improved SSE/SSE2 support, mostly thanks to Dirk Mueller.
+
+20031012 builds on Red Hat Fedora ("Severn") but doesn't really work
+(curiously, mozilla runs OK, but a modest "ls -l" bombs). I hope to
+get a working version out soon. It may or may not work ok on the
+forthcoming SuSE 9; I hear positive noises about it but haven't been
+able to verify this myself (not until I get hold of a copy of 9).
+
+A detailed list of changes, in no particular order:
+
+- Describe --gen-suppressions in the FAQ.
+
+- Syscall __NR_waitpid supported.
+
+- Minor MMX bug fix.
+
+- -v prints program's argv[] at startup.
+
+- More glibc-2.3 suppressions.
+
+- Suppressions for stack underrun bug(s) in the c++ support library
+ distributed with Intel Icc 7.0.
+
+- Fix problems reading /proc/self/maps.
+
+- Fix a couple of messages that should have been suppressed by -q,
+ but weren't.
+
+- Make Addrcheck understand "Overlap" suppressions.
+
+- At startup, check if program is statically linked and bail out if so.
+
+- Cachegrind: Auto-detect Intel Pentium-M, also VIA Nehemiah
+
+- Memcheck/addrcheck: minor speed optimisations
+
+- Handle syscall __NR_brk more correctly than before.
+
+- Fixed incorrect allocate/free mismatch errors when using
+ operator new(unsigned, std::nothrow_t const&)
+ operator new[](unsigned, std::nothrow_t const&)
+
+- Support POSIX pthread spinlocks.
+
+- Fixups for clean compilation with gcc-3.3.1.
+
+- Implemented more opcodes:
+ - push %es
+ - push %ds
+ - pop %es
+ - pop %ds
+ - movntq
+ - sfence
+ - pshufw
+ - pavgb
+ - ucomiss
+ - enter
+ - mov imm32, %esp
+ - all "in" and "out" opcodes
+ - inc/dec %esp
+ - A whole bunch of SSE/SSE2 instructions
+
+- Memcheck: don't bomb on SSE/SSE2 code.
+
+
+Snapshot 20030725 (25 July 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Fixes some minor problems in 20030716.
+
+- Fix bugs in overlap checking for strcpy/memcpy etc.
+
+- Do overlap checking with Addrcheck as well as Memcheck.
+
+- Fix this:
+ Memcheck: the `impossible' happened:
+ get_error_name: unexpected type
+
+- Install headers needed to compile new skins.
+
+- Remove leading spaces and colon in the LD_LIBRARY_PATH / LD_PRELOAD
+ passed to non-traced children.
+
+- Fix file descriptor leak in valgrind-listener.
+
+- Fix longstanding bug in which the allocation point of a
+ block resized by realloc was not correctly set. This may
+ have caused confusing error messages.
+
+
+Snapshot 20030716 (16 July 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+20030716 is a snapshot of our current CVS head (development) branch.
+This is the branch which will become valgrind-2.0. It contains
+significant enhancements over the 1.9.X branch.
+
+Despite this being a snapshot of the CVS head, it is believed to be
+quite stable -- at least as stable as 1.9.6 or 1.0.4, if not more so
+-- and therefore suitable for widespread use. Please let us know asap
+if it causes problems for you.
+
+Two reasons for releasing a snapshot now are:
+
+- It's been a while since 1.9.6, and this snapshot fixes
+ various problems that 1.9.6 has with threaded programs
+ on glibc-2.3.X based systems.
+
+- So as to make available improvements in the 2.0 line.
+
+Major changes in 20030716, as compared to 1.9.6:
+
+- More fixes to threading support on glibc-2.3.1 and 2.3.2-based
+ systems (SuSE 8.2, Red Hat 9). If you have had problems
+ with inconsistent/illogical behaviour of errno, h_errno or the DNS
+ resolver functions in threaded programs, 20030716 should improve
+ matters. This snapshot seems stable enough to run OpenOffice.org
+ 1.1rc on Red Hat 7.3, SuSE 8.2 and Red Hat 9, and that's a big
+ threaded app if ever I saw one.
+
+- Automatic generation of suppression records; you no longer
+ need to write them by hand. Use --gen-suppressions=yes.
+
+- strcpy/memcpy/etc check their arguments for overlaps, when
+ running with the Memcheck or Addrcheck skins.
+
+- malloc_usable_size() is now supported.
+
+- new client requests:
+ - VALGRIND_COUNT_ERRORS, VALGRIND_COUNT_LEAKS:
+ useful with regression testing
+ - VALGRIND_NON_SIMD_CALL[0123]: for running arbitrary functions
+ on real CPU (use with caution!)
+
+- The GDB attach mechanism is more flexible. Allow the GDB to
+ be run to be specified by --gdb-path=/path/to/gdb, and specify
+ which file descriptor V will read its input from with
+ --input-fd=<number>.
+
+- Cachegrind gives more accurate results (wasn't tracking instructions in
+ malloc() and friends previously, is now).
+
+- Complete support for the MMX instruction set.
+
+- Partial support for the SSE and SSE2 instruction sets. Work for this
+ is ongoing. About half the SSE/SSE2 instructions are done, so
+ some SSE based programs may work. Currently you need to specify
+ --skin=addrcheck. Basically not suitable for real use yet.
+
+- Significant speedups (10%-20%) for standard memory checking.
+
+- Fix assertion failure in pthread_once().
+
+- Fix this:
+ valgrind: vg_intercept.c:598 (vgAllRoadsLeadToRome_select):
+ Assertion `ms_end >= ms_now' failed.
+
+- Implement pthread_mutexattr_setpshared.
+
+- Understand Pentium 4 branch hints. Also implemented a couple more
+ obscure x86 instructions.
+
+- Lots of other minor bug fixes.
+
+- We have a decent regression test system, for the first time.
+ This doesn't help you directly, but it does make it a lot easier
+ for us to track the quality of the system, especially across
+ multiple linux distributions.
+
+ You can run the regression tests with 'make regtest' after 'make
+ install' completes. On SuSE 8.2 and Red Hat 9 I get this:
+
+ == 84 tests, 0 stderr failures, 0 stdout failures ==
+
+ On Red Hat 8, I get this:
+
+ == 84 tests, 2 stderr failures, 1 stdout failure ==
+ corecheck/tests/res_search (stdout)
+ memcheck/tests/sigaltstack (stderr)
+
+ sigaltstack is probably harmless. res_search doesn't work
+ on R H 8 even running natively, so I'm not too worried.
+
+ On Red Hat 7.3, a glibc-2.2.5 system, I get these harmless failures:
+
+ == 84 tests, 2 stderr failures, 1 stdout failure ==
+ corecheck/tests/pth_atfork1 (stdout)
+ corecheck/tests/pth_atfork1 (stderr)
+ memcheck/tests/sigaltstack (stderr)
+
+ You need to run on a PII system, at least, since some tests
+ contain P6-specific instructions, and the test machine needs
+ access to the internet so that corecheck/tests/res_search
+ (a test that the DNS resolver works) can function.
+
+As ever, thanks for the vast amount of feedback :) and bug reports :(
+We may not answer all messages, but we do at least look at all of
+them, and tend to fix the most frequently reported bugs.
+
+
+
+Version 1.9.6 (7 May 2003 or thereabouts)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Major changes in 1.9.6:
+
+- Improved threading support for glibc >= 2.3.2 (SuSE 8.2,
+ RedHat 9, to name but two ...) It turned out that 1.9.5
+ had problems with threading support on glibc >= 2.3.2,
+ usually manifested by threaded programs deadlocking in system calls,
+ or running unbelievably slowly. Hopefully these are fixed now. 1.9.6
+ is the first valgrind which gives reasonable support for
+ glibc-2.3.2. Also fixed a 2.3.2 problem with pthread_atfork().
+
+- Majorly expanded FAQ.txt. We've added workarounds for all
+ common problems for which a workaround is known.
+
+Minor changes in 1.9.6:
+
+- Fix identification of the main thread's stack. Incorrect
+ identification of it was causing some on-stack addresses to not get
+ identified as such. This only affected the usefulness of some error
+ messages; the correctness of the checks made is unchanged.
+
+- Support for kernels >= 2.5.68.
+
+- Dummy implementations of __libc_current_sigrtmin,
+ __libc_current_sigrtmax and __libc_allocate_rtsig, hopefully
+ good enough to keep alive programs which previously died for lack of
+ them.
+
+- Fix bug in the VALGRIND_DISCARD_TRANSLATIONS client request.
+
+- Fix bug in the DWARF2 debug line info loader, when instructions
+ following each other have source lines far from each other
+ (e.g. with inlined functions).
+
+- Debug info reading: read symbols from both "symtab" and "dynsym"
+ sections, rather than merely from the one that comes last in the
+ file.
+
+- New syscall support: prctl(), creat(), lookup_dcookie().
+
+- When checking calls to accept(), recvfrom(), getsocketopt(),
+ don't complain if buffer values are NULL.
+
+- Try and avoid assertion failures in
+ mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
+
+- Minor bug fixes in cg_annotate.
+
+
+
+Version 1.9.5 (7 April 2003)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It occurs to me that it would be helpful for valgrind users to record
+in the source distribution the changes in each release. So I now
+attempt to mend my errant ways :-) Changes in this and future releases
+will be documented in the NEWS file in the source distribution.
+
+Major changes in 1.9.5:
+
+- (Critical bug fix): Fix a bug in the FPU simulation. This was
+ causing some floating point conditional tests not to work right.
+ Several people reported this. If you had floating point code which
+ didn't work right on 1.9.1 to 1.9.4, it's worth trying 1.9.5.
+
+- Partial support for Red Hat 9. RH9 uses the new Native Posix
+ Threads Library (NPTL), instead of the older LinuxThreads.
+ This potentially causes problems with V which will take some
+ time to correct. In the meantime we have partially worked around
+ this, and so 1.9.5 works on RH9. Threaded programs still work,
+ but they may deadlock, because some system calls (accept, read,
+ write, etc) which should be nonblocking, in fact do block. This
+ is a known bug which we are looking into.
+
+ If you can, your best bet (unfortunately) is to avoid using
+ 1.9.5 on a Red Hat 9 system, or on any NPTL-based distribution.
+ If your glibc is 2.3.1 or earlier, you're almost certainly OK.
+
+Minor changes in 1.9.5:
+
+- Added some #errors to valgrind.h to ensure people don't include
+ it accidentally in their sources. This is a change from 1.0.X
+ which was never properly documented. The right thing to include
+ is now memcheck.h. Some people reported problems and strange
+ behaviour when (incorrectly) including valgrind.h in code with
+ 1.9.1 -- 1.9.4. This is no longer possible.
+
+- Add some __extension__ bits and pieces so that gcc configured
+ for valgrind-checking compiles even with -Werror. If you
+ don't understand this, ignore it. Of interest to gcc developers
+ only.
+
+- Removed a pointless check which caused problems interworking
+ with Clearcase. V would complain about shared objects whose
+ names did not end ".so", and refuse to run. This is now fixed.
+ In fact it was fixed in 1.9.4 but not documented.
+
+- Fixed a bug causing an assertion failure of "waiters == 1"
+ somewhere in vg_scheduler.c, when running large threaded apps,
+ notably MySQL.
+
+- Add support for the munlock system call (124).
+
+Some comments about future releases:
+
+1.9.5 is, we hope, the most stable Valgrind so far. It pretty much
+supersedes the 1.0.X branch. If you are a valgrind packager, please
+consider making 1.9.5 available to your users. You can regard the
+1.0.X branch as obsolete: 1.9.5 is stable and vastly superior. There
+are no plans at all for further releases of the 1.0.X branch.
+
+If you want a leading-edge valgrind, consider building the cvs head
+(from SourceForge), or getting a snapshot of it. Current cool stuff
+going in includes MMX support (done); SSE/SSE2 support (in progress),
+a significant (10-20%) performance improvement (done), and the usual
+large collection of minor changes. Hopefully we will be able to
+improve our NPTL support, but no promises.
+
# Also set the (expected/last) release date here.
# Do not forget to rerun ./autogen.sh
m4_define([v_major_ver], [3])
-m4_define([v_minor_ver], [22])
+m4_define([v_minor_ver], [23])
m4_define([v_micro_ver], [0])
-m4_define([v_suffix_ver], [])
-m4_define([v_rel_date], ["31 Oct 2023"])
+m4_define([v_suffix_ver], [GIT])
+m4_define([v_rel_date], ["?? Apr 2024"])
m4_define([v_version],
m4_if(v_suffix_ver, [],
[v_major_ver.v_minor_ver.v_micro_ver],