On 09/03/2014 02:47 PM, Phil Longstaff wrote:
> Is more information available about these changes?
> I'd like to see more detail on "improved error messages"
> and "stack traces through inlined function calls".

Sure.  Here is the entire NEWS entry for the release so far.

J


Release 3.10.0 (mid September 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3.10.0 is not yet released.  This is a beta of 3.10.0.

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

* ================== 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.  By default, stack
  unwinding now makes 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 [yes].

  In the 3.10.0 beta release(s), inlined unwinding is only enabled for
  Memcheck and Helgrind.  It is hoped to enable it for all tools in
  the 3.10.0 final release.

* 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
199144  == 278972
232510  make distcheck fails
249435  Analyzing wine programs with callgrind triggers a crash
278972  support for inlined function calls in stacktraces and suppression
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)
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
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
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
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
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}
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
337871  deprecate --db-attach
338024  inlined functions are not shown if DW_AT_ranges is used
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
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
338703  helgrind on arm-linux gets false positives in dynamic loader
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

(3.10.0.BETA1: 2 September 2014, vex r2940, valgrind r14428)


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to