From owner-p4-projects@FreeBSD.ORG Fri Sep 25 13:48:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0B68106568F; Fri, 25 Sep 2009 13:48:30 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83F431065672 for ; Fri, 25 Sep 2009 13:48:30 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 70BDE8FC25 for ; Fri, 25 Sep 2009 13:48:30 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n8PDmUTn022629 for ; Fri, 25 Sep 2009 13:48:30 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n8PDmTS4022627 for perforce@freebsd.org; Fri, 25 Sep 2009 13:48:29 GMT (envelope-from stas@freebsd.org) Date: Fri, 25 Sep 2009 13:48:29 GMT Message-Id: <200909251348.n8PDmTS4022627@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 168881 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Sep 2009 13:48:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=168881 Change 168881 by stas@stas_yandex on 2009/09/25 13:48:13 - Integrate. Affected files ... .. //depot/projects/valgrind/Makefile.am#15 integrate .. //depot/projects/valgrind/NEWS#4 integrate .. //depot/projects/valgrind/VEX/Makefile-gcc#2 integrate .. //depot/projects/valgrind/VEX/priv/guest_generic_bb_to_IR.c#2 integrate .. //depot/projects/valgrind/VEX/priv/main_main.c#2 integrate .. //depot/projects/valgrind/VEX/useful/smchash.c#1 branch .. //depot/projects/valgrind/cachegrind/docs/cg-manual.xml#5 integrate .. //depot/projects/valgrind/cachegrind/tests/filter_stderr#5 integrate .. //depot/projects/valgrind/callgrind/callgrind_annotate.in#4 integrate .. //depot/projects/valgrind/callgrind/dump.c#5 integrate .. //depot/projects/valgrind/callgrind/main.c#4 integrate .. //depot/projects/valgrind/callgrind/tests/filter_stderr#4 integrate .. //depot/projects/valgrind/callgrind/threads.c#4 integrate .. //depot/projects/valgrind/configure.in#16 integrate .. //depot/projects/valgrind/coregrind/launcher-linux.c#6 integrate .. //depot/projects/valgrind/coregrind/m_debuginfo/debuginfo.c#9 integrate .. //depot/projects/valgrind/coregrind/m_demangle/cp-demangle.c#5 integrate .. //depot/projects/valgrind/coregrind/m_errormgr.c#5 integrate .. //depot/projects/valgrind/coregrind/m_main.c#15 integrate .. //depot/projects/valgrind/coregrind/m_signals.c#13 integrate .. //depot/projects/valgrind/coregrind/m_stacktrace.c#6 integrate .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-darwin.h#2 integrate .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-darwin.c#2 integrate .. //depot/projects/valgrind/coregrind/m_tooliface.c#4 integrate .. //depot/projects/valgrind/coregrind/m_xarray.c#4 integrate .. //depot/projects/valgrind/coregrind/pub_core_tooliface.h#4 integrate .. //depot/projects/valgrind/docs/internals/release-HOWTO.txt#4 integrate .. //depot/projects/valgrind/docs/internals/xml-output-protocol4.txt#2 integrate .. //depot/projects/valgrind/docs/xml/manual-core.xml#5 integrate .. //depot/projects/valgrind/docs/xml/vg-entities.xml#4 integrate .. //depot/projects/valgrind/drd/docs/drd-manual.xml#3 integrate .. //depot/projects/valgrind/drd/drd.h#3 integrate .. //depot/projects/valgrind/drd/drd_clientreq.c#3 integrate .. //depot/projects/valgrind/drd/drd_error.c#3 integrate .. //depot/projects/valgrind/drd/drd_error.h#3 integrate .. //depot/projects/valgrind/drd/tests/Makefile.am#4 integrate .. //depot/projects/valgrind/drd/tests/annotate_hbefore.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_hbefore.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_rw.c#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_rw.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_rw.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_rw2.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_rw2.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_write.c#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_write.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_write.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_write2.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_ignore_write2.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_publish_hg.c#1 branch .. //depot/projects/valgrind/drd/tests/annotate_publish_hg.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_publish_hg.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_rwlock.c#2 integrate .. //depot/projects/valgrind/drd/tests/annotate_rwlock_hg.stderr.exp#1 branch .. //depot/projects/valgrind/drd/tests/annotate_rwlock_hg.vgtest#1 branch .. //depot/projects/valgrind/drd/tests/annotate_trace_memory.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/atomic_var.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/bar_bad.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/compare_error_count_with#1 branch .. //depot/projects/valgrind/drd/tests/filter_stderr#4 integrate .. //depot/projects/valgrind/drd/tests/fp_race.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/hg03_inherit.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/hg04_race.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/hg05_race2.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/hg05_race2.stderr.exp-powerpc#3 integrate .. //depot/projects/valgrind/drd/tests/hold_lock_1.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/hold_lock_2.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/pth_barrier_race.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/pth_barrier_reinit.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/pth_cancel_locked.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/pth_cancel_locked.stderr.exp-darwin#2 integrate .. //depot/projects/valgrind/drd/tests/pth_cond_race.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.stderr.exp1#2 integrate .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.stderr.exp2#2 integrate .. //depot/projects/valgrind/drd/tests/pth_mutex_reinit.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/qt4_rwlock.cpp#3 integrate .. //depot/projects/valgrind/drd/tests/recursive_mutex.stderr.exp-darwin#2 integrate .. //depot/projects/valgrind/drd/tests/recursive_mutex.stderr.exp-linux#2 integrate .. //depot/projects/valgrind/drd/tests/rwlock_race.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/rwlock_race.stderr.exp2#3 integrate .. //depot/projects/valgrind/drd/tests/rwlock_type_checking.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/sem_as_mutex.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/sem_as_mutex3.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/sem_open.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/sem_open3.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/tc01_simple_race.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc04_free_lock.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc09_bad_unlock.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8#3 integrate .. //depot/projects/valgrind/drd/tests/tc10_rec_lock.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc12_rwl_trivial.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc16_byterace.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc18_semabuse.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tc19_shadowmem.stderr.exp-32bit#2 integrate .. //depot/projects/valgrind/drd/tests/tc19_shadowmem.stderr.exp-64bit#2 integrate .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.3#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.vgtest#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8#3 delete .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.vgtest#3 delete .. //depot/projects/valgrind/drd/tests/tc22_exit_w_lock.stderr.exp-32bit#3 integrate .. //depot/projects/valgrind/drd/tests/tc22_exit_w_lock.stderr.exp-64bit#3 integrate .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp-darwin#2 integrate .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp-linux-ppc#2 integrate .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86#2 integrate .. //depot/projects/valgrind/drd/tests/thread_name.stderr.exp#2 integrate .. //depot/projects/valgrind/drd/tests/trylock.stderr.exp#3 integrate .. //depot/projects/valgrind/drd/tests/tsan_unittest.cpp#2 integrate .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/fldcw_check.S#2 integrate .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/ll.S#2 integrate .. //depot/projects/valgrind/exp-bbv/tests/x86-linux/ll.S#2 integrate .. //depot/projects/valgrind/exp-ptrcheck/pc_common.c#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/pc_common.h#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/pc_main.c#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/bad_percentify.stderr.exp-glibc28-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/base.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/base.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/ccc.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/ccc.stderr.exp-glibc27-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/ccc.stderr.exp-glibc28-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/filter_stderr#4 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/fp.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/globalerr.stderr.exp-glibc28-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/hackedbz2.stderr.exp-glibc28-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/hp_bounds.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/hp_dangle.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/hsg.stderr.exp#2 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/idiv.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/imul.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/justify.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/mm.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/neg.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/not.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/or.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/partial_bad.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/partial_bad.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/partial_good.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/partial_good.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/preen_invars.stderr.exp-glibc28-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/pth_create.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/pth_specific.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/realloc.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/realloc.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/stackerr.stderr.exp-glibc27-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/stackerr.stderr.exp-glibc28-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/strlen_bad.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/sub.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/supp.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/suppgen.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/syscall.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/unaligned.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/unaligned.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/xor.stderr.exp#3 integrate .. //depot/projects/valgrind/exp-ptrcheck/tests/zero.stderr.exp#3 integrate .. //depot/projects/valgrind/glibc-2.X-drd.supp#3 integrate .. //depot/projects/valgrind/helgrind/docs/hg-manual.xml#4 integrate .. //depot/projects/valgrind/helgrind/helgrind.h#5 integrate .. //depot/projects/valgrind/helgrind/hg_errors.c#3 integrate .. //depot/projects/valgrind/helgrind/hg_errors.h#3 integrate .. //depot/projects/valgrind/helgrind/hg_main.c#5 integrate .. //depot/projects/valgrind/helgrind/libhb_core.c#3 integrate .. //depot/projects/valgrind/helgrind/tests/Makefile.am#6 integrate .. //depot/projects/valgrind/helgrind/tests/annotate_hbefore.c#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_hbefore.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_hbefore.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_hbefore.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_rwlock.c#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_rwlock.stderr.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_rwlock.stdout.exp#1 branch .. //depot/projects/valgrind/helgrind/tests/annotate_rwlock.vgtest#1 branch .. //depot/projects/valgrind/helgrind/tests/bar_bad.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/hg02_deadlock.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/hg03_inherit.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/hg04_race.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/hg05_race2.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/pth_barrier1.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/pth_barrier2.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/pth_barrier3.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/rwlock_race.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc01_simple_race.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc04_free_lock.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc05_simple_race.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc06_two_races.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc09_bad_unlock.stderr.exp-glibc23-amd64#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc09_bad_unlock.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc09_bad_unlock.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc10_rec_lock.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc12_rwl_trivial.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc12_rwl_trivial.stderr.exp-darwin970#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc13_laog1.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc14_laog_dinphils.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc15_laog_lockdel.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc16_byterace.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc18_semabuse.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc18_semabuse.stderr.exp-glibc28-amd64#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc19_shadowmem.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc20_verifywrap.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc20_verifywrap.stderr.exp-glibc27-amd64#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc20_verifywrap.vgtest#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc21_pthonce.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc22_exit_w_lock.stderr.exp#2 integrate .. //depot/projects/valgrind/helgrind/tests/tc22_exit_w_lock.vgtest#3 integrate .. //depot/projects/valgrind/helgrind/tests/tc23_bogus_condwait.stderr.exp#2 integrate .. //depot/projects/valgrind/include/pub_tool_basics.h#7 integrate .. //depot/projects/valgrind/include/pub_tool_libcprint.h#4 integrate .. //depot/projects/valgrind/include/pub_tool_stacktrace.h#4 integrate .. //depot/projects/valgrind/include/pub_tool_tooliface.h#4 integrate .. //depot/projects/valgrind/include/pub_tool_xarray.h#3 integrate .. //depot/projects/valgrind/include/vki/vki-darwin.h#2 integrate .. //depot/projects/valgrind/lackey/tests/filter_stderr#4 integrate .. //depot/projects/valgrind/massif/tests/filter_stderr#5 integrate .. //depot/projects/valgrind/memcheck/docs/mc-manual.xml#4 integrate .. //depot/projects/valgrind/memcheck/mc_errors.c#3 integrate .. //depot/projects/valgrind/memcheck/mc_include.h#4 integrate .. //depot/projects/valgrind/memcheck/mc_leakcheck.c#4 integrate .. //depot/projects/valgrind/memcheck/mc_main.c#5 integrate .. //depot/projects/valgrind/memcheck/mc_malloc_wrappers.c#4 integrate .. //depot/projects/valgrind/memcheck/tests/Makefile.am#6 integrate .. //depot/projects/valgrind/memcheck/tests/addressable.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/amd64/defcfaexpr.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/amd64/insn_basic.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_basic.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_basic.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_fpu.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_fpu.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_fpu.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_mmx.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_mmx.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_mmx.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_sse.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_sse.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_sse.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_sse2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_sse2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/insn_sse2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/amd64/xor-undef-amd64.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badaddrvalue.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badfree-2trace.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badfree.c#3 integrate .. //depot/projects/valgrind/memcheck/tests/badfree.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badjump.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/badjump2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badloop.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badpoll.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/badrw.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/brk2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/buflen_check.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/clientperm.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/custom_alloc.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/darwin/aio.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/darwin/scalar.c#2 integrate .. //depot/projects/valgrind/memcheck/tests/darwin/scalar.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/darwin/scalar_nocancel.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/describe-block.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/doublefree.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/erringfds.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/error_counts.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/errs1.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/execve.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/execve2.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/exitprog.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/filter_allocs#5 integrate .. //depot/projects/valgrind/memcheck/tests/fprw.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/fwrite.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/inits.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/inline.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-cases-full.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/leak-cycle.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/leak-pool-0.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-pool-1.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-pool-2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-pool-3.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-pool-4.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-pool-5.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/leak-tree.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/linux-syscalls-2007.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/linux-syslog-syscall.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/linux/brk.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/linux/capget.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/linux/lsframe1.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/linux/lsframe2.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/linux/timerfd-syscall.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/linux/with-space.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/long_namespace_xml.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/mallinfo.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/malloc1.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/malloc2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/manuel1.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/manuel2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/manuel2.stderr.exp64#3 integrate .. //depot/projects/valgrind/memcheck/tests/manuel3.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/memalign_test.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/memcmptest.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/memcmptest.stderr.exp2#3 integrate .. //depot/projects/valgrind/memcheck/tests/mempool.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/metadata.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/mismatches.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/new_override.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/noisy_child.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin1-yes.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin2-not-quite.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin3-no.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin4-many.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/origin5-bz2.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin5-bz2.stderr.exp-glibc25-x86#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin5-bz2.stderr.exp-glibc27-ppc64#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin6-fp.stderr.exp-glibc25-amd64#3 integrate .. //depot/projects/valgrind/memcheck/tests/origin6-fp.stderr.exp-glibc27-ppc64#3 integrate .. //depot/projects/valgrind/memcheck/tests/overlap.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/partial_load_dflt.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/partial_load_dflt.stderr.exp64#4 integrate .. //depot/projects/valgrind/memcheck/tests/partial_load_ok.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/partial_load_ok.stderr.exp64#4 integrate .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/partiallydefinedeq.stderr.exp2#4 integrate .. //depot/projects/valgrind/memcheck/tests/pointer-trace.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/realloc3.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/sigkill.stderr.exp#4 integrate .. //depot/projects/valgrind/memcheck/tests/sigkill.stderr.exp-darwin#2 integrate .. //depot/projects/valgrind/memcheck/tests/signal2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/strchr.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/strchr.stderr.exp-darwin#2 integrate .. //depot/projects/valgrind/memcheck/tests/strchr.stderr.exp2#3 integrate .. //depot/projects/valgrind/memcheck/tests/suppfree.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/trivialleak.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/trivialleak.stderr.exp2#3 integrate .. //depot/projects/valgrind/memcheck/tests/varinfo1.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/varinfo2.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/varinfo3.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/varinfo4.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/varinfo5.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/varinfo6.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/writev.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/x86-linux/scalar.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/x86-linux/scalar_exit_group.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/x86-linux/scalar_supp.stderr.exp#2 integrate .. //depot/projects/valgrind/memcheck/tests/x86/insn_basic.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_basic.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_basic.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_cmov.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_cmov.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_cmov.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_fpu.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_fpu.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_fpu.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_mmx.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_mmx.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_mmx.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_mmxext.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_mmxext.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_mmxext.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_sse.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_sse.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_sse.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_sse2.stderr.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_sse2.stdout.exp#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/insn_sse2.vgtest#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/pushfpopf.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/x86/sse_memory.c#1 branch .. //depot/projects/valgrind/memcheck/tests/x86/xor-undef-x86.stderr.exp#3 integrate .. //depot/projects/valgrind/memcheck/tests/xml1.c#3 integrate .. //depot/projects/valgrind/memcheck/tests/xml1.stderr.exp#4 integrate .. //depot/projects/valgrind/none/tests/darwin/Makefile.am#2 integrate .. //depot/projects/valgrind/none/tests/darwin/access_extended.c#1 branch .. //depot/projects/valgrind/none/tests/darwin/access_extended.stderr.exp#1 branch .. //depot/projects/valgrind/none/tests/darwin/access_extended.vgtest#1 branch .. //depot/projects/valgrind/none/tests/filter_stderr#4 integrate .. //depot/projects/valgrind/none/tests/ppc32/tw.c#1 branch .. //depot/projects/valgrind/none/tests/ppc32/twi.c#1 branch .. //depot/projects/valgrind/none/tests/ppc64/jm-insns.c#1 branch Differences ... ==== //depot/projects/valgrind/Makefile.am#15 (text+ko) ==== @@ -17,18 +17,10 @@ # DDD: once all tools work on Darwin, TEST_TOOLS and TEST_EXP_TOOLS can be # replaced with TOOLS and EXP_TOOLS. +TEST_TOOLS = $(TOOLS) if !VGCONF_OS_IS_DARWIN - TEST_TOOLS = $(TOOLS) TEST_EXP_TOOLS = $(EXP_TOOLS) else - TEST_TOOLS = memcheck \ - cachegrind \ - callgrind \ - massif \ - lackey \ - none \ - drd - TEST_EXP_TOOLS = exp-bbv endif @@ -56,7 +48,7 @@ glibc-2.2-LinuxThreads-helgrind.supp \ glibc-2.X-drd.supp \ exp-ptrcheck.supp \ - darwin9.supp \ + darwin9.supp darwin9-drd.supp \ freebsd.supp DEFAULT_SUPP_FILES = @DEFAULT_SUPP@ ==== //depot/projects/valgrind/NEWS#4 (text+ko) ==== @@ -1,195 +1,568 @@ -Release 3.5.0 (???) +Release 3.5.0 (19 August 2009) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* Mac OS X is now supported. (Note that Mac OS X is often called "Darwin" - because that is the name of the OS core.) +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. - Supported machines: - - x86 machines are supported fairly well. - - AMD64 (a.k.a. x86-64) are supported, but not as well. - - Older PowerPC machines are not supported. - - It requires Mac OS X 10.5 Leopard or later. Porting to 10.4 is not - planned because it would require work and 10.4 is only becoming less - common. + - PowerPC machines are not supported. Things that don't work: - - Helgrind and Ptrcheck - - Objective-C garbage collection - - --db-attach=yes - - Messages like the following indicate a mismatch between Valgrind's - memory map and the kernel. Occasional failures are expected in - multithreaded programs. If the failure repeats for the same address - range, then there may be a problem causing false errors or crashes. - sync check at ...: FAILED - - If you have Rogue Amoeba's "Instant Hijack" program installed, Valgrind - will fail with a SIGTRAP at start-up. This is apparently Instant - Hijack's fault. See https://bugs.kde.org/show_bug.cgi?id=193917 for - details and a simple work-around. + + - 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. + + - 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. -* XXX: something about improved Wine support? + +* 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". -* XXX: exp-bbv has been added... + - 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". -* 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: + - 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. -==3050== Memcheck, a memory error detector. -==3050== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. -==3050== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info -==3050== Command: ls -l -==3050== + - 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. -* XXX: shut-down messages have changed a bit... + - Documentation for the leak checker has been improved. -* 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. - [XXX: consider adding VALGRIND_COUNT_LEAK_BYTES as a synonym and - deprecating VALGRIND_COUNT_LEAKS, which wasn't a good name to begin with] -* 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). +* Various aspects of Valgrind's text output have changed. -* XXX: mention --read-var-info. It was mentioned as a developer-visible - change in 3.4.0, but it's useful for normal users of some tools as well. + - 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: -* 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. - - "Definitely lost" and "possibly lost" leaks are now considered as normal - errors, ie. they are counted for the "ERROR SUMMARY" and - --error-exitcode. This is true even if their loss records aren't - printed, ie. if you run with --leak-check=summary. - - The documentation for the leak checker has also been improved. + - 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 (XXXX bug number). -* XXX: Atomic instructions are now handled properly... + - 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: + - 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: ??? + 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: + 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: ??? + 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 - Stack traces produced when --xml=yes is specified are different and - unchanged. + * --history-level=approx -* XXX: XML output has changed... along with how --xml=yes works. + 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. -* 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. * 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. + + - 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 memory pools through the macro's - VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in - in ). An alternative for these two macro's is the - new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in + + - Added support for custom allocators through the macros + VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in + in ). An alternative for these two macros is + the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in ). - - Added support for annotating non-POSIX synchronization objects through - several new ANNOTATE_*() macro's. - - OpenMP: added support for the OpenMP runtime (libgomp) included with gcc - versions 4.3.0 and 4.4.0. + + - 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 to new command-line options (--first-race-only and + + - Added two new command-line options (--first-race-only and --segment-merging-interval). -* 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. + +* 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). + - 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 --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: + - 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)//libmpiwrap.so - to $(INSTALL)/libmpiwrap-.so. + libmpiwrap.so library has moved from + $(INSTALL)//libmpiwrap.so to + $(INSTALL)/libmpiwrap-.so. + + * For people who distribute standalone Valgrind tools, the + installed libraries such as $(INSTALL)//libcoregrind.a + have moved to $(INSTALL)/libcoregrind-.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. - * For people who distribute standalone Valgrind tools, the installed - libraries such as $(INSTALL)//libcoregrind.a have moved to - $(INSTALL)/libcoregrind-.a. +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. - These changes simplified the build system. +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 >>> TRUNCATED FOR MAIL (1000 lines) <<<