Valgrind Changelog

What's new in Valgrind 3.11.0

Sep 23, 2015
  • 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 ' shows the validity bits of bytes at . 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 ' 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 ' 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 []' will show the recorded accesses for (or 1) bytes at .
  • 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=, 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= 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= 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= 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() [..]
  • 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 insnsimmediate 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 wwwupdate 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 dcbflthen 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
  • 351534 Fix incorrect header guard
  • 351632 Fix UNKNOWN fcntl 97 on OS X 10.11
  • 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)

New in Valgrind 3.10.1 (Nov 27, 2014)

  • 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.
  • 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
  • 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
  • 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.

New in Valgrind 3.10.0 (Sep 12, 2014)

  • 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:
  • Race condition error message involving heap allocated blocks also   show the thread number that allocated the raced-on block.
  • All locks referenced by an error message are now announced.   Previously, some error messages only showed the lock addresses.
  • 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 " 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=" 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 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
  • 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

New in Valgrind 3.9.0 (Apr 26, 2014)

  • 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 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

New in Valgrind 3.8.1 (Mar 12, 2013)

  • 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

New in Valgrind 3.6.1 (Jun 16, 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:
  • 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

New in Valgrind 3.5.0 (Jul 23, 2010)

  • 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.