1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 4<title>2.�NEWS</title> 5<link rel="stylesheet" type="text/css" href="vg_basic.css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="index.html" title="Valgrind Documentation"> 8<link rel="up" href="dist.html" title="Valgrind Distribution Documents"> 9<link rel="prev" href="dist.authors.html" title="1.�AUTHORS"> 10<link rel="next" href="dist.news.old.html" title="3.�OLDER NEWS"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<div><table class="nav" width="100%" cellspacing="3" cellpadding="3" border="0" summary="Navigation header"><tr> 14<td width="22px" align="center" valign="middle"><a accesskey="p" href="dist.authors.html"><img src="images/prev.png" width="18" height="21" border="0" alt="Prev"></a></td> 15<td width="25px" align="center" valign="middle"><a accesskey="u" href="dist.html"><img src="images/up.png" width="21" height="18" border="0" alt="Up"></a></td> 16<td width="31px" align="center" valign="middle"><a accesskey="h" href="index.html"><img src="images/home.png" width="27" height="20" border="0" alt="Up"></a></td> 17<th align="center" valign="middle">Valgrind Distribution Documents</th> 18<td width="22px" align="center" valign="middle"><a accesskey="n" href="dist.news.old.html"><img src="images/next.png" width="18" height="21" border="0" alt="Next"></a></td> 19</tr></table></div> 20<div class="chapter"> 21<div class="titlepage"><div><div><h1 class="title"> 22<a name="dist.news"></a>2.�NEWS</h1></div></div></div> 23<div class="literallayout"><p><br> 24������Release�3.13.0�(15�June�2017)<br> 25~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 26<br> 273.13.0�is�a�feature�release�with�many�improvements�and�the�usual�collection�of<br> 28bug�fixes.<br> 29<br> 30This�release�supports�X86/Linux,�AMD64/Linux,�ARM32/Linux,�ARM64/Linux,<br> 31PPC32/Linux,�PPC64BE/Linux,�PPC64LE/Linux,�S390X/Linux,�MIPS32/Linux,<br> 32MIPS64/Linux,�ARM/Android,�ARM64/Android,�MIPS32/Android,�X86/Android,<br> 33X86/Solaris,�AMD64/Solaris�and�AMD64/MacOSX�10.12.<br> 34<br> 35*�====================�CORE�CHANGES�===================<br> 36<br> 37*�The�translation�cache�size�has�been�increased�to�keep�up�with�the�demands�of<br> 38��large�applications.��The�maximum�number�of�sectors�has�increased�from�24�to<br> 39��48.��The�default�number�of�sectors�has�increased�from�16�to�32�on�all<br> 40��targets�except�Android,�where�the�increase�is�from�6�to�12.<br> 41<br> 42*�The�amount�of�memory�that�Valgrind�can�use�has�been�increased�from�64GB�to<br> 43��128GB.��In�particular�this�means�your�application�can�allocate�up�to�about<br> 44��60GB�when�running�on�Memcheck.<br> 45<br> 46*�Valgrind's�default�load�address�has�been�changed�from�0x3800'0000�to<br> 47��0x5800'0000,�so�as�to�make�it�possible�to�load�larger�executables.��This<br> 48��should�make�it�possible�to�load�executables�of�size�at�least�1200MB.<br> 49<br> 50*�A�massive�spaceleak�caused�by�reading�compressed�debuginfo�files�has�been<br> 51��fixed.��Valgrind�should�now�be�entirely�usable�with�gcc-7.0�"-gz"�created<br> 52��debuginfo.<br> 53<br> 54*�The�C++�demangler�has�been�updated.<br> 55<br> 56*�Support�for�demangling�Rust�symbols�has�been�added.<br> 57<br> 58*�A�new�representation�of�stack�traces,�the�"XTree",�has�been�added.��An�XTree<br> 59��is�a�tree�of�stacktraces�with�data�associated�with�the�stacktraces.��This�is<br> 60��used�by�various�tools�(Memcheck,�Helgrind,�Massif)�to�report�on�the�heap<br> 61��consumption�of�your�program.��Reporting�is�controlled�by�the�new�options<br> 62��--xtree-memory=none|allocs|full�and�--xtree-memory-file=<file>.<br> 63<br> 64��A�report�can�also�be�produced�on�demand�using�the�gdbserver�monitor�command<br> 65��'xtmemory�[<filename>]>'.��The�XTree�can�be�output�in�2�formats:�'callgrind<br> 66��format'�and�'massif�format.�The�existing�visualisers�for�these�formats�(e.g.<br> 67��callgrind_annotate,�KCachegrind,�ms_print)�can�be�used�to�visualise�and<br> 68��analyse�these�reports.<br> 69<br> 70��Memcheck�can�also�produce�XTree�leak�reports�using�the�Callgrind�file<br> 71��format.��For�more�details,�see�the�user�manual.<br> 72<br> 73*�==================�PLATFORM�CHANGES�=================<br> 74<br> 75*�ppc64:�support�for�ISA�3.0B�and�various�fixes�for�existing�3.0�support<br> 76<br> 77*�amd64:�fixes�for�JIT�failure�problems�on�long�AVX2�code�blocks<br> 78<br> 79*�amd64�and�x86:�support�for�CET�prefixes�has�been�added<br> 80<br> 81*�arm32:�a�few�missing�ARMv8�instructions�have�been�implemented<br> 82<br> 83*�arm64,�mips64,�mips32:�an�alternative�implementation�of�Load-Linked�and<br> 84��Store-Conditional�instructions�has�been�added.��This�is�to�deal�with<br> 85��processor�implementations�that�implement�the�LL/SC�specifications�strictly<br> 86��and�as�a�result�cause�Valgrind�to�hang�in�certain�situations.��The<br> 87��alternative�implementation�is�automatically�enabled�at�startup,�as�required.<br> 88��You�can�use�the�option�--sim-hints=fallback-llsc�to�force-enable�it�if�you<br> 89��want.<br> 90<br> 91*�Support�for�OSX�10.12�has�been�improved.<br> 92<br> 93*�On�Linux,�clone�handling�has�been�improved�to�honour�CLONE_VFORK�that<br> 94��involves�a�child�stack.��Note�however�that�CLONE_VFORK�|�CLONE_VM�is�handled<br> 95��like�CLONE_VFORK�(by�removing�CLONE_VM),�so�applications�that�depend�on<br> 96��CLONE_VM�exact�semantics�will�(still)�not�work.<br> 97<br> 98*�The�TileGX/Linux�port�has�been�removed�because�it�appears�to�be�both�unused<br> 99��and�unsupported.<br> 100<br> 101*�====================�TOOL�CHANGES�====================<br> 102<br> 103*�Memcheck:<br> 104<br> 105��-�Memcheck�should�give�fewer�false�positives�when�running�optimised<br> 106����Clang/LLVM�generated�code.<br> 107<br> 108��-�Support�for�--xtree-memory�and�'xtmemory�[<filename>]>'.<br> 109<br> 110��-�New�command�line�options�--xtree-leak=no|yes�and�--xtree-leak-file=<file><br> 111����to�produce�the�end�of�execution�leak�report�in�a�xtree�callgrind�format<br> 112����file.<br> 113<br> 114��-�New�option�'xtleak'�in�the�memcheck�leak_check�monitor�command,�to�produce<br> 115����the�leak�report�in�an�xtree�file.<br> 116<br> 117*�Massif:<br> 118<br> 119��-�Support�for�--xtree-memory�and�'xtmemory�[<filename>]>'.<br> 120<br> 121��-�For�some�workloads�(typically,�for�big�applications),�Massif�memory<br> 122����consumption�and�CPU�consumption�has�decreased�significantly.<br> 123<br> 124*�Helgrind:<br> 125<br> 126��-�Support�for�--xtree-memory�and�'xtmemory�[<filename>]>'.<br> 127<br> 128��-�addition�of�client�request�VALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN,�useful<br> 129����for�Ada�gnat�compiled�applications.<br> 130<br> 131*�====================�OTHER�CHANGES�====================<br> 132<br> 133*�For�Valgrind�developers:�in�an�outer/inner�setup,�the�outer�Valgrind�will<br> 134��append�the�inner�guest�stacktrace�to�the�inner�host�stacktrace.��This�helps<br> 135��to�investigate�the�errors�reported�by�the�outer,�when�they�are�caused�by�the<br> 136��inner�guest�program�(such�as�an�inner�regtest).��See�README_DEVELOPERS�for<br> 137��more�info.<br> 138<br> 139*�To�allow�fast�detection�of�callgrind�files�by�desktop�environments�and�file<br> 140��managers,�the�format�was�extended�to�have�an�optional�first�line�that<br> 141��uniquely�identifies�the�format�("#�callgrind�format").��Callgrind�creates<br> 142��this�line�now,�as�does�the�new�xtree�functionality.<br> 143<br> 144*�File�name�template�arguments�(such�as�--log-file,�--xtree-memory-file,�...)<br> 145��have�a�new�%n�format�letter�that�is�replaced�by�a�sequence�number.<br> 146<br> 147*�"--version�-v"�now�shows�the�SVN�revision�numbers�from�which�Valgrind�was<br> 148��built.<br> 149<br> 150*�====================�FIXED�BUGS�====================<br> 151<br> 152The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 153stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 154but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 155bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 156than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 157are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 158<br> 159To�see�details�of�a�given�bug,�visit<br> 160��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 161where�XXXXXX�is�the�bug�number�as�listed�below.<br> 162<br> 163162848��--log-file�output�isn't�split�when�a�program�forks<br> 164340777��Illegal�instruction�on�mips�(ar71xx)<br> 165341481��MIPS64:�Iop_CmpNE32�triggers�false�warning�on�MIPS64�platforms<br> 166342040��Valgrind�mishandles�clone�with�CLONE_VFORK�|�CLONE_VM�that�clones<br> 167��������to�a�different�stack.<br> 168344139��x86�stack-seg�overrides,�needed�by�the�Wine�people<br> 169344524��store�conditional�of�guest�applications�always�fail�-�observed�on<br> 170��������Octeon3(MIPS)<br> 171348616��Wine/valgrind:�noted�but�unhandled�ioctl�0x5390�[..]�(DVD_READ_STRUCT)<br> 172352395��Please�provide�SVN�revision�info�in�--version�-v<br> 173352767��Wine/valgrind:�noted�but�unhandled�ioctl�0x5307�[..]�(CDROMSTOP)<br> 174356374��Assertion�'DRD_(g_threadinfo)[tid].pt_threadid�!=<br> 175��������INVALID_POSIX_THREADID'�failed<br> 176358213��helgrind/drd�bar_bad�testcase�hangs�or�crashes�with�new�glibc�pthread<br> 177��������barrier�implementation<br> 178358697��valgrind.h:�Some�code�remains�even�when�defining�NVALGRIND<br> 179359202��Add�musl�libc�configure/compile<br> 180360415��amd64�instructions�ADCX�and�ADOX�are�not�implemented�in�VEX<br> 181��������==�372828�(vex�amd64->IR:�0x66�0xF�0x3A�0x62�0x4A�0x10)<br> 182360429��unhandled�ioctl�0x530d�with�no�size/direction�hints�(CDROMREADMODE1)<br> 183362223��assertion�failed�when�.valgrindrc�is�a�directory�instead�of�a�file<br> 184367543��bt/btc/btr/bts�x86/x86_64�instructions�are�poorly-handled�wrt�flags<br> 185367942��Segfault�vgPlain_do_sys_sigaction�(m_signals.c:1138)<br> 186368507��can't�malloc�chunks�larger�than�about�34GB<br> 187368529��Android�arm�target�link�error,�missing�atexit�and�pthread_atfork<br> 188368863��WARNING:�unhandled�arm64-linux�syscall:�100�(get_robust_list)<br> 189368865��WARNING:�unhandled�arm64-linux�syscall:�272�(kcmp)<br> 190368868��disInstr(arm64):�unhandled�instruction�0xD53BE000�=�cntfrq_el0�(ARMv8)<br> 191368917��WARNING:�unhandled�arm64-linux�syscall:�218�(request_key)<br> 192368918��WARNING:�unhandled�arm64-linux�syscall:�127�(sched_rr_get_interval)<br> 193368922��WARNING:�unhandled�arm64-linux�syscall:�161�(sethostname)<br> 194368924��WARNING:�unhandled�arm64-linux�syscall:�84�(sync_file_range)<br> 195368925��WARNING:�unhandled�arm64-linux�syscall:�130�(tkill)<br> 196368926��WARNING:�unhandled�arm64-linux�syscall:�97�(unshare)<br> 197369459��valgrind�on�arm64�violates�the�ARMv8�spec�(ldxr/stxr)<br> 198370028��Reduce�the�number�of�compiler�warnings�on�MIPS�platforms<br> 199370635��arm64�missing�syscall�getcpu<br> 200371225��Fix�order�of�timer_{gettime,getoverrun,settime}�syscalls�on�arm64<br> 201371227��Clean�AArch64�syscall�table<br> 202371412��Rename�wrap_sys_shmat�to�sys_shmat�like�other�wrappers<br> 203371471��Valgrind�complains�about�non�legit�memory�leaks�on�placement�new�(C++)<br> 204371491��handleAddrOverrides()�is�[incorrect]�when�ASO�prefix�is�used<br> 205371503��disInstr(arm64):�unhandled�instruction�0xF89F0000<br> 206371869��support�'%'�in�symbol�Z-encoding<br> 207371916��execution�tree�xtree�concept<br> 208372120��c++�demangler�demangles�symbols�which�are�not�c++<br> 209372185��Support�of�valgrind�on�ARMv8�with�32�bit�executable<br> 210372188��vex�amd64->IR:�0x66�0xF�0x3A�0x62�0x4A�0x10�0x10�0x48�(PCMPxSTRx�$0x10)<br> 211372195��Power�PC,�xxsel�instruction�is�not�always�recognized.<br> 212372504��Hanging�on�exit_group<br> 213372600��process�loops�forever�when�fatal�signals�are�arriving�quickly<br> 214372794��LibVEX�(arm32�front�end):�'Assertion�szBlg2�<=�3'�failed<br> 215373046��Stacks�registered�by�core�are�never�deregistered<br> 216373069��memcheck/tests/leak_cpp_interior�fails�with�GCC�5.1+<br> 217373086��Implement�additional�Xen�hypercalls<br> 218373192��Calling�posix_spawn�in�glibc�2.24�completely�broken<br> 219373488��Support�for�fanotify�API�on�ARM64�architecture<br> 220 ==�368864��WARNING:�unhandled�arm64-linux�syscall:�262�(fanotify_init)<br> 221373555��Rename�BBPTR�to�GSPTR�as�it�denotes�guest�state�pointer�only<br> 222373938��const�IRExpr�arguments�for�matchIRExpr()<br> 223374719��some�spelling�fixes<br> 224374963��increase�valgrind's�load�address�to�prevent�mmap�failure<br> 225375514��valgrind_get_tls_addr()�does�not�work�in�case�of�static�TLS<br> 226375772��+1�error�in�get_elf_symbol_info()�when�computing�value�of�'hi'�address<br> 227��������for�ML_(find_rx_mapping)()<br> 228375806��Test�helgrind/tests/tc22_exit_w_lock�fails�with�glibc�2.24<br> 229375839��Temporary�storage�exhausted,�with�long�sequence�of�vfmadd231ps�insns<br> 230��������==�377159��"vex:�the�`impossible'�happened"�still�present<br> 231��������==�375150��Assertion�'tres.status�==�VexTransOK'�failed<br> 232��������==�378068��valgrind�crashes�on�AVX2�function�in�FFmpeg<br> 233376142��Segfaults�on�MIPS�Cavium�Octeon�boards<br> 234376279��disInstr(arm64):�unhandled�instruction�0xD50320FF<br> 235376455��Solaris:�unhandled�syscall�lgrpsys(180)<br> 236376518��Solaris:�unhandled�fast�trap�getlgrp(6)<br> 237376611��ppc64�and�arm64�don't�know�about�prlimit64�syscall<br> 238376729��PPC64,�remove�R2�from�the�clobber�list<br> 239��������==�371668<br> 240376956��syswrap�of�SNDDRV�and�DRM_IOCTL_VERSION�causing�some�addresses<br> 241��������to�be�wrongly�marked�as�addressable<br> 242377066��Some�Valgrind�unit�tests�fail�to�compile�on�Ubuntu�16.10�with<br> 243��������PIE�enabled�by�default<br> 244377376��memcheck/tests/linux/getregset�fails�with�glibc2.24<br> 245377427��PPC64,�lxv�instruction�failing�on�odd�destination�register�<br> 246377478��PPC64:�ISA�3.0�setup�fixes<br> 247377698��Missing�memory�check�for�futex()�uaddr�arg�for�FUTEX_WAKE<br> 248��������and�FUTEX_WAKE_BITSET,�check�only�4�args�for�FUTEX_WAKE_BITSET,<br> 249��������and�2�args�for�FUTEX_TRYLOCK_PI<br> 250377717��Fix�massive�space�leak�when�reading�compressed�debuginfo�sections<br> 251377891��Update�Xen�4.6�domctl�wrappers<br> 252377930��fcntl�syscall�wrapper�is�missing�flock�structure�check<br> 253378524��libvexmultiarch_test�regression�on�s390x�and�ppc64<br> 254378535��Valgrind�reports�INTERNAL�ERROR�in�execve�syscall�wrapper<br> 255378673��Update�libiberty�demangler<br> 256378931��Add�ISA�3.0B�additional�isnstructions,�add�OV32,�CA32�setting�support<br> 257379039��syscall�wrapper�for�prctl(PR_SET_NAME)�must�not�check�more�than�16�bytes<br> 258379094��Valgrind�reports�INTERNAL�ERROR�in�rt_sigsuspend�syscall�wrapper<br> 259379371��UNKNOWN�task�message�[id�3444,�to�mach_task_self(),�reply�0x603]<br> 260��������(task_register_dyld_image_infos)<br> 261379372��UNKNOWN�task�message�[id�3447,�to�mach_task_self(),�reply�0x603]<br> 262��������(task_register_dyld_shared_cache_image_info)<br> 263379390��unhandled�syscall:�mach:70�(host_create_mach_voucher_trap)<br> 264379473��MIPS:�add�support�for�rdhwr�cycle�counter�register<br> 265379504��remove�TileGX/Linux�port<br> 266379525��Support�more�x86�nop�opcodes<br> 267379838��disAMode(x86):�not�an�addr!<br> 268379703��PC�ISA�3.0�fixes:�stxvx,�stxv,�xscmpexpdp�instructions<br> 269379890��arm:�unhandled�instruction:�0xEBAD�0x1B05�(sub.w�fp,�sp,�r5,�lsl�#4)<br> 270379895��clock_gettime�does�not�execute�POST�syscall�wrapper<br> 271379925��PPC64,�mtffs�does�not�set�the�FPCC�and�C�bits�in�the�FPSCR�correctly<br> 272379966��WARNING:�unhandled�amd64-linux�syscall:�313�(finit_module)<br> 273380200��xtree�generated�callgrind�files�refer�to�files�without�directory�name<br> 274380202��Assertion�failure�for�cache�line�size�(cls�==�64)�on�aarch64.<br> 275380397��s390x:�__GI_strcspn()�replacement�needed<br> 276n-i-bz��Fix�pub_tool_basics.h�build�issue�with�g++�4.4.7.<br> 277<br> 278(3.13.0.RC1:��2�June�2017,�vex�r3386,�valgrind�r16434)<br> 279(3.13.0.RC2:��9�June�2017,�vex�r3389,�valgrind�r16443)<br> 280(3.13.0:�����14�June�2017,�vex�r3396,�valgrind�r16446)<br> 281<br> 282<br> 283<br> 284Release�3.12.0�(20�October�2016)<br> 285~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 286<br> 2873.12.0�is�a�feature�release�with�many�improvements�and�the�usual<br> 288collection�of�bug�fixes.<br> 289<br> 290This�release�supports�X86/Linux,�AMD64/Linux,�ARM32/Linux,<br> 291ARM64/Linux,�PPC32/Linux,�PPC64BE/Linux,�PPC64LE/Linux,�S390X/Linux,<br> 292MIPS32/Linux,�MIPS64/Linux,�ARM/Android,�ARM64/Android,<br> 293MIPS32/Android,�X86/Android,�X86/Solaris,�AMD64/Solaris,�X86/MacOSX<br> 29410.10�and�AMD64/MacOSX�10.10.��There�is�also�preliminary�support�for<br> 295X86/MacOSX�10.11/12,�AMD64/MacOSX�10.11/12�and�TILEGX/Linux.<br> 296<br> 297*�==================�PLATFORM�CHANGES�=================<br> 298<br> 299*�POWER:�Support�for�ISA�3.0�has�been�added<br> 300<br> 301*�mips:�support�for�O32�FPXX�ABI�has�been�added.<br> 302*�mips:�improved�recognition�of�different�processors<br> 303*�mips:�determination�of�page�size�now�done�at�run�time<br> 304<br> 305*�amd64:�Partial�support�for�AMD�FMA4�instructions.<br> 306<br> 307*�arm,�arm64:�Support�for�v8�crypto�and�CRC�instructions.<br> 308<br> 309*�Improvements�and�robustification�of�the�Solaris�port.<br> 310<br> 311*�Preliminary�support�for�MacOS�10.12�(Sierra)�has�been�added.<br> 312<br> 313Whilst�3.12.0�continues�to�support�the�32-bit�x86�instruction�set,�we<br> 314would�prefer�users�to�migrate�to�64-bit�x86�(a.k.a�amd64�or�x86_64)<br> 315where�possible.��Valgrind's�support�for�32-bit�x86�has�stagnated�in<br> 316recent�years�and�has�fallen�far�behind�that�for�64-bit�x86<br> 317instructions.��By�contrast�64-bit�x86�is�well�supported,�up�to�and<br> 318including�AVX2.<br> 319<br> 320*�====================�TOOL�CHANGES�====================<br> 321<br> 322*�Memcheck:<br> 323<br> 324��-�Added�meta�mempool�support�for�describing�a�custom�allocator�which:<br> 325�����-�Auto-frees�all�chunks�assuming�that�destroying�a�pool�destroys�all<br> 326�������objects�in�the�pool<br> 327�����-�Uses�itself�to�allocate�other�memory�blocks<br> 328<br> 329��-�New�flag�--ignore-range-below-sp�to�ignore�memory�accesses�below<br> 330����the�stack�pointer,�if�you�really�have�to.��The�related�flag<br> 331����--workaround-gcc296-bugs=yes�is�now�deprecated.��Use<br> 332����--ignore-range-below-sp=1024-1�as�a�replacement.<br> 333<br> 334*�DRD:<br> 335<br> 336��-�Improved�thread�startup�time�significantly�on�non-Linux�platforms.<br> 337<br> 338*�DHAT<br> 339<br> 340��-�Added�collection�of�the�metric�"tot-blocks-allocd"<br> 341<br> 342*�====================�OTHER�CHANGES�====================<br> 343<br> 344*�Replacement/wrapping�of�malloc/new�related�functions�is�now�done�not�just<br> 345��for�system�libraries�by�default,�but�for�any�globally�defined�malloc/new<br> 346��related�function�(both�in�shared�libraries�and�statically�linked�alternative<br> 347��malloc�implementations).��The�dynamic�(runtime)�linker�is�excluded,�though.<br> 348��To�only�intercept�malloc/new�related�functions�in<br> 349��system�libraries�use�--soname-synonyms=somalloc=nouserintercepts�(where<br> 350��"nouserintercepts"�can�be�any�non-existing�library�name).<br> 351��This�new�functionality�is�not�implemented�for�MacOS�X.<br> 352<br> 353*�The�maximum�number�of�callers�in�a�suppression�entry�is�now�equal�to<br> 354��the�maximum�size�for�--num-callers�(500).<br> 355��Note�that�--gen-suppressions=yes|all�similarly�generates�suppressions<br> 356��containing�up�to�--num-callers�frames.<br> 357<br> 358*�New�and�modified�GDB�server�monitor�features:<br> 359<br> 360��-�Valgrind's�gdbserver�now�accepts�the�command�'catch�syscall'.<br> 361����Note�that�you�must�have�GDB�>=�7.11�to�use�'catch�syscall'�with<br> 362����gdbserver.<br> 363<br> 364*�New�option�--run-cxx-freeres=<yes|no>�can�be�used�to�change�whether<br> 365��__gnu_cxx::__freeres()�cleanup�function�is�called�or�not.�Default�is<br> 366��'yes'.<br> 367<br> 368*�Valgrind�is�able�to�read�compressed�debuginfo�sections�in�two�formats:<br> 369��-�zlib�ELF�gABI�format�with�SHF_COMPRESSED�flag�(gcc�option�-gz=zlib)<br> 370��-�zlib�GNU�format�with�.zdebug�sections�(gcc�option�-gz=zlib-gnu)<br> 371<br> 372*�Modest�JIT-cost�improvements:�the�cost�of�instrumenting�code�blocks<br> 373��for�the�most�common�use�case�(x86_64-linux,�Memcheck)�has�been<br> 374��reduced�by�10%-15%.<br> 375<br> 376*�Improved�performance�for�programs�that�do�a�lot�of�discarding�of<br> 377��instruction�address�ranges�of�8KB�or�less.<br> 378<br> 379*�The�C++�symbol�demangler�has�been�updated.<br> 380<br> 381*�More�robustness�against�invalid�syscall�parameters�on�Linux.<br> 382<br> 383*�====================�FIXED�BUGS�====================<br> 384<br> 385The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 386stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 387but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 388bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 389than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 390are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 391<br> 392To�see�details�of�a�given�bug,�visit<br> 393��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 394where�XXXXXX�is�the�bug�number�as�listed�below.<br> 395<br> 396191069��Exiting�due�to�signal�not�reported�in�XML�output<br> 397199468��Suppressions:�stack�size�limited�to�25<br> 398��������while�--num-callers�allows�more�frames<br> 399212352��vex�amd64�unhandled�opc_aux�=�0x�2,�first_opcode�==�0xDC�(FCOM)<br> 400278744��cvtps2pd�with�redundant�RexW<br> 401303877��valgrind�doesn't�support�compressed�debuginfo�sections.<br> 402345307��Warning�about�"still�reachable"�memory�when�using�libstdc++�from�gcc�5<br> 403348345��Assertion�fails�for�negative�lineno<br> 404348924��MIPS:�Load�doubles�through�memory�so�the�code�compiles�with�the�FPXX�ABI<br> 405351282��V�3.10.1�MIPS�softfloat�build�broken�with�GCC�4.9.3�/�binutils�2.25.1<br> 406351692��Dumps�created�by�valgrind�are�not�readable�by�gdb�(mips32�specific)<br> 407351804��Crash�on�generating�suppressions�for�"printf"�call�on�OS�X�10.10<br> 408352197��mips:�mmap2()�not�wrapped�correctly�for�page�size�>�4096<br> 409353083��arm64�doesn't�implement�various�xattr�system�calls<br> 410353084��arm64�doesn't�support�sigpending�system�call<br> 411353137��www:�update�info�for�Supported�Platforms<br> 412353138��www:�update�"The�Valgrind�Developers"�page<br> 413353370��don't�advertise�RDRAND�in�cpuid�for�Core-i7-4910-like�avx2�machine<br> 414��������==�365325<br> 415��������==�357873<br> 416353384��amd64->IR:�0x66�0xF�0x3A�0x62�0xD1�0x62�(pcmpXstrX�$0x62)<br> 417353398��WARNING:�unhandled�amd64-solaris�syscall:�207<br> 418353660��XML�in�auxwhat�tag�not�escaping�reserved�symbols�properly<br> 419353680��s390x:�Crash�with�certain�glibc�versions�due�to�non-implemented�TBEGIN<br> 420353727��amd64->IR:�0x66�0xF�0x3A�0x62�0xD1�0x72�(pcmpXstrX�$0x72)<br> 421353802��ELF�debug�info�reader�confused�with�multiple�.rodata�sections<br> 422353891��Assert�'bad_scanned_addr�<�VG_ROUNDDN(start+len,�sizeof(Addr))'�failed<br> 423353917��unhandled�amd64-solaris�syscall�fchdir(120)<br> 424353920��unhandled�amd64-solaris�syscall:�170<br> 425354274��arm:�unhandled�instruction:�0xEBAD�0x0AC1�(sub.w�sl,�sp,�r1,�lsl�#3)<br> 426354392��unhandled�amd64-solaris�syscall:�171<br> 427354797��Vbit�test�does�not�include�Iops�for�Power�8�instruction�support<br> 428354883��tst->os_state.pthread�-�magic_delta�assertion�failure�on�OSX�10.11<br> 429��������==�361351<br> 430��������==�362920<br> 431��������==�366222<br> 432354933��Fix�documentation�of�--kernel-variant=android-no-hw-tls�option<br> 433355188��valgrind�should�intercept�all�malloc�related�global�functions<br> 434355454��do�not�intercept�malloc�related�symbols�from�the�runtime�linker<br> 435355455��stderr.exp�of�test�cases�wrapmalloc�and�wrapmallocstatic�overconstrained<br> 436356044��Dwarf�line�info�reader�misinterprets�is_stmt�register<br> 437356112��mips:�replace�addi�with�addiu<br> 438356393��valgrind�(vex)�crashes�because�isZeroU�happened<br> 439��������==�363497<br> 440��������==�364497<br> 441356676��arm64-linux:�unhandled�syscalls�125,�126�(sched_get_priority_max/min)<br> 442356678��arm64-linux:�unhandled�syscall�232�(mincore)<br> 443356817��valgrind.h�triggers�compiler�errors�on�MSVC�when�defining�NVALGRIND<br> 444356823��Unsupported�ARM�instruction:�stlex<br> 445357059��x86/amd64:�SSE�cvtpi2ps�with�memory�source�does�transition�to�MMX�state<br> 446357338��Unhandled�instruction�for�SHA�instructions�libcrypto�Boring�SSL<br> 447357673��crash�if�I�try�to�run�valgrind�with�a�binary�link�with�libcurl<br> 448357833��Setting�RLIMIT_DATA�to�zero�breaks�with�linux�4.5+<br> 449357871��pthread_spin_destroy�not�properly�wrapped<br> 450357887��Calls�to�VG_(fclose)�do�not�close�the�file�descriptor<br> 451357932��amd64->IR:�accept�redundant�REX�prefixes�for�{minsd,maxsd}�m128,�xmm.<br> 452358030��support�direct�socket�calls�on�x86�32bit�(new�in�linux�4.3)<br> 453358478��drd/tests/std_thread.cpp�doesn't�build�with�GCC6<br> 454359133��Assertion�'eltSzB�<=�ddpa->poolSzB'�failed<br> 455359181��Buffer�Overflow�during�Demangling<br> 456359201��futex�syscall�"skips"�argument�5�if�op�is�FUTEX_WAIT_BITSET<br> 457359289��s390x:�popcnt�(B9E1)�not�implemented<br> 458359472��The�Power�PC�vsubuqm�instruction�doesn't�always�give�the�correct�result<br> 459359503��Add�missing�syscalls�for�aarch64�(arm64)<br> 460359645��"You�need�libc6-dbg"�help�message�could�be�more�helpful<br> 461359703��s390:�wire�up�separate�socketcalls�system�calls<br> 462359724��getsockname�might�crash�-�deref_UInt�should�call�safe_to_deref<br> 463359733��amd64�implement�ld.so�strchr/index�override�like�x86<br> 464359767��Valgrind�does�not�support�the�IBM�POWER�ISA�3.0�instructions,�part�1/5<br> 465359829��Power�PC�test�suite�none/tests/ppc64/test_isa_2_07.c�uses<br> 466��������uninitialized�data<br> 467359838��arm64:�Unhandled�instruction�0xD5033F5F�(clrex)<br> 468359871��Incorrect�mask�handling�in�ppoll<br> 469359952��Unrecognised�PCMPESTRM�variants�(0x70,�0x19)<br> 470360008��Contents�of�Power�vr�registers�contents�is�not�printed�correctly�when<br> 471��������the�--vgdb-shadow-registers=yes�option�is�used<br> 472360035��POWER�PC�instruction�bcdadd�and�bcdsubtract�generate�result�with<br> 473��������non-zero�shadow�bits<br> 474360378��arm64:�Unhandled�instruction�0x5E280844�(sha1h��s4,�s2)<br> 475360425��arm64�unsupported�instruction�ldpsw<br> 476��������==�364435<br> 477360519��none/tests/arm64/memory.vgtest�might�fail�with�newer�gcc<br> 478360571��Error�about�the�Android�Runtime�reading�below�the�stack�pointer�on�ARM<br> 479360574��Wrong�parameter�type�for�an�ashmem�ioctl()�call�on�Android�and�ARM64<br> 480360749��kludge�for�multiple�.rodata�sections�on�Solaris�no�longer�needed<br> 481360752��raise�the�number�of�reserved�fds�in�m_main.c�from�10�to�12<br> 482361207��Valgrind�does�not�support�the�IBM�POWER�ISA�3.0�instructions,�part�2/5<br> 483361226��s390x:�risbgn�(EC59)�not�implemented<br> 484361253��[s390x]�ex_clone.c:42:�undefined�reference�to�`pthread_create'<br> 485361354��ppc64[le]:�wire�up�separate�socketcalls�system�calls<br> 486361615��Inconsistent�termination�for�multithreaded�process�terminated�by�signal<br> 487361926��Unhandled�Solaris�syscall:�sysfs(84)<br> 488362009��V�dumps�core�on�unimplemented�functionality�before�threads�are�created<br> 489362329��Valgrind�does�not�support�the�IBM�POWER�ISA�3.0�instructions,�part�3/5<br> 490362894��missing�(broken)�support�for�wbit�field�on�mtfsfi�instruction�(ppc64)<br> 491362935��[AsusWRT]�Assertion�'sizeof(TTEntryC)�<=�88'�failed<br> 492362953��Request�for�an�update�to�the�Valgrind�Developers�page<br> 493363680��add�renameat2()�support<br> 494363705��arm64�missing�syscall�name_to_handle_at�and�open_by_handle_at<br> 495363714��ppc64�missing�syscalls�sync,�waitid�and�name_to/open_by_handle_at<br> 496363858��Valgrind�does�not�support�the�IBM�POWER�ISA�3.0�instructions,�part�4/5<br> 497364058��clarify�in�manual�limitations�of�array�overruns�detections<br> 498364413��pselect�sycallwrapper�mishandles�NULL�sigmask<br> 499364728��Power�PC,�missing�support�for�several�HW�registers�in<br> 500��������get_otrack_shadow_offset_wrk()<br> 501364948��Valgrind�does�not�support�the�IBM�POWER�ISA�3.0�instructions,�part�5/5<br> 502365273��Invalid�write�to�stack�location�reported�after�signal�handler�runs<br> 503365912��ppc64BE�segfault�during�jm-insns�test�(RELRO)<br> 504366079��FPXX�Support�for�MIPS32�Valgrind<br> 505366138��Fix�configure�errors�out�when�using�Xcode�8�(clang�8.0.0)<br> 506366344��Multiple�unhandled�instruction�for�Aarch64<br> 507��������(0x0EE0E020,�0x1AC15800,�0x4E284801,�0x5E040023,�0x5E056060)<br> 508367995��Integration�of�memcheck�with�custom�memory�allocator<br> 509368120��x86_linux�asm�_start�functions�do�not�keep�16-byte�aligned�stack�pointer<br> 510368412��False�positive�result�for�altivec�capability�check<br> 511368416��Add�tc06_two_races_xml.exp�output�for�ppc64<br> 512368419��Perf�Events�ioctls�not�implemented<br> 513368461��mmapunmap�test�fails�on�ppc64<br> 514368823��run_a_thread_NORETURN�assembly�code�typo�for�VGP_arm64_linux�target<br> 515369000��AMD64�fma4�instructions�unsupported.<br> 516369169��ppc64�fails�jm_int_isa_2_07�test<br> 517369175��jm_vec_isa_2_07�test�crashes�on�ppc64<br> 518369209��valgrind�loops�and�eats�up�all�memory�if�cwd�doesn't�exist.<br> 519369356��pre_mem_read_sockaddr�syscall�wrapper�can�crash�with�bad�sockaddr<br> 520369359��msghdr_foreachfield�can�crash�when�handling�bad�iovec<br> 521369360��Bad�sigprocmask�old�or�new�sets�can�crash�valgrind<br> 522369361��vmsplice�syscall�wrapper�crashes�on�bad�iovec<br> 523369362��Bad�sigaction�arguments�crash�valgrind<br> 524369383��x86�sys_modify_ldt�wrapper�crashes�on�bad�ptr<br> 525369402��Bad�set/get_thread_area�pointer�crashes�valgrind<br> 526369441��bad�lvec�argument�crashes�process_vm_readv/writev�syscall�wrappers<br> 527369446��valgrind�crashes�on�unknown�fcntl�command<br> 528369439��S390x:�Unhandled�insns�RISBLG/RISBHG�and�LDE/LDER�<br> 529369468��Remove�quadratic�metapool�algorithm�using�VG_(HT_remove_at_Iter)<br> 530370265��ISA�3.0�HW�cap�stuff�needs�updating<br> 531371128��BCD�add�and�subtract�instructions�on�Power�BE�in�32-bit�mode�do�not�work<br> 532372195��Power�PC,�xxsel�instruction�is�not�always�recognized<br> 533<br> 534n-i-bz��Fix�incorrect�(or�infinite�loop)�unwind�on�RHEL7�x86�and�amd64<br> 535n-i-bz��massif�--pages-as-heap=yes�does�not�report�peak�caused�by�mmap+munmap<br> 536n-i-bz��false�positive�leaks�due�to�aspacemgr�merging�heap�&�non�heap�segments<br> 537n-i-bz��Fix�ppoll_alarm�exclusion�on�OS�X<br> 538n-i-bz��Document�brk�segment�limitation,�reference�manual�in�limit�reached�msg.<br> 539n-i-bz��Fix�clobber�list�in�none/tests/amd64/xacq_xrel.c�[valgrind�r15737]<br> 540n-i-bz��Bump�allowed�shift�value�for�"add.w�reg,�sp,�reg,�lsl�#N"�[vex�r3206]<br> 541n-i-bz��amd64:�memcheck�false�positive�with�shr�%edx<br> 542n-i-bz��arm3:�Allow�early�writeback�of�SP�base�register�in�"strd�rD,�[sp,�#-16]"<br> 543n-i-bz��ppc:�Fix�two�cases�of�PPCAvFpOp�vs�PPCFpOp�enum�confusion<br> 544n-i-bz��arm:�Fix�incorrect�register-number�constraint�check�for�LDAEX{,B,H,D}<br> 545n-i-bz��DHAT:�added�collection�of�the�metric�"tot-blocks-allocd"�<br> 546<br> 547(3.12.0.RC1:��20�October�2016,�vex�r3282,�valgrind�r16094)<br> 548(3.12.0.RC2:��20�October�2016,�vex�r3282,�valgrind�r16096)<br> 549(3.12.0:������21�October�2016,�vex�r3282,�valgrind�r16098)<br> 550<br> 551<br> 552<br> 553Release�3.11.0�(22�September�2015)<br> 554~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 555<br> 5563.11.0�is�a�feature�release�with�many�improvements�and�the�usual<br> 557collection�of�bug�fixes.<br> 558<br> 559This�release�supports�X86/Linux,�AMD64/Linux,�ARM32/Linux,<br> 560ARM64/Linux,�PPC32/Linux,�PPC64BE/Linux,�PPC64LE/Linux,�S390X/Linux,<br> 561MIPS32/Linux,�MIPS64/Linux,�ARM/Android,�ARM64/Android,<br> 562MIPS32/Android,�X86/Android,�X86/Solaris,�AMD64/Solaris,�X86/MacOSX<br> 56310.10�and�AMD64/MacOSX�10.10.��There�is�also�preliminary�support�for<br> 564X86/MacOSX�10.11,�AMD64/MacOSX�10.11�and�TILEGX/Linux.<br> 565<br> 566*�==================�PLATFORM�CHANGES�=================<br> 567<br> 568*�Support�for�Solaris/x86�and�Solaris/amd64�has�been�added.<br> 569<br> 570*�Preliminary�support�for�Mac�OS�X�10.11�(El�Capitan)�has�been�added.<br> 571<br> 572*�Preliminary�support�for�the�Tilera�TileGX�architecture�has�been�added.<br> 573<br> 574*�s390x:�It�is�now�required�for�the�host�to�have�the�"long�displacement"<br> 575��facility.��The�oldest�supported�machine�model�is�z990.<br> 576<br> 577*�x86:�on�an�SSE2�only�host,�Valgrind�in�32�bit�mode�now�claims�to�be�a<br> 578��Pentium�4.��3.10.1�wrongly�claimed�to�be�a�Core�2,�which�is�SSSE3.<br> 579<br> 580*�The�JIT's�register�allocator�is�significantly�faster,�making�the�JIT<br> 581��as�a�whole�somewhat�faster,�so�JIT-intensive�activities,�for�example<br> 582��program�startup,�are�modestly�faster,�around�5%.<br> 583<br> 584*�There�have�been�changes�to�the�default�settings�of�several�command<br> 585��line�flags,�as�detailed�below.<br> 586<br> 587*�Intel�AVX2�support�is�more�complete�(64�bit�targets�only).��On�AVX2<br> 588��capable�hosts,�the�simulated�CPUID�will�now�indicate�AVX2�support.<br> 589<br> 590*�====================�TOOL�CHANGES�====================<br> 591<br> 592*�Memcheck:<br> 593<br> 594��-�The�default�value�for�--leak-check-heuristics�has�been�changed�from<br> 595����"none"�to�"all".�This�helps�to�reduce�the�number�of�possibly<br> 596����lost�blocks,�in�particular�for�C++�applications.<br> 597<br> 598��-�The�default�value�for�--keep-stacktraces�has�been�changed�from<br> 599����"malloc-then-free"�to�"malloc-and-free".��This�has�a�small�cost�in<br> 600����memory�(one�word�per�malloc-ed�block)�but�allows�Memcheck�to�show�the<br> 601����3�stacktraces�of�a�dangling�reference:�where�the�block�was�allocated,<br> 602����where�it�was�freed,�and�where�it�is�acccessed�after�being�freed.<br> 603<br> 604��-�The�default�value�for�--partial-loads-ok�has�been�changed�from�"no"�to�<br> 605����"yes",�so�as�to�avoid�false�positive�errors�resulting�from�some�kinds<br> 606����of�vectorised�loops.<br> 607<br> 608��-�A�new�monitor�command�'xb�<addr>�<len>'�shows�the�validity�bits�of<br> 609����<len>�bytes�at�<addr>.��The�monitor�command�'xb'�is�easier�to�use<br> 610����than�get_vbits�when�you�need�to�associate�byte�data�value�with<br> 611����their�corresponding�validity�bits.<br> 612<br> 613��-�The�'block_list'�monitor�command�has�been�enhanced:<br> 614������o�it�can�print�a�range�of�loss�records<br> 615������o�it�now�accepts�an�optional�argument�'limited�<max_blocks>'<br> 616��������to�control�the�number�of�blocks�printed.<br> 617������o�if�a�block�has�been�found�using�a�heuristic,�then<br> 618��������'block_list'�now�shows�the�heuristic�after�the�block�size.<br> 619������o�the�loss�records/blocks�to�print�can�be�limited�to�the�blocks<br> 620��������found�via�specified�heuristics.<br> 621<br> 622��-�The�C�helper�functions�used�to�instrument�loads�on<br> 623����x86-{linux,solaris}�and�arm-linux�(both�32-bit�only)�have�been<br> 624����replaced�by�handwritten�assembly�sequences.��This�gives�speedups<br> 625����in�the�region�of�0%�to�7%�for�those�targets�only.<br> 626<br> 627��-�A�new�command�line�option,�--expensive-definedness-checks=yes|no,<br> 628����has�been�added.��This�is�useful�for�avoiding�occasional�invalid<br> 629����uninitialised-value�errors�in�optimised�code.��Watch�out�for<br> 630����runtime�degradation,�as�this�can�be�up�to�25%.��As�always,�though,<br> 631����the�slowdown�is�highly�application�specific.��The�default�setting<br> 632����is�"no".<br> 633<br> 634*�Massif:<br> 635<br> 636��-�A�new�monitor�command�'all_snapshots�<filename>'�dumps�all<br> 637����snapshots�taken�so�far.<br> 638<br> 639*�Helgrind:<br> 640<br> 641��-�Significant�memory�reduction�and�moderate�speedups�for<br> 642����--history-level=full�for�applications�accessing�a�lot�of�memory<br> 643����with�many�different�stacktraces.<br> 644<br> 645��-�The�default�value�for�--conflict-cache-size=N�has�been�doubled�to<br> 646����2000000.��Users�that�were�not�using�the�default�value�should<br> 647����preferably�also�double�the�value�they�give.<br> 648<br> 649����The�default�was�changed�due�to�the�changes�in�the�"full�history"<br> 650����implementation.��Doubling�the�value�gives�on�average�a�slightly�more<br> 651����complete�history�and�uses�similar�memory�(or�significantly�less�memory<br> 652����in�the�worst�case)�than�the�previous�implementation.<br> 653����<br> 654��-�The�Helgrind�monitor�command�'info�locks'�now�accepts�an�optional<br> 655����argument�'lock_addr',�which�shows�information�about�the�lock�at�the<br> 656����given�address�only.<br> 657<br> 658��-�When�using�--history-level=full,�the�new�Helgrind�monitor�command<br> 659����'accesshistory�<addr>�[<len>]'�will�show�the�recorded�accesses�for<br> 660����<len>�(or�1)�bytes�at�<addr>.<br> 661<br> 662*�====================�OTHER�CHANGES�====================<br> 663<br> 664*�The�default�value�for�the�--smc-check�option�has�been�changed�from<br> 665��"stack"�to�"all-non-file"�on�targets�that�provide�automatic�D-I<br> 666��cache�coherence�(x86,�amd64�and�s390x).��The�result�is�to�provide,<br> 667��by�default,�transparent�support�for�JIT�generated�and�self-modifying<br> 668��code�on�all�targets.<br> 669<br> 670*�Mac�OS�X�only:�the�default�value�for�the�--dsymutil�option�has�been<br> 671��changed�from�"no"�to�"yes",�since�any�serious�usage�on�Mac�OS�X<br> 672��always�required�it�to�be�"yes".<br> 673<br> 674*�The�command�line�options�--db-attach�and�--db-command�have�been�removed.<br> 675��They�were�deprecated�in�3.10.0.<br> 676<br> 677*�When�a�process�dies�due�to�a�signal,�Valgrind�now�shows�the�signal<br> 678��and�the�stacktrace�at�default�verbosity�(i.e.�verbosity�1).<br> 679<br> 680*�The�address�description�logic�used�by�Memcheck�and�Helgrind�now<br> 681��describes�addresses�in�anonymous�segments,�file�mmap-ed�segments,<br> 682��shared�memory�segments�and�the�brk�data�segment.<br> 683<br> 684*�The�new�option�--error-markers=<begin>,<end>�can�be�used�to�mark�the<br> 685��begin/end�of�errors�in�textual�output�mode,�to�facilitate<br> 686��searching/extracting�errors�in�output�files�that�mix�valgrind�errors<br> 687��with�program�output.<br> 688<br> 689*�The�new�option�--max-threads=<number>�can�be�used�to�change�the�number<br> 690��of�threads�valgrind�can�handle.��The�default�is�500�threads�which<br> 691��should�be�more�than�enough�for�most�applications.<br> 692<br> 693*�The�new�option�--valgrind-stacksize=<number>�can�be�used�to�change�the<br> 694��size�of�the�private�thread�stacks�used�by�Valgrind.��This�is�useful<br> 695��for�reducing�memory�use�or�increasing�the�stack�size�if�Valgrind<br> 696��segfaults�due�to�stack�overflow.<br> 697<br> 698*�The�new�option�--avg-transtab-entry-size=<number>�can�be�used�to�specify<br> 699��the�expected�instrumented�block�size,�either�to�reduce�memory�use�or<br> 700��to�avoid�excessive�retranslation.<br> 701<br> 702*�Valgrind�can�be�built�with�Intel's�ICC�compiler,�version�14.0�or�later.<br> 703<br> 704*�New�and�modified�GDB�server�monitor�features:<br> 705<br> 706��-�When�a�signal�is�reported�in�GDB,�you�can�now�use�the�GDB�convenience<br> 707����variable�$_siginfo�to�examine�detailed�signal�information.<br> 708�<br> 709��-�Valgrind's�gdbserver�now�allows�the�user�to�change�the�signal<br> 710����to�deliver�to�the�process.��So,�use�'signal�SIGNAL'�to�continue�execution<br> 711����with�SIGNAL�instead�of�the�signal�reported�to�GDB.�Use�'signal�0'�to<br> 712����continue�without�passing�the�signal�to�the�process.<br> 713<br> 714��-�With�GDB�>=�7.10,�the�command�'target�remote'<br> 715����will�automatically�load�the�executable�file�of�the�process�running<br> 716����under�Valgrind.�This�means�you�do�not�need�to�specify�the�executable<br> 717����file�yourself,�GDB�will�discover�it�itself.��See�GDB�documentation�about<br> 718����'qXfer:exec-file:read'�packet�for�more�info.<br> 719<br> 720*�====================�FIXED�BUGS�====================<br> 721<br> 722The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 723stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 724but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 725bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 726than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 727are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 728<br> 729To�see�details�of�a�given�bug,�visit<br> 730��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 731where�XXXXXX�is�the�bug�number�as�listed�below.<br> 732<br> 733116002��VG_(printf):�Problems�with�justification�of�strings�and�integers<br> 734155125��avoid�cutting�away�file:lineno�after�long�function�name<br> 735197259��Unsupported�arch_prtctl�PR_SET_GS�option<br> 736201152��ppc64:�Assertion�in�ppc32g_dirtyhelper_MFSPR_268_269<br> 737201216��Fix�Valgrind�does�not�support�pthread_sigmask()�on�OS�X<br> 738201435��Fix�Darwin:�-v�does�not�show�kernel�version<br> 739208217��"Warning:�noted�but�unhandled�ioctl�0x2000747b"�on�Mac�OS�X<br> 740211256��Fixed�an�outdated�comment�regarding�the�default�platform.<br> 741211529��Incomplete�call�stacks�for�code�compiled�by�newer�versions�of�MSVC<br> 742211926��Avoid�compilation�warnings�in�valgrind.h�with�-pedantic<br> 743212291��Fix�unhandled�syscall:�unix:132�(mkfifo)�on�OS�X<br> 744��������==�263119<br> 745226609��Crediting�upstream�authors�in�man�page<br> 746231257��Valgrind�omits�path�when�executing�script�from�shebang�line<br> 747254164��OS�X�task_info:�UNKNOWN�task�message�[id�3405,�to�mach_task_self()�[..]<br> 748294065��Improve�the�pdb�file�reader�by�avoiding�hardwired�absolute�pathnames<br> 749269360��s390x:�Fix�addressing�mode�selection�for�compare-and-swap<br> 750302630��Memcheck:�Assertion�failed:�'sizeof(UWord)�==�sizeof(UInt)'<br> 751��������==�326797<br> 752312989��ioctl�handling�needs�to�do�POST�handling�on�generic�ioctls�and�[..]<br> 753319274��Fix�unhandled�syscall:�unix:410�(sigsuspend_nocancel)�on�OS�X<br> 754324181��mmap�does�not�handle�MAP_32BIT�(handle�it�now,�rather�than�fail�it)<br> 755327745��Fix�valgrind�3.9.0�build�fails�on�Mac�OS�X�10.6.8<br> 756330147��libmpiwrap�PMPI_Get_count�returns�undefined�value<br> 757333051��mmap�of�huge�pages�fails�due�to�incorrect�alignment<br> 758��������==�339163<br> 759334802��valgrind�does�not�always�explain�why�a�given�option�is�bad<br> 760335618��mov.w�rN,�pc/sp�(ARM32)<br> 761335785��amd64->IR�0xC4�0xE2�0x75�0x2F�(vmaskmovpd)<br> 762��������==�307399<br> 763��������==�343175<br> 764��������==�342740<br> 765��������==�346912<br> 766335907��segfault�when�running�wine's�ddrawex/tests/surface.c�under�valgrind<br> 767338602��AVX2�bit�in�CPUID�missing<br> 768338606��Strange�message�for�scripts�with�invalid�interpreter<br> 769338731��ppc:�Fix�testuite�build�for�toolchains�not�supporting�-maltivec<br> 770338995��shmat�with�hugepages�(SHM_HUGETLB)�fails�with�EINVAL<br> 771339045��Getting�valgrind�to�compile�and�run�on�OS�X�Yosemite�(10.10)<br> 772��������==�340252<br> 773339156��gdbsrv�not�called�for�fatal�signal<br> 774339215��Valgrind�3.10.0�contain�2013�in�copyrights�notice<br> 775339288��support�Cavium�Octeon�MIPS�specific�BBIT*32�instructions<br> 776339636��Use�fxsave64�and�fxrstor64�mnemonics�instead�of�old-school�rex64�prefix<br> 777339442��Fix�testsuite�build�failure�on�OS�X�10.9<br> 778339542��Enable�compilation�with�Intel's�ICC�compiler<br> 779339563��The�DVB�demux�DMX_STOP�ioctl�doesn't�have�a�wrapper<br> 780339688��Mac-specific�ASM�does�not�support�.version�directive�(cpuid,<br> 781��������tronical�and�pushfpopf�tests)<br> 782339745��Valgrind�crash�when�check�Marmalade�app�(partial�fix)<br> 783339755��Fix�known�deliberate�memory�leak�in�setenv()�on�Mac�OS�X�10.9<br> 784339778��Linux/TileGx�platform�support�for�Valgrind<br> 785339780��Fix�known�uninitialised�read�in�pthread_rwlock_init()�on�Mac�OS�X�10.9�<br> 786339789��Fix�none/tests/execve�test�on�Mac�OS�X�10.9<br> 787339808��Fix�none/tests/rlimit64_nofile�test�on�Mac�OS�X�10.9<br> 788339820��vex�amd64->IR:�0x66�0xF�0x3A�0x63�0xA�0x42�0x74�0x9�(pcmpistri�$0x42)<br> 789340115��Fix�none/tests/cmdline[1|2]�tests�on�systems�which�define�TMPDIR<br> 790340392��Allow�user�to�select�more�accurate�definedness�checking�in�memcheck<br> 791��������to�avoid�invalid�complaints�on�optimised�code<br> 792340430��Fix�some�grammatical�weirdness�in�the�manual.<br> 793341238��Recognize�GCC5/DWARFv5�DW_LANG�constants�(Go,�C11,�C++11,�C++14)<br> 794341419��Signal�handler�ucontext_t�not�filled�out�correctly�on�OS�X<br> 795341539��VG_(describe_addr)�should�not�describe�address�as�belonging�to�client<br> 796��������segment�if�it�is�past�the�heap�end<br> 797341613��Enable�building�of�manythreads�and�thread-exits�tests�on�Mac�OS�X<br> 798341615��Fix�none/tests/darwin/access_extended�test�on�Mac�OS�X<br> 799341698��Valgrind's�AESKEYGENASSIST�gives�wrong�result�in�words�0�and�2�[..]<br> 800341789��aarch64:�shmat�fails�with�valgrind�on�ARMv8<br> 801341997��MIPS64:�Cavium�OCTEON�insns�-�immediate�operand�handled�incorrectly<br> 802342008��valgrind.h�needs�type�cast�[..]�for�clang/llvm�in�64-bit�mode<br> 803342038��Unhandled�syscalls�on�aarch64�(mbind/get/set_mempolicy)<br> 804342063��wrong�format�specifier�for�test�mcblocklistsearch�in�gdbserver_tests<br> 805342117��Hang�when�loading�PDB�file�for�MSVC�compiled�Firefox�under�Wine<br> 806342221��socket�connect�false�positive�uninit�memory�for�unknown�af�family<br> 807342353��Allow�dumping�full�massif�output�while�valgrind�is�still�running<br> 808342571��Valgrind�chokes�on�AVX�compare�intrinsic�with�_CMP_GE_QS<br> 809��������==�346476<br> 810��������==�348387<br> 811��������==�350593<br> 812342603��Add�I2C_SMBUS�ioctl�support<br> 813342635��OS�X�10.10�(Yosemite)�-�missing�system�calls�and�fcntl�code<br> 814342683��Mark�memory�past�the�initial�brk�limit�as�unaddressable<br> 815342783��arm:�unhandled�instruction�0xEEFE1ACA�=�"vcvt.s32.f32�s3,�s3,�#12"<br> 816342795��Internal�glibc�__GI_mempcpy�call�should�be�intercepted<br> 817342841��s390x:�Support�instructions�fiebr(a)�and�fidbr(a)<br> 818343012��Unhandled�syscall�319�(memfd_create)<br> 819343069��Patch�updating�v4l2�API�support<br> 820343173��helgrind�crash�during�stack�unwind<br> 821343219��fix�GET_STARTREGS�for�arm<br> 822343303��Fix�known�deliberate�memory�leak�in�setenv()�on�Mac�OS�X�10.10<br> 823343306��OS�X�10.10:�UNKNOWN�mach_msg�unhandled�MACH_SEND_TRAILER�option<br> 824343332��Unhandled�instruction�0x9E310021�(fcvtmu)�on�aarch64<br> 825343335��unhandled�instruction�0x1E638400�(fccmp)�aarch64<br> 826343523��OS�X�mach_ports_register:�UNKNOWN�task�message�[id�3403,�to�[..]<br> 827343525��OS�X�host_get_special_port:�UNKNOWN�host�message�[id�412,�to�[..]<br> 828343597��ppc64le:�incorrect�use�of�offseof�macro<br> 829343649��OS�X�host_create_mach_voucher:�UNKNOWN�host�message�[id�222,�to�[..]<br> 830343663��OS�X�10.10��Memchecj�always�reports�a�leak�regardless�of�[..]<br> 831343732��Unhandled�syscall�144�(setgid)�on�aarch64<br> 832343733��Unhandled�syscall�187�(msgctl�and�related)�on�aarch64<br> 833343802��s390x:�False�positive�"conditional�jump�or�move�depends�on�[..]<br> 834343902��--vgdb=yes�doesn't�break�when�--xml=yes�is�used<br> 835343967��Don't�warn�about�setuid/setgid/setcap�executable�for�directories<br> 836343978��Recognize�DWARF5/GCC5�DW_LANG_Fortran�2003�and�2008�constants<br> 837344007��accept4�syscall�unhandled�on�arm64�(242)�and�ppc64�(344)<br> 838344033��Helgrind�on�ARM32�loses�track�of�mutex�state�in�pthread_cond_wait<br> 839344054��www�-�update�info�for�Solaris/illumos<br> 840344416��'make�regtest'�does�not�work�cleanly�on�OS�X<br> 841344235��Remove�duplicate�include�of�pub_core_aspacemgr.h<br> 842344279��syscall�sendmmsg�on�arm64�(269)�and�ppc32/64�(349)�unhandled<br> 843344295��syscall�recvmmsg�on�arm64�(243)�and�ppc32/64�(343)�unhandled<br> 844344307��2�unhandled�syscalls�on�aarch64/arm64:�umount2(39),�mount�(40)<br> 845344314��callgrind_annotate�...�warnings�about�commands�containing�newlines<br> 846344318��socketcall�should�wrap�recvmmsg�and�sendmmsg<br> 847344337��Fix�unhandled�syscall:�mach:41�(_kernelrpc_mach_port_guard_trap)<br> 848344416��Fix�'make�regtest'�does�not�work�cleanly�on�OS�X<br> 849344499��Fix�compilation�for�Linux�kernel�>=�4.0.0<br> 850344512��OS�X:�unhandled�syscall:�unix:348�(__pthread_chdir),�<br> 851��������unix:349�(__pthread_fchdir)<br> 852344559��Garbage�collection�of�unused�segment�names�in�address�space�manager<br> 853344560��Fix�stack�traces�missing�penultimate�frame�on�OS�X<br> 854344621��Fix�memcheck/tests/err_disable4�test�on�OS�X<br> 855344686��Fix�suppression�for�pthread_rwlock_init�on�OS�X�10.10<br> 856344702��Fix�missing�libobjc�suppressions�on�OS�X�10.10<br> 857��������==�344543<br> 858344936��Fix�unhandled�syscall:�unix:473�(readlinkat)�on�OS�X�10.10<br> 859344939��Fix�memcheck/tests/xml1�on�OS�X�10.10<br> 860345016��helgrind/tests/locked_vs_unlocked2�is�failing�sometimes<br> 861345079��Fix�build�problems�in�VEX/useful/test_main.c<br> 862345126��Incorrect�handling�of�VIDIOC_G_AUDIO�and�G_AUDOUT<br> 863345177��arm64:�prfm�(reg)�not�implemented<br> 864345215��Performance�improvements�for�the�register�allocator<br> 865345248��add�support�for�Solaris�OS�in�valgrind<br> 866345338��TIOCGSERIAL�and�TIOCSSERIAL�ioctl�support�on�Linux<br> 867345394��Fix�memcheck/tests/strchr�on�OS�X<br> 868345637��Fix�memcheck/tests/sendmsg�on�OS�X<br> 869345695��Add�POWERPC�support�for�AT_DCACHESIZE�and�HWCAP2<br> 870345824��Fix�aspacem�segment�mismatch:�seen�with�none/tests/bigcode<br> 871345887��Fix�an�assertion�in�the�address�space�manager<br> 872345928��amd64:�callstack�only�contains�current�function�for�small�stacks<br> 873345984��disInstr(arm):�unhandled�instruction:�0xEE193F1E<br> 874345987��MIPS64:�Implement�cavium�LHX�instruction<br> 875346031��MIPS:�Implement�support�for�the�CvmCount�register�(rhwr�%0,�31)<br> 876346185��Fix�typo�saving�altivec�register�v24<br> 877346267��Compiler�warnings�for�PPC64�code�on�call�to�LibVEX_GuestPPC64_get_XER()<br> 878��������and�LibVEX_GuestPPC64_get_CR()<br> 879346270��Regression�tests�none/tests/jm_vec/isa_2_07�and<br> 880��������none/tests/test_isa_2_07_part2�have�failures�on�PPC64�little�endian<br> 881346307��fuse�filesystem�syscall�deadlocks<br> 882346324��PPC64�missing�support�for�lbarx,�lharx,�stbcx�and�sthcx�instructions<br> 883346411��MIPS:�SysRes::_valEx�handling�is�incorrect<br> 884346416��Add�support�for�LL_IOC_PATH2FID�and�LL_IOC_GETPARENT�Lustre�ioctls<br> 885346474��PPC64�Power�8,�spr�TEXASRU�register�not�supported<br> 886346487��Compiler�generates�"note"�about�a�future�ABI�change�for�PPC64<br> 887346562��MIPS64:�lwl/lwr�instructions�are�performing�64bit�loads<br> 888��������and�causing�spurious�"invalid�read�of�size�8"�warnings<br> 889346801��Fix�link�error�on�OS�X:�_vgModuleLocal_sf_maybe_extend_stack<br> 890347151��Fix�suppression�for�pthread_rwlock_init�on�OS�X�10.8<br> 891347233��Fix�memcheck/tests/strchr�on�OS�X�10.10�(Haswell)�<br> 892347322��Power�PC�regression�test�cleanup<br> 893347379��valgrind�--leak-check=full�leak�errors�from�system�libs�on�OS�X�10.8<br> 894��������==�217236<br> 895347389��unhandled�syscall:�373�(Linux�ARM�syncfs)<br> 896347686��Patch�set�to�cleanup�PPC64�regtests<br> 897347978��Remove�bash�dependencies�where�not�needed<br> 898347982��OS�X:�undefined�symbols�for�architecture�x86_64:�"_global"�[..]<br> 899347988��Memcheck:�the�'impossible'�happened:�unexpected�size�for�Addr�(OSX/wine)<br> 900��������==�345929<br> 901348102��Patch�updating�v4l2�API�support<br> 902348247��amd64�front�end:�jno�jumps�wrongly�when�overflow�is�not�set<br> 903348269��Improve�mmap�MAP_HUGETLB�support.<br> 904348334��(ppc)�valgrind�does�not�simulate�dcbfl�-�then�my�program�terminates<br> 905348345��Assertion�fails�for�negative�lineno<br> 906348377��Unsupported�ARM�instruction:�yield<br> 907348565��Fix�detection�of�command�line�option�availability�for�clang<br> 908348574��vex�amd64->IR�pcmpistri�SSE4.2�unsupported�(pcmpistri�$0x18)<br> 909348728��Fix�broken�check�for�VIDIOC_G_ENC_INDEX<br> 910348748��Fix�redundant�condition<br> 911348890��Fix�clang�warning�about�unsupported�--param�inline-unit-growth=900<br> 912348949��Bogus�"ERROR:�--ignore-ranges:�suspiciously�large�range"<br> 913349034��Add�Lustre�ioctls�LL_IOC_GROUP_LOCK�and�LL_IOC_GROUP_UNLOCK<br> 914349086��Fix�UNKNOWN�task�message�[id�3406,�to�mach_task_self(),�[..]<br> 915349087��Fix�UNKNOWN�task�message�[id�3410,�to�mach_task_self(),�[..]<br> 916349626��Implemented�additional�Xen�hypercalls<br> 917349769��Clang/osx:�ld:�warning:�-read_only_relocs�cannot�be�used�with�x86_64<br> 918349790��Clean�up�of�the�hardware�capability�checking�utilities.<br> 919349828��memcpy�intercepts�memmove�causing�src/dst�overlap�error�(ppc64�ld.so)<br> 920349874��Fix�typos�in�source�code<br> 921349879��memcheck:�add�handwritten�assembly�for�helperc_LOADV*<br> 922349941��di_notify_mmap�might�create�wrong�start/size�DebugInfoMapping<br> 923350062��vex�x86->IR:�0x66�0xF�0x3A�0xB�(ROUNDSD)�on�OS�X<br> 924350202��Add�limited�param�to�'monitor�block_list'<br> 925350290��s390x:�Support�instructions�fixbr(a)<br> 926350359��memcheck/tests/x86/fxsave�hangs�indefinetely�on�OS�X<br> 927350809��Fix�none/tests/async-sigs�for�Solaris<br> 928350811��Remove�reference�to�--db-attach�which�has�been�removed.<br> 929350813��Memcheck/x86:�enable�handwritten�assembly�helpers�for�x86/Solaris�too<br> 930350854��hard-to-understand�code�in�VG_(load_ELF)()<br> 931351140��arm64�syscalls�setuid�(146)�and�setresgid�(149)�not�implemented<br> 932351386��Solaris:�Cannot�run�ld.so.1�under�Valgrind<br> 933351474��Fix�VG_(iseqsigset)�as�obvious<br> 934351531��Typo�in�/include/vki/vki-xen-physdev.h�header�guard<br> 935351756��Intercept�platform_memchr$VARIANT$Haswell�on�OS�X<br> 936351858��ldsoexec�support�on�Solaris<br> 937351873��Newer�gcc�doesn't�allow�__builtin_tabortdc[i]�in�ppc32�mode<br> 938352130��helgrind�reports�false�races�for�printfs�using�mempcpy�on�FILE*�state<br> 939352284��s390:�Conditional�jump�depends�on�uninitialised�value(s)�in�vfprintf�<br> 940352320��arm64�crash�on�none/tests/nestedfs<br> 941352765��Vbit�test�fails�on�Power�6<br> 942352768��The�mbar�instruction�is�missing�from�the�Power�PC�support<br> 943352769��Power�PC�program�priority�register�(PPR)�is�not�supported<br> 944n-i-bz��Provide�implementations�of�certain�compiler�builtins�to�support<br> 945��������compilers�that�may�not�provide�those<br> 946n-i-bz��Old�STABS�code�is�still�being�compiled,�but�never�used.�Remove�it.<br> 947n-i-bz��Fix�compilation�on�distros�with�glibc�<�2.5<br> 948n-i-bz��(vex�3098)�Avoid�generation�of�Neon�insns�on�non-Neon�hosts<br> 949n-i-bz��Enable�rt_sigpending�syscall�on�ppc64�linux.<br> 950n-i-bz��mremap�did�not�work�properly�on�shared�memory<br> 951n-i-bz��Fix�incorrect�sizeof�expression�in�syswrap-xen.c�reported�by�Coverity<br> 952n-i-bz��In�VALGRIND_PRINTF�write�out�thread�name,�if�any,�to�xml<br> 953<br> 954(3.11.0.TEST1:��8�September�2015,�vex�r3187,�valgrind�r15646)<br> 955(3.11.0.TEST2:�21�September�2015,�vex�r3193,�valgrind�r15667)<br> 956(3.11.0:�������22�September�2015,�vex�r3195,�valgrind�r15674)<br> 957<br> 958<br> 959<br> 960Release�3.10.1�(25�November�2014)<br> 961~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 9623.10.1�is�a�bug�fix�release.��It�fixes�various�bugs�reported�in�3.10.0<br> 963and�backports�fixes�for�all�reported�missing�AArch64�ARMv8�instructions<br> 964and�syscalls�from�the�trunk.��If�you�package�or�deliver�3.10.0�for�others<br> 965to�use,�you�might�want�to�consider�upgrading�to�3.10.1�instead.<br> 966<br> 967The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 968stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 969but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 970bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 971than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 972are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 973<br> 974To�see�details�of�a�given�bug,�visit<br> 975��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 976where�XXXXXX�is�the�bug�number�as�listed�below.<br> 977<br> 978335440��arm64:�ld1�(single�structure)�is�not�implemented<br> 979335713��arm64:�unhanded�instruction:�prfm�(immediate)<br> 980339020��ppc64:�memcheck/tests/ppc64/power_ISA2_05�failing�in�nightly�build<br> 981339182��ppc64:�AvSplat�ought�to�load�destination�vector�register�with�[..]<br> 982339336��PPC64�store�quad�instruction�(stq)�is�not�supposed�to�change�[..]<br> 983339433��ppc64�lxvw4x�instruction�uses�four�32-byte�loads<br> 984339645��Use�correct�tag�names�in�sys_getdents/64�wrappers<br> 985339706��Fix�false�positive�for�ioctl(TIOCSIG)�on�linux<br> 986339721��assertion�'check_sibling�==�sibling'�failed�in�readdwarf3.c�...<br> 987339853��arm64�times�syscall�unknown<br> 988339855��arm64�unhandled�getsid/setsid�syscalls<br> 989339858��arm64�dmb�sy�not�implemented<br> 990339926��Unhandled�instruction�0x1E674001�(frintx)�on�aarm64<br> 991339927��Unhandled�instruction�0x9E7100C6�(fcvtmu)�on�aarch64<br> 992339938��disInstr(arm64):�unhandled�instruction�0x4F8010A4�(fmla)<br> 993��������==�339950<br> 994339940��arm64:�unhandled�syscall:�83�(sys_fdatasync)�+�patch<br> 995340033��arm64:�unhandled�insn�dmb�ishld�and�some�other�isb-dmb-dsb�variants<br> 996340028��unhandled�syscalls�for�arm64�(msync,�pread64,�setreuid�and�setregid)<br> 997340036��arm64:�Unhandled�instruction�ld4�(multiple�structures,�no�offset)<br> 998340236��arm64:�unhandled�syscalls:�mknodat,�fchdir,�chroot,�fchownat<br> 999340509��arm64:�unhandled�instruction�fcvtas<br> 1000340630��arm64:�fchmod�(52)�and�fchown�(55)�syscalls�not�recognized<br> 1001340632��arm64:�unhandled�instruction�fcvtas<br> 1002340722��Resolve�"UNKNOWN�attrlist�flags�0:0x10000000"<br> 1003340725��AVX2:�Incorrect�decoding�of�vpbroadcast{b,w}�reg,reg�forms<br> 1004340788��warning:�unhandled�syscall:�318�(getrandom)<br> 1005340807��disInstr(arm):�unhandled�instruction:�0xEE989B20<br> 1006340856��disInstr(arm64):�unhandled�instruction�0x1E634C45�(fcsel)<br> 1007340922��arm64:�unhandled�getgroups/setgroups�syscalls<br> 1008350251��Fix�typo�in�VEX�utility�program�(test_main.c).<br> 1009350407��arm64:�unhandled�instruction�ucvtf�(vector,�integer)<br> 1010350809��none/tests/async-sigs�breaks�when�run�under�cron�on�Solaris<br> 1011350811��update�README.solaris�after�r15445<br> 1012350813��Use�handwritten�memcheck�assembly�helpers�on�x86/Solaris�[..]<br> 1013350854��strange�code�in�VG_(load_ELF)()<br> 1014351140��arm64�syscalls�setuid�(146)�and�setresgid�(149)�not�implemented<br> 1015n-i-bz��DRD�and�Helgrind:�Handle�Imbe_CancelReservation�(clrex�on�ARM)<br> 1016n-i-bz��Add�missing�]]�to�terminate�CDATA.<br> 1017n-i-bz��Glibc�versions�prior�to�2.5�do�not�define�PTRACE_GETSIGINFO<br> 1018n-i-bz��Enable�sys_fadvise64_64�on�arm32.<br> 1019n-i-bz��Add�test�cases�for�all�remaining�AArch64�SIMD,�FP�and�memory�insns.<br> 1020n-i-bz��Add�test�cases�for�all�known�arm64�load/store�instructions.<br> 1021n-i-bz��PRE(sys_openat):�when�checking�whether�ARG1�==�VKI_AT_FDCWD�[..]<br> 1022n-i-bz��Add�detection�of�old�ppc32�magic�instructions�from�bug�278808.<br> 1023n-i-bz��exp-dhat:�Implement�missing�function�"dh_malloc_usable_size".<br> 1024n-i-bz��arm64:�Implement�"fcvtpu�w,�s".<br> 1025n-i-bz��arm64:�implement�ADDP�and�various�others<br> 1026n-i-bz��arm64:�Implement�{S,U}CVTF�(scalar,�fixedpt).<br> 1027n-i-bz��arm64:�enable�FCVT{A,N}S�X,S.<br> 1028<br> 1029(3.10.1:�25�November�2014,�vex�r3026,�valgrind�r14785)<br> 1030<br> 1031<br> 1032<br> 1033Release�3.10.0�(10�September�2014)<br> 1034~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 1035<br> 10363.10.0�is�a�feature�release�with�many�improvements�and�the�usual<br> 1037collection�of�bug�fixes.<br> 1038<br> 1039This�release�supports�X86/Linux,�AMD64/Linux,�ARM32/Linux,�ARM64/Linux,<br> 1040PPC32/Linux,�PPC64BE/Linux,�PPC64LE/Linux,�S390X/Linux,�MIPS32/Linux,<br> 1041MIPS64/Linux,�ARM/Android,�MIPS32/Android,�X86/Android,�X86/MacOSX�10.9<br> 1042and�AMD64/MacOSX�10.9.��Support�for�MacOSX�10.8�and�10.9�is<br> 1043significantly�improved�relative�to�the�3.9.0�release.<br> 1044<br> 1045*�==================�PLATFORM�CHANGES�=================<br> 1046<br> 1047*�Support�for�the�64-bit�ARM�Architecture�(AArch64�ARMv8).��This�port<br> 1048��is�mostly�complete,�and�is�usable,�but�some�SIMD�instructions�are�as<br> 1049��yet�unsupported.<br> 1050<br> 1051*�Support�for�little-endian�variant�of�the�64-bit�POWER�architecture.<br> 1052<br> 1053*�Support�for�Android�on�MIPS32.<br> 1054<br> 1055*�Support�for�64bit�FPU�on�MIPS32�platforms.<br> 1056<br> 1057*�Both�32-�and�64-bit�executables�are�supported�on�MacOSX�10.8�and�10.9.<br> 1058<br> 1059*�Configuration�for�and�running�on�Android�targets�has�changed.<br> 1060��See�README.android�in�the�source�tree�for�details.<br> 1061<br> 1062*�==================�DEPRECATED�FEATURES�=================<br> 1063<br> 1064*�--db-attach�is�now�deprecated�and�will�be�removed�in�the�next<br> 1065��valgrind�feature�release.��The�built-in�GDB�server�capabilities�are<br> 1066��superior�and�should�be�used�instead.�Learn�more�here:<br> 1067��http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver<br> 1068<br> 1069*�====================�TOOL�CHANGES�====================<br> 1070<br> 1071*�Memcheck:<br> 1072<br> 1073��-�Client�code�can�now�selectively�disable�and�re-enable�reporting�of<br> 1074����invalid�address�errors�in�specific�ranges�using�the�new�client<br> 1075����requests�VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE�and<br> 1076����VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.<br> 1077<br> 1078��-�Leak�checker:�there�is�a�new�leak�check�heuristic�called<br> 1079����"length64".��This�is�used�to�detect�interior�pointers�pointing�8<br> 1080����bytes�inside�a�block,�on�the�assumption�that�the�first�8�bytes<br> 1081����holds�the�value�"block�size�-�8".��This�is�used�by<br> 1082����sqlite3MemMalloc,�for�example.<br> 1083<br> 1084��-�Checking�of�system�call�parameters:�if�a�syscall�parameter<br> 1085����(e.g.�bind�struct�sockaddr,�sendmsg�struct�msghdr,�...)�has<br> 1086����several�fields�not�initialised,�an�error�is�now�reported�for�each<br> 1087����field.�Previously,�an�error�was�reported�only�for�the�first<br> 1088����uninitialised�field.<br> 1089<br> 1090��-�Mismatched�alloc/free�checking:�a�new�flag<br> 1091����--show-mismatched-frees=no|yes�[yes]�makes�it�possible�to�turn�off<br> 1092����such�checks�if�necessary.<br> 1093<br> 1094*�Helgrind:<br> 1095<br> 1096��-�Improvements�to�error�messages:<br> 1097<br> 1098����o�Race�condition�error�message�involving�heap�allocated�blocks�also<br> 1099������show�the�thread�number�that�allocated�the�raced-on�block.<br> 1100<br> 1101����o�All�locks�referenced�by�an�error�message�are�now�announced.<br> 1102������Previously,�some�error�messages�only�showed�the�lock�addresses.<br> 1103<br> 1104����o�The�message�indicating�where�a�lock�was�first�observed�now�also<br> 1105������describes�the�address/location�of�the�lock.<br> 1106<br> 1107��-�Helgrind�now�understands�the�Ada�task�termination�rules�and<br> 1108����creates�a�happens-before�relationship�between�a�terminated�task<br> 1109����and�its�master.��This�avoids�some�false�positives�and�avoids�a�big<br> 1110����memory�leak�when�a�lot�of�Ada�tasks�are�created�and�terminated.<br> 1111����The�interceptions�are�only�activated�with�forthcoming�releases�of<br> 1112����gnatpro�>=�7.3.0w-20140611�and�gcc�>=�5.0.<br> 1113<br> 1114��-�A�new�GDB�server�monitor�command�"info�locks"�giving�the�list�of<br> 1115����locks,�their�location,�and�their�status.<br> 1116<br> 1117*�Callgrind:<br> 1118<br> 1119��-�callgrind_control�now�supports�the�--vgdb-prefix�argument,<br> 1120����which�is�needed�if�valgrind�was�started�with�this�same�argument.<br> 1121<br> 1122*�====================�OTHER�CHANGES�====================<br> 1123<br> 1124*�Unwinding�through�inlined�function�calls.��Stack�unwinding�can�now<br> 1125��make�use�of�Dwarf3�inlined-unwind�information�if�it�is�available.<br> 1126��The�practical�effect�is�that�inlined�calls�become�visible�in�stack<br> 1127��traces.��The�suppression�matching�machinery�has�been�adjusted<br> 1128��accordingly.��This�is�controlled�by�the�new�option<br> 1129��--read-inline-info=yes|no.��Currently�this�is�enabled�by�default<br> 1130��only�on�Linux�and�Android�targets�and�only�for�the�tools�Memcheck,<br> 1131��Helgrind�and�DRD.<br> 1132<br> 1133*�Valgrind�can�now�read�EXIDX�unwind�information�on�32-bit�ARM<br> 1134��targets.��If�an�object�contains�both�CFI�and�EXIDX�unwind<br> 1135��information,�Valgrind�will�prefer�the�CFI�over�the�EXIDX.��This<br> 1136��facilitates�unwinding�through�system�libraries�on�arm-android<br> 1137��targets.<br> 1138<br> 1139*�Address�description�logic�has�been�improved�and�is�now�common<br> 1140��between�Memcheck�and�Helgrind,�resulting�in�better�address<br> 1141��descriptions�for�some�kinds�of�error�messages.<br> 1142<br> 1143*�Error�messages�about�dubious�arguments�(eg,�to�malloc�or�calloc)�are<br> 1144��output�like�other�errors.��This�means�that�they�can�be�suppressed<br> 1145��and�they�have�a�stack�trace.<br> 1146<br> 1147*�The�C++�demangler�has�been�updated�for�better�C++11�support.<br> 1148<br> 1149*�New�and�modified�GDB�server�monitor�features:<br> 1150<br> 1151��-�Thread�local�variables/storage�(__thread)�can�now�be�displayed.<br> 1152<br> 1153��-�The�GDB�server�monitor�command�"v.info�location�<address>"<br> 1154����displays�information�about�an�address.��The�information�produced<br> 1155����depends�on�the�tool�and�on�the�options�given�to�valgrind.<br> 1156����Possibly,�the�following�are�described:�global�variables,�local<br> 1157����(stack)�variables,�allocated�or�freed�blocks,�...<br> 1158<br> 1159��-�The�option�"--vgdb-stop-at=event1,event2,..."�allows�the�user�to<br> 1160����ask�the�GDB�server�to�stop�at�the�start�of�program�execution,�at<br> 1161����the�end�of�the�program�execution�and�on�Valgrind�internal�errors.<br> 1162<br> 1163��-�A�new�monitor�command�"v.info�stats"�shows�various�Valgrind�core<br> 1164����and�tool�statistics.<br> 1165<br> 1166��-�A�new�monitor�command�"v.set�hostvisibility"�allows�the�GDB�server<br> 1167����to�provide�access�to�Valgrind�internal�host�status/memory.<br> 1168<br> 1169*�A�new�option�"--aspace-minaddr=<address>"�can�in�some�situations<br> 1170��allow�the�use�of�more�memory�by�decreasing�the�address�above�which<br> 1171��Valgrind�maps�memory.��It�can�also�be�used�to�solve�address<br> 1172��conflicts�with�system�libraries�by�increasing�the�default�value.<br> 1173��See�user�manual�for�details.<br> 1174<br> 1175*�The�amount�of�memory�used�by�Valgrind�to�store�debug�info�(unwind<br> 1176��info,�line�number�information�and�symbol�data)�has�been<br> 1177��significantly�reduced,�even�though�Valgrind�now�reads�more<br> 1178��information�in�order�to�support�unwinding�of�inlined�function�calls.<br> 1179<br> 1180*�Dwarf3�handling�with�--read-var-info=yes�has�been�improved:<br> 1181<br> 1182��-�Ada�and�C�struct�containing�VLAs�no�longer�cause�a�"bad�DIE"�error<br> 1183<br> 1184��-�Code�compiled�with<br> 1185����-ffunction-sections�-fdata-sections�-Wl,--gc-sections<br> 1186����no�longer�causes�assertion�failures.<br> 1187<br> 1188*�Improved�checking�for�the�--sim-hints=�and�--kernel-variant=<br> 1189��options.��Unknown�strings�are�now�detected�and�reported�to�the�user<br> 1190��as�a�usage�error.<br> 1191<br> 1192*�The�semantics�of�stack�start/end�boundaries�in�the�valgrind.h<br> 1193��VALGRIND_STACK_REGISTER�client�request�has�been�clarified�and<br> 1194��documented.��The�convention�is�that�start�and�end�are�respectively<br> 1195��the�lowest�and�highest�addressable�bytes�of�the�stack.<br> 1196<br> 1197*�====================�FIXED�BUGS�====================<br> 1198<br> 1199The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 1200stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 1201but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 1202bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 1203than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 1204are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 1205<br> 1206To�see�details�of�a�given�bug,�visit<br> 1207��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 1208where�XXXXXX�is�the�bug�number�as�listed�below.<br> 1209<br> 1210175819��Support�for�ipv6�socket�reporting�with�--track-fds<br> 1211232510��make�distcheck�fails<br> 1212249435��Analyzing�wine�programs�with�callgrind�triggers�a�crash<br> 1213278972��support�for�inlined�function�calls�in�stacktraces�and�suppression<br> 1214��������==�199144<br> 1215291310��FXSAVE�instruction�marks�memory�as�undefined�on�amd64<br> 1216303536��ioctl�for�SIOCETHTOOL�(ethtool(8))�isn't�wrapped<br> 1217308729��vex�x86->IR:�unhandled�instruction�bytes�0xf�0x5�(syscall)�<br> 1218315199��vgcore�file�for�threaded�app�does�not�show�which�thread�crashed<br> 1219315952��tun/tap�ioctls�are�not�supported<br> 1220323178��Unhandled�instruction:�PLDW�register�(ARM)�<br> 1221323179��Unhandled�instruction:�PLDW�immediate�(ARM)<br> 1222324050��Helgrind:�SEGV�because�of�unaligned�stack�when�using�movdqa<br> 1223325110��Add�test-cases�for�Power�ISA�2.06�insns:�divdo/divdo.�and�divduo/divduo.<br> 1224325124��[MIPSEL]�Compilation�error<br> 1225325477��Phase�4�support�for�IBM�Power�ISA�2.07<br> 1226325538��cavium�octeon�mips64,�valgrind�reported�"dumping�core"�[...]<br> 1227325628��Phase�5�support�for�IBM�Power�ISA�2.07<br> 1228325714��Empty�vgcore�but�RLIMIT_CORE�is�big�enough�(too�big)�<br> 1229325751��Missing�the�two�privileged�Power�PC�Transactional�Memory�Instructions<br> 1230325816��Phase�6�support�for�IBM�Power�ISA�2.07<br> 1231325856��Make�SGCheck�fail�gracefully�on�unsupported�platforms<br> 1232326026��Iop�names�for�count�leading�zeros/sign�bits�incorrectly�imply�[..]<br> 1233326436��DRD:�False�positive�in�libstdc++�std::list::push_back<br> 1234326444��Cavium�MIPS�Octeon�Specific�Load�Indexed�Instructions<br> 1235326462��Refactor�vgdb�to�isolate�invoker�stuff�into�separate�module<br> 1236326469��amd64->IR:�0x66�0xF�0x3A�0x63�0xC1�0xE�(pcmpistri�0x0E)<br> 1237326623��DRD:�false�positive�conflict�report�in�a�field�assignment<br> 1238326724��Valgrind�does�not�compile�on�OSX�1.9�Mavericks<br> 1239326816��Intercept�for�__strncpy_sse2_unaligned�missing?<br> 1240326921��coregrind�fails�to�compile�m_trampoline.S�with�MIPS/Linux�port�of�V<br> 1241326983��Clear�direction�flag�after�tests�on�amd64.<br> 1242327212��Do�not�prepend�the�current�directory�to�absolute�path�names.<br> 1243327223��Support�for�Cavium�MIPS�Octeon�Atomic�and�Count�Instructions<br> 1244327238��Callgrind�Assertion�'passed�<=�last_bb->cjmp_count'�failed<br> 1245327284��s390x:�Fix�translation�of�the�risbg�instruction<br> 1246327639��vex�amd64->IR�pcmpestri�SSE4.2�instruction�is�unsupported�0x34<br> 1247327837��dwz�compressed�alternate�.debug_info�and�.debug_str�not�read�correctly<br> 1248327916��DW_TAG_typedef�may�have�no�name<br> 1249327943��s390x:�add�a�redirection�for�the�'index'�function<br> 1250328100��XABORT�not�implemented<br> 1251328205��Implement�additional�Xen�hypercalls<br> 1252328454��add�support�Backtraces�with�ARM�unwind�tables�(EXIDX)<br> 1253328455��s390x:�SIGILL�after�emitting�wrong�register�pair�for�ldxbr<br> 1254328711��valgrind.1�manpage�"memcheck�options"�section�is�badly�generated<br> 1255328878��vex�amd64->IR�pcmpestri�SSE4.2�instruction�is�unsupported�0x14<br> 1256329612��Incorrect�handling�of�AT_BASE�for�image�execution�<br> 1257329694��clang�warns�about�using�uninitialized�variable�<br> 1258329956��valgrind�crashes�when�lmw/stmw�instructions�are�used�on�ppc64<br> 1259330228��mmap�must�align�to�VKI_SHMLBA�on�mips32<br> 1260330257��LLVM�does�not�support�`-mno-dynamic-no-pic`�option<br> 1261330319��amd64->IR:�unhandled�instruction�bytes:�0xF�0x1�0xD5�(xend)<br> 1262330459��--track-fds=yes�doesn't�track�eventfds<br> 1263330469��Add�clock_adjtime�syscall�support<br> 1264330594��Missing�sysalls�on�PowerPC�/�uClibc<br> 1265330622��Add�test�to�regression�suite�for�POWER�instruction:�dcbzl<br> 1266330939��Support�for�AMD's�syscall�instruction�on�x86<br> 1267��������==�308729<br> 1268330941��Typo�in�PRE(poll)�syscall�wrapper<br> 1269331057��unhandled�instruction:�0xEEE01B20�(vfma.f64)�(has�patch)<br> 1270331254��Fix�expected�output�for�memcheck/tests/dw4<br> 1271331255��Fix�race�condition�in�test�none/tests/coolo_sigaction<br> 1272331257��Fix�type�of�jump�buffer�in�test�none/tests/faultstatus<br> 1273331305��configure�uses�bash�specific�syntax<br> 1274331337��s390x�WARNING:�unhandled�syscall:�326�(dup3)<br> 1275331380��Syscall�param�timer_create(evp)�points�to�uninitialised�byte(s)<br> 1276331476��Patch�to�handle�ioctl�0x5422�on�Linux�(x86�and�amd64)<br> 1277331829��Unexpected�ioctl�opcode�sign�extension<br> 1278331830��ppc64:�WARNING:�unhandled�syscall:�96/97<br> 1279331839��drd/tests/sem_open�specifies�invalid�semaphore�name�<br> 1280331847��outcome�of�drd/tests/thread_name�is�nondeterministic<br> 1281332037��Valgrind�cannot�handle�Thumb�"add�pc,�reg"<br> 1282332055��drd�asserts�on�platforms�with�VG_STACK_REDZONE_SZB�==�0�and<br> 1283��������consistency�checks�enabled<br> 1284332263��intercepts�for�pthread_rwlock_timedrdlock�and<br> 1285��������pthread_rwlock_timedwrlock�are�incorrect<br> 1286332265��drd�could�do�with�post-rwlock_init�and�pre-rwlock_destroy<br> 1287��������client�requests<br> 1288332276��Implement�additional�Xen�hypercalls<br> 1289332658��ldrd.w�r1,�r2,�[PC,�#imm]�does�not�adjust�for�32bit�alignment<br> 1290332765��Fix�ms_print�to�create�temporary�files�in�a�proper�directory<br> 1291333072��drd:�Add�semaphore�annotations<br> 1292333145��Tests�for�missaligned�PC+#imm�access�for�arm<br> 1293333228��AAarch64�Missing�instruction�encoding:�mrs�%[reg],�ctr_el0<br> 1294333230��AAarch64�missing�instruction�encodings:�dc,�ic,�dsb.<br> 1295333248��WARNING:�unhandled�syscall:�unix:443<br> 1296333428��ldr.w�pc�[rD,�#imm]�instruction�leads�to�assertion<br> 1297333501��cachegrind:�assertion:�Cache�set�count�is�not�a�power�of�two.<br> 1298��������==�336577<br> 1299��������==�292281<br> 1300333666��Recognize�MPX�instructions�and�bnd�prefix.<br> 1301333788��Valgrind�does�not�support�the�CDROM_DISC_STATUS�ioctl�(has�patch)<br> 1302333817��Valgrind�reports�the�memory�areas�written�to�by�the�SG_IO<br> 1303��������ioctl�as�untouched<br> 1304334049��lzcnt�fails�silently�(x86_32)<br> 1305334384��Valgrind�does�not�have�support�Little�Endian�support�for<br> 1306��������IBM�POWER�PPC�64<br> 1307334585��recvmmsg�unhandled�(+patch)�(arm)<br> 1308334705��sendmsg�and�recvmsg�should�guard�against�bogus�msghdr�fields.<br> 1309334727��Build�fails�with�-Werror=format-security<br> 1310334788��clarify�doc�about�--log-file�initial�program�directory<br> 1311334834��PPC64�Little�Endian�support,�patch�2<br> 1312334836��PPC64�Little�Endian�support,�patch�3�testcase�fixes<br> 1313334936��patch�to�fix�false�positives�on�alsa�SNDRV_CTL_*�ioctls<br> 1314335034��Unhandled�ioctl:�HCIGETDEVLIST<br> 1315335155��vgdb,�fix�error�print�statement.<br> 1316335262��arm64:�movi�8bit�version�is�not�supported<br> 1317335263��arm64:�dmb�instruction�is�not�implemented<br> 1318335441��unhandled�ioctl�0x8905�(SIOCATMARK)�when�running�wine�under�valgrind<br> 1319335496��arm64:�sbc/abc�instructions�are�not�implemented<br> 1320335554��arm64:�unhandled�instruction:�abs<br> 1321335564��arm64:�unhandled�instruction:�fcvtpu��Xn,�Sn<br> 1322335735��arm64:�unhandled�instruction:�cnt<br> 1323335736��arm64:�unhandled�instruction:�uaddlv<br> 1324335848��arm64:�unhandled�instruction:�{s,u}cvtf<br> 1325335902��arm64:�unhandled�instruction:�sli<br> 1326335903��arm64:�unhandled�instruction:�umull�(vector)<br> 1327336055��arm64:�unhandled�instruction:�mov�(element)<br> 1328336062��arm64:�unhandled�instruction:�shrn{,2}<br> 1329336139��mip64:�[...]�valgrind�hangs�and�spins�on�a�single�core�[...]<br> 1330336189��arm64:�unhandled�Instruction:�mvn<br> 1331336435��Valgrind�hangs�in�pthread_spin_lock�consuming�100%�CPU<br> 1332336619��valgrind�--read-var-info=yes�doesn't�handle�DW_TAG_restrict_type<br> 1333336772��Make�moans�about�unknown�ioctls�more�informative<br> 1334336957��Add�a�section�about�the�Solaris/illumos�port�on�the�webpage<br> 1335337094��ifunc�wrapper�is�broken�on�ppc64<br> 1336337285��fcntl�commands�F_OFD_SETLK,�F_OFD_SETLKW,�and�F_OFD_GETLK�not�supported<br> 1337337528��leak�check�heuristic�for�block�prefixed�by�length�as�64bit�number<br> 1338337740��Implement�additional�Xen�hypercalls<br> 1339337762��guest_arm64_toIR.c:4166�(dis_ARM64_load_store):�Assertion�`0'�failed.<br> 1340337766��arm64-linux:�unhandled�syscalls�mlock�(228)�and�mlockall�(230)<br> 1341337871��deprecate�--db-attach<br> 1342338023��Add�support�for�all�V4L2/media�ioctls<br> 1343338024��inlined�functions�are�not�shown�if�DW_AT_ranges�is�used<br> 1344338106��Add�support�for�'kcmp'�syscall<br> 1345338115��DRD:�computed�conflict�set�differs�from�actual�after�fork<br> 1346338160��implement�display�of�thread�local�storage�in�gdbsrv<br> 1347338205��configure.ac�and�check�for�-Wno-tautological-compare<br> 1348338300��coredumps�are�missing�one�byte�of�every�segment<br> 1349338445��amd64�vbit-test�fails�with�unknown�opcodes�used�by�arm64�VEX<br> 1350338499��--sim-hints�parsing�broken�due�to�wrong�order�in�tokens<br> 1351338615��suppress�glibc�2.20�optimized�strcmp�implementation�for�ARMv7<br> 1352338681��Unable�to�unwind�through�clone�thread�created�on�i386-linux<br> 1353338698��race�condition�between�gdbsrv�and�vgdb�on�startup<br> 1354338703��helgrind�on�arm-linux�gets�false�positives�in�dynamic�loader<br> 1355338791��alt�dwz�files�can�be�relative�of�debug/main�file<br> 1356338878��on�MacOS:�assertion�'VG_IS_PAGE_ALIGNED(clstack_end+1)'�failed<br> 1357338932��build�V-trunk�with�gcc-trunk<br> 1358338974��glibc�2.20�changed�size�of�struct�sigaction�sa_flags�field�on�s390<br> 1359345079��Fix�build�problems�in�VEX/useful/test_main.c<br> 1360n-i-bz��Fix�KVM_CREATE_IRQCHIP�ioctl�handling<br> 1361n-i-bz��s390x:�Fix�memory�corruption�for�multithreaded�applications<br> 1362n-i-bz��vex�arm->IR:�allow�PC�as�basereg�in�some�LDRD�cases<br> 1363n-i-bz��internal�error�in�Valgrind�if�vgdb�transmit�signals�when�ptrace�invoked<br> 1364n-i-bz��Fix�mingw64�support�in�valgrind.h�(dev@,�9�May�2014)<br> 1365n-i-bz��drd�manual:�Document�how�to�C++11�programs�that�use�class�"std::thread"<br> 1366n-i-bz��Add�command-line�option�--default-suppressions<br> 1367n-i-bz��Add�support�for�BLKDISCARDZEROES�ioctl<br> 1368n-i-bz��ppc32/64:�fix�a�regression�with�the�mtfsb0/mtfsb1�instructions<br> 1369n-i-bz��Add�support�for sys_pivot_root�and�sys_unshare<br> 1370<br> 1371(3.10.0.BETA1:��2�September�2014,�vex�r2940,�valgrind�r14428)<br> 1372(3.10.0.BETA2:��8�September�2014,�vex�r2950,�valgrind�r14503)<br> 1373(3.10.0:�������10�September�2014,�vex�r2950,�valgrind�r14514)<br> 1374<br> 1375<br> 1376<br> 1377Release�3.9.0�(31�October�2013)<br> 1378~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 13793.9.0�is�a�feature�release�with�many�improvements�and�the�usual<br> 1380collection�of�bug�fixes.<br> 1381<br> 1382This�release�supports�X86/Linux,�AMD64/Linux,�ARM/Linux,�PPC32/Linux,<br> 1383PPC64/Linux,�S390X/Linux,�MIPS32/Linux,�MIPS64/Linux,�ARM/Android,<br> 1384X86/Android,�X86/MacOSX�10.7�and�AMD64/MacOSX�10.7.��Support�for<br> 1385MacOSX�10.8�is�significantly�improved�relative�to�the�3.8.0�release.<br> 1386<br> 1387*�==================�PLATFORM�CHANGES�=================<br> 1388<br> 1389*�Support�for�MIPS64�LE�and�BE�running�Linux.��Valgrind�has�been<br> 1390��tested�on�MIPS64�Debian�Squeeze�and�Debian�Wheezy�distributions.<br> 1391<br> 1392*�Support�for�MIPS�DSP�ASE�on�MIPS32�platforms.<br> 1393<br> 1394*�Support�for�s390x�Decimal�Floating�Point�instructions�on�hosts�that<br> 1395��have�the�DFP�facility�installed.<br> 1396<br> 1397*�Support�for�POWER8�(Power�ISA�2.07)�instructions<br> 1398<br> 1399*�Support�for�Intel�AVX2�instructions.��This�is�available�only�on�64<br> 1400��bit�code.<br> 1401<br> 1402*�Initial�support�for�Intel�Transactional�Synchronization�Extensions,<br> 1403��both�RTM�and�HLE.<br> 1404<br> 1405*�Initial�support�for�Hardware�Transactional�Memory�on�POWER.<br> 1406<br> 1407*�Improved�support�for�MacOSX�10.8�(64-bit�only).��Memcheck�can�now<br> 1408��run�large�GUI�apps�tolerably�well.<br> 1409<br> 1410*�====================�TOOL�CHANGES�====================<br> 1411<br> 1412*�Memcheck:<br> 1413<br> 1414��-�Improvements�in�handling�of�vectorised�code,�leading�to<br> 1415����significantly�fewer�false�error�reports.��You�need�to�use�the�flag<br> 1416����--partial-loads-ok=yes�to�get�the�benefits�of�these�changes.<br> 1417<br> 1418��-�Better�control�over�the�leak�checker.��It�is�now�possible�to<br> 1419����specify�which�leak�kinds�(definite/indirect/possible/reachable)<br> 1420����should�be�displayed,�which�should�be�regarded�as�errors,�and�which<br> 1421����should�be�suppressed�by�a�given�leak�suppression.��This�is�done<br> 1422����using�the�options�--show-leak-kinds=kind1,kind2,..,<br> 1423����--errors-for-leak-kinds=kind1,kind2,..�and�an�optional<br> 1424����"match-leak-kinds:"�line�in�suppression�entries,�respectively.<br> 1425<br> 1426����Note�that�generated�leak�suppressions�contain�this�new�line�and<br> 1427����are�therefore�more�specific�than�in�previous�releases.��To�get�the<br> 1428����same�behaviour�as�previous�releases,�remove�the�"match-leak-kinds:"<br> 1429����line�from�generated�suppressions�before�using�them.<br> 1430<br> 1431��-�Reduced�"possible�leak"�reports�from�the�leak�checker�by�the�use<br> 1432����of�better�heuristics.��The�available�heuristics�provide�detection<br> 1433����of�valid�interior�pointers�to�std::stdstring,�to�new[]�allocated<br> 1434����arrays�with�elements�having�destructors�and�to�interior�pointers<br> 1435����pointing�to�an�inner�part�of�a�C++�object�using�multiple<br> 1436����inheritance.��They�can�be�selected�individually�using�the<br> 1437����option�--leak-check-heuristics=heur1,heur2,...<br> 1438<br> 1439��-�Better�control�of�stacktrace�acquisition�for�heap-allocated<br> 1440����blocks.��Using�the�--keep-stacktraces�option,�it�is�possible�to<br> 1441����control�independently�whether�a�stack�trace�is�acquired�for�each<br> 1442����allocation�and�deallocation.��This�can�be�used�to�create�better<br> 1443����"use�after�free"�errors�or�to�decrease�Valgrind's�resource<br> 1444����consumption�by�recording�less�information.<br> 1445<br> 1446��-�Better�reporting�of�leak�suppression�usage.��The�list�of�used<br> 1447����suppressions�(shown�when�the�-v�option�is�given)�now�shows,�for<br> 1448����each�leak�suppressions,�how�many�blocks�and�bytes�it�suppressed<br> 1449����during�the�last�leak�search.<br> 1450<br> 1451*�Helgrind:<br> 1452<br> 1453��-�False�errors�resulting�from�the�use�of�statically�initialised<br> 1454����mutexes�and�condition�variables�(PTHREAD_MUTEX_INITIALISER,�etc)<br> 1455����have�been�removed.<br> 1456<br> 1457��-�False�errors�resulting�from�the�use�of�pthread_cond_waits�that<br> 1458����timeout,�have�been�removed.<br> 1459<br> 1460*�====================�OTHER�CHANGES�====================<br> 1461<br> 1462*�Some�attempt�to�tune�Valgrind's�space�requirements�to�the�expected<br> 1463��capabilities�of�the�target:<br> 1464<br> 1465��-�The�default�size�of�the�translation�cache�has�been�reduced�from�8<br> 1466����sectors�to�6�on�Android�platforms,�since�each�sector�occupies<br> 1467����about�40MB�when�using�Memcheck.<br> 1468<br> 1469��-�The�default�size�of�the�translation�cache�has�been�increased�to�16<br> 1470����sectors�on�all�other�platforms,�reflecting�the�fact�that�large<br> 1471����applications�require�instrumentation�and�storage�of�huge�amounts<br> 1472����of�code.��For�similar�reasons,�the�number�of�memory�mapped<br> 1473����segments�that�can�be�tracked�has�been�increased�by�a�factor�of�6.<br> 1474<br> 1475��-�In�all�cases,�the�maximum�number�of�sectors�in�the�translation<br> 1476����cache�can�be�controlled�by�the�new�flag�--num-transtab-sectors.<br> 1477<br> 1478*�Changes�in�how�debug�info�(line�numbers,�etc)�is�read:<br> 1479<br> 1480��-�Valgrind�no�longer�temporarily�mmaps�the�entire�object�to�read<br> 1481����from�it.��Instead,�reading�is�done�through�a�small�fixed�sized<br> 1482����buffer.��This�avoids�virtual�memory�usage�spikes�when�Valgrind<br> 1483����reads�debuginfo�from�large�shared�objects.<br> 1484<br> 1485��-�A�new�experimental�remote�debug�info�server.��Valgrind�can�read<br> 1486����debug�info�from�a�different�machine�(typically,�a�build�host)<br> 1487����where�debuginfo�objects�are�stored.��This�can�save�a�lot�of�time<br> 1488����and�hassle�when�running�Valgrind�on�resource-constrained�targets<br> 1489����(phones,�tablets)�when�the�full�debuginfo�objects�are�stored<br> 1490����somewhere�else.��This�is�enabled�by�the�--debuginfo-server=<br> 1491����option.<br> 1492<br> 1493��-�Consistency�checking�between�main�and�debug�objects�can�be<br> 1494����disabled�using�the�--allow-mismatched-debuginfo�option.<br> 1495<br> 1496*�Stack�unwinding�by�stack�scanning,�on�ARM.��Unwinding�by�stack<br> 1497��scanning�can�recover�stack�traces�in�some�cases�when�the�normal<br> 1498��unwind�mechanisms�fail.��Stack�scanning�is�best�described�as�"a<br> 1499��nasty,�dangerous�and�misleading�hack"�and�so�is�disabled�by�default.<br> 1500��Use�--unw-stack-scan-thresh�and�--unw-stack-scan-frames�to�enable<br> 1501��and�control�it.<br> 1502<br> 1503*�Detection�and�merging�of�recursive�stack�frame�cycles.��When�your<br> 1504��program�has�recursive�algorithms,�this�limits�the�memory�used�by<br> 1505��Valgrind�for�recorded�stack�traces�and�avoids�recording<br> 1506��uninteresting�repeated�calls.��This�is�controlled�by�the�command<br> 1507��line�option�--merge-recursive-frame�and�by�the�monitor�command<br> 1508��"v.set�merge-recursive-frames".<br> 1509<br> 1510*�File�name�and�line�numbers�for�used�suppressions.��The�list�of�used<br> 1511��suppressions�(shown�when�the�-v�option�is�given)�now�shows,�for�each<br> 1512��used�suppression,�the�file�name�and�line�number�where�the�suppression<br> 1513��is�defined.<br> 1514<br> 1515*�New�and�modified�GDB�server�monitor�features:<br> 1516<br> 1517��-�valgrind.h�has�a�new�client�request,�VALGRIND_MONITOR_COMMAND,<br> 1518����that�can�be�used�to�execute�gdbserver�monitor�commands�from�the<br> 1519����client�program.<br> 1520<br> 1521��-�A�new�monitor�command,�"v.info�open_fds",�that�gives�the�list�of<br> 1522����open�file�descriptors�and�additional�details.<br> 1523<br> 1524��-�An�optional�message�in�the�"v.info�n_errs_found"�monitor�command,<br> 1525����for�example�"v.info�n_errs_found�test�1234�finished",�allowing�a<br> 1526����comment�string�to�be�added�to�the�process�output,�perhaps�for�the<br> 1527����purpose�of�separating�errors�of�different�tests�or�test�phases.<br> 1528<br> 1529��-�A�new�monitor�command�"v.info�execontext"�that�shows�information<br> 1530����about�the�stack�traces�recorded�by�Valgrind.<br> 1531<br> 1532��-�A�new�monitor�command�"v.do�expensive_sanity_check_general"�to�run<br> 1533����some�internal�consistency�checks.<br> 1534<br> 1535*�New�flag�--sigill-diagnostics�to�control�whether�a�diagnostic<br> 1536��message�is�printed�when�the�JIT�encounters�an�instruction�it�can't<br> 1537��translate.��The�actual�behavior�--�delivery�of�SIGILL�to�the<br> 1538��application�--�is�unchanged.<br> 1539<br> 1540*�The�maximum�amount�of�memory�that�Valgrind�can�use�on�64�bit�targets<br> 1541��has�been�increased�from�32GB�to�64GB.��This�should�make�it�possible<br> 1542��to�run�applications�on�Memcheck�that�natively�require�up�to�about�35GB.<br> 1543<br> 1544*�====================�FIXED�BUGS�====================<br> 1545<br> 1546The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 1547stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 1548but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 1549bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 1550than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 1551are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 1552<br> 1553To�see�details�of�a�given�bug,�visit<br> 1554��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 1555where�XXXXXX�is�the�bug�number�as�listed�below.<br> 1556<br> 1557123837��system�call:�4th�argument�is�optional,�depending�on�cmd<br> 1558135425��memcheck�should�tell�you�where�Freed�blocks�were�Mallocd<br> 1559164485��VG_N_SEGNAMES�and�VG_N_SEGMENTS�are�(still)�too�small<br> 1560207815��Adds�some�of�the�drm�ioctls�to�syswrap-linux.c�<br> 1561251569��vex�amd64->IR:�0xF�0x1�0xF9�0xBF�0x90�0xD0�0x3�0x0�(RDTSCP)<br> 1562252955��Impossible�to�compile�with�ccache<br> 1563253519��Memcheck�reports�auxv�pointer�accesses�as�invalid�reads.<br> 1564263034��Crash�when�loading�some�PPC64�binaries<br> 1565269599��Increase�deepest�backtrace<br> 1566274695��s390x:�Support�"compare�to/from�logical"�instructions�(z196)<br> 1567275800��s390x:�Autodetect�cache�info�(part�2)<br> 1568280271��Valgrind�reports�possible�memory�leaks�on�still-reachable�std::string<br> 1569284540��Memcheck�shouldn't�count�suppressions�matching�still-reachable�[..]<br> 1570289578��Backtraces�with�ARM�unwind�tables�(stack�scan�flags)<br> 1571296311��Wrong�stack�traces�due�to�-fomit-frame-pointer�(x86)�<br> 1572304832��ppc32:�build�failure<br> 1573305431��Use�find_buildid�shdr�fallback�for�separate�.debug�files<br> 1574305728��Add�support�for�AVX2�instructions<br> 1575305948��ppc64:�code�generation�for�ShlD64�/�ShrD64�asserts<br> 1576306035��s390x:�Fix�IR�generation�for�LAAG�and�friends<br> 1577306054��s390x:�Condition�code�computation�for�convert-to-int/logical<br> 1578306098��s390x:�alternate�opcode�form�for�convert�to/from�fixed<br> 1579306587��Fix�cache�line�detection�from�auxiliary�vector�for�PPC.<br> 1580306783��Mips�unhandled�syscall�:��4025��/��4079��/�4182<br> 1581307038��DWARF2�CFI�reader:�unhandled�DW_OP_�opcode�0x8�(DW_OP_const1u�et�al)<br> 1582307082��HG�false�positive:�pthread_cond_destroy:�destruction�of�unknown�CV<br> 1583307101��sys_capget�second�argument�can�be�NULL<br> 1584307103��sys_openat:�If�pathname�is�absolute,�then�dirfd�is�ignored.<br> 1585307106��amd64->IR:�f0�0f�c0�02�(lock�xadd�byte)<br> 1586307113��s390x:�DFP�support<br> 1587307141��valgrind�does't�work�in�mips-linux�system<br> 1588307155��filter_gdb�should�filter�out�syscall-template.S�T_PSEUDO<br> 1589307285��x86_amd64�feature�test�for�avx�in�test�suite�is�wrong<br> 1590307290��memcheck�overlap�testcase�needs�memcpy�version�filter<br> 1591307463��Please�add�"&limit=0"�to�the�"all�open�bugs"�link<br> 1592307465��--show-possibly-lost=no�should�reduce�the�error�count�/�exit�code<br> 1593307557��Leaks�on�Mac�OS�X�10.7.5�libraries�at�ImageLoader::recursiveInit[..]<br> 1594307729��pkgconfig�support�broken�valgrind.pc<br> 1595307828��Memcheck�false�errors�SSE�optimized�wcscpy,�wcscmp,�wcsrchr,�wcschr<br> 1596307955��Building�valgrind�3.7.0-r4�fails�in�Gentoo�AMD64�when�using�clang<br> 1597308089��Unhandled�syscall�on�ppc64:�prctl<br> 1598308135��PPC32�MPC8xx�has�16�bytes�cache�size<br> 1599308321��testsuite�memcheck�filter�interferes�with�gdb_filter�<br> 1600308333�==�307106<br> 1601308341��vgdb�should�report�process�exit�(or�fatal�signal)<br> 1602308427��s390�memcheck�reports�tsearch�cjump/cmove�depends�on�uninit<br> 1603308495��Remove�build�dependency�on�installed�Xen�headers<br> 1604308573��Internal�error�on�64-bit�instruction�executed�in�32-bit�mode<br> 1605308626��==�308627<br> 1606308627��pmovmskb�validity�bit�propagation�is�imprecise<br> 1607308644��vgdb�command�for�having�the�info�for�the�track-fds�option<br> 1608308711��give�more�info�about�aspacemgr�and�arenas�in�out_of_memory<br> 1609308717��ARM:�implement�fixed-point�VCVT.F64.[SU]32<br> 1610308718��ARM�implement�SMLALBB�family�of�instructions<br> 1611308886��Missing�support�for�PTRACE_SET/GETREGSET�<br> 1612308930��syscall�name_to_handle_at�(303�on�amd64)�not�handled<br> 1613309229��V-bit�tester�does�not�report�number�of�tests�generated<br> 1614309323��print�unrecognized�instuction�on�MIPS<br> 1615309425��Provide�a�--sigill-diagnostics�flag�to�suppress�illegal�[..]<br> 1616309427��SSE�optimized�stpncpy�trigger�uninitialised�value�[..]�errors<br> 1617309430��Self�hosting�ppc64�encounters�a�vassert�error�on�operand�type<br> 1618309600��valgrind�is�a�bit�confused�about�0-sized�sections<br> 1619309823��Generate�errors�for�still�reachable�blocks<br> 1620309921��PCMPISTRI�validity�bit�propagation�is�imprecise<br> 1621309922��none/tests/ppc64/test_dfp5�sometimes�fails<br> 1622310169��The�Iop_CmpORD�class�of�Iops�is�not�supported�by�the�vbit�checker.<br> 1623310424��--read-var-info�does�not�properly�describe�static�variables�<br> 1624310792��search�additional�path�for�debug�symbols<br> 1625310931��s390x:�Message-security�assist�(MSA)�instruction�extension�[..]<br> 1626311100��PPC�DFP�implementation�of�the�integer�operands�is�inconsistent�[..]<br> 1627311318��ARM:�"128-bit�constant�is�not�implemented"�error�message<br> 1628311407��ssse3�bcopy�(actually�converted�memcpy)�causes�invalid�read�[..]<br> 1629311690��V�crashes�because�it�redirects�branches�inside�of�a�redirected�function<br> 1630311880��x86_64:�make�regtest�hangs�at�shell_valid1<br> 1631311922��WARNING:�unhandled�syscall:�170<br> 1632311933��==�251569<br> 1633312171��ppc:�insn�selection�for�DFP<br> 1634312571��Rounding�mode�call�wrong�for�the�DFP�Iops�[..]<br> 1635312620��Change�to�Iop_D32toD64�[..]�for�s390�DFP�support�broke�ppc�[..]<br> 1636312913��Dangling�pointers�error�should�also�report�the�alloc�stack�trace<br> 1637312980��Building�on�Mountain�Lion�generates�some�compiler�warnings<br> 1638313267��Adding�MIPS64/Linux�port�to�Valgrind<br> 1639313348��==�251569<br> 1640313354��==�251569<br> 1641313811��Buffer�overflow�in�assert_fail<br> 1642314099��coverity�pointed�out�error�in�VEX�guest_ppc_toIR.c�insn_suffix<br> 1643314269��ppc:�dead�code�in�insn�selection<br> 1644314718��ARM:�implement�integer�divide�instruction�(sdiv�and�udiv)<br> 1645315345��cl-format.xml�and�callgrind/dump.c�don't�agree�on�using�cfl=�or�cfi=<br> 1646315441��sendmsg�syscall�should�ignore�unset�msghdr�msg_flags<br> 1647315534��msgrcv�inside�a�thread�causes�valgrind�to�hang�(block)<br> 1648315545��Assertion�'(UChar*)sec->tt[tteNo].tcptr�<=�(UChar*)hcode'�failed<br> 1649315689��disInstr(thumb):�unhandled�instruction:�0xF852�0x0E10�(LDRT)<br> 1650315738��disInstr(arm):�unhandled�instruction:�0xEEBE0BEE�(vcvt.s32.f64)<br> 1651315959��valgrind�man�page�has�bogus�SGCHECK�(and�no�BBV)�OPTIONS�section<br> 1652316144��valgrind.1�manpage�contains�unknown�???�strings�[..]<br> 1653316145��callgrind�command�line�options�in�manpage�reference�(unknown)�[..]<br> 1654316145��callgrind�command�line�options�in�manpage�reference�[..]<br> 1655316181��drd:�Fixed�a�4x�slowdown�for�certain�applications<br> 1656316503��Valgrind�does�not�support�SSE4�"movntdqa"�instruction<br> 1657316535��Use�of�|signed�int|�instead�of�|size_t|�in�valgrind�messages<br> 1658316696���fluidanimate�program�of�parsec�2.1�stuck�<br> 1659316761��syscall�open_by_handle_at�(304�on�amd64,�342�on�x86)�not�handled<br> 1660317091��Use�-Wl,-Ttext-segment�when�static�linking�if�possible�[..]<br> 1661317186��"Impossible�happens"�when�occurs�VCVT�instruction�on�ARM<br> 1662317318��Support�for�Threading�Building�Blocks�"scalable_malloc"<br> 1663317444��amd64->IR:�0xC4�0x41�0x2C�0xC2�0xD2�0x8�(vcmpeq_uqps)<br> 1664317461��Fix�BMI�assembler�configure�check�and�avx2/bmi/fma�vgtest�prereqs<br> 1665317463��bmi�testcase�IR�SANITY�CHECK�FAILURE<br> 1666317506��memcheck/tests/vbit-test�fails�with�unknown�opcode�after�[..]<br> 1667318050��libmpiwrap�fails�to�compile�with�out-of-source�build<br> 1668318203��setsockopt�handling�needs�to�handle�SOL_SOCKET/SO_ATTACH_FILTER<br> 1669318643��annotate_trace_memory�tests�infinite�loop�on�arm�and�ppc�[..]<br> 1670318773��amd64->IR:�0xF3�0x48�0x0F�0xBC�0xC2�0xC3�0x66�0x0F<br> 1671318929��Crash�with:�disInstr(thumb):�0xF321�0x0001�(ssat16)<br> 1672318932��Add�missing�PPC64�and�PPC32�system�call�support<br> 1673319235��--db-attach=yes�is�broken�with�Yama�(ptrace�scoping)�enabled<br> 1674319395��Crash�with�unhandled�instruction�on�STRT�(Thumb)�instructions<br> 1675319494��VEX�Makefile-gcc�standalone�build�update�after�r2702<br> 1676319505��[MIPSEL]�Crash:�unhandled�UNRAY�operator.<br> 1677319858��disInstr(thumb):�unhandled�instruction�on�instruction�STRBT<br> 1678319932��disInstr(thumb):�unhandled�instruction�on�instruction�STRHT<br> 1679320057��Problems�when�we�try�to�mmap�more�than�12�memory�pages�on�MIPS32<br> 1680320063��Memory�from�PTRACE_GET_THREAD_AREA�is�reported�uninitialised<br> 1681320083��disInstr(thumb):�unhandled�instruction�on�instruction�LDRBT<br> 1682320116��bind�on�AF_BLUETOOTH�produces�warnings�because�of�sockaddr_rc�padding<br> 1683320131��WARNING:�unhandled�syscall:�369�on�ARM�(prlimit64)<br> 1684320211��Stack�buffer�overflow�in�./coregrind/m_main.c�with�huge�TMPDIR<br> 1685320661��vgModuleLocal_read_elf_debug_info():�"Assertion�'!di->soname'<br> 1686320895��add�fanotify�support�(patch�included)<br> 1687320998��vex�amd64->IR�pcmpestri�and�pcmpestrm�SSE4.2�instruction<br> 1688321065��Valgrind�updates�for�Xen�4.3<br> 1689321148��Unhandled�instruction:�PLI�(Thumb�1,�2,�3)<br> 1690321363��Unhandled�instruction:�SSAX�(ARM�+�Thumb)<br> 1691321364��Unhandled�instruction:�SXTAB16�(ARM�+�Thumb)<br> 1692321466��Unhandled�instruction:�SHASX�(ARM�+�Thumb)<br> 1693321467��Unhandled�instruction:�SHSAX�(ARM�+�Thumb)<br> 1694321468��Unhandled�instruction:�SHSUB16�(ARM�+�Thumb)<br> 1695321619��Unhandled�instruction:�SHSUB8�(ARM�+�Thumb)<br> 1696321620��Unhandled�instruction:�UASX�(ARM�+�Thumb)<br> 1697321621��Unhandled�instruction:�USAX�(ARM�+�Thumb)<br> 1698321692��Unhandled�instruction:�UQADD16�(ARM�+�Thumb)<br> 1699321693��Unhandled�instruction:�LDRSBT�(Thumb)<br> 1700321694��Unhandled�instruction:�UQASX�(ARM�+�Thumb)<br> 1701321696��Unhandled�instruction:�UQSAX�(Thumb�+�ARM)<br> 1702321697��Unhandled�instruction:�UHASX�(ARM�+�Thumb)<br> 1703321703��Unhandled�instruction:�UHSAX�(ARM�+�Thumb)<br> 1704321704��Unhandled�instruction:�REVSH�(ARM�+�Thumb)<br> 1705321730��Add�cg_diff�and�cg_merge�man�pages<br> 1706321738��Add�vgdb�and�valgrind-listener�man�pages<br> 1707321814��==�315545<br> 1708321891��Unhandled�instruction:�LDRHT�(Thumb)<br> 1709321960��pthread_create()�then�alloca()�causing�invalid�stack�write�errors<br> 1710321969��ppc32�and�ppc64�don't�support�[lf]setxattr<br> 1711322254��Show�threadname�together�with�tid�if�set�by�application<br> 1712322294��Add�initial�support�for�IBM�Power�ISA�2.07<br> 1713322368��Assertion�failure�in�wqthread_hijack�under�OS�X�10.8<br> 1714322563��vex�mips->IR:�0x70�0x83�0xF0�0x3A<br> 1715322807��VALGRIND_PRINTF_BACKTRACE�writes�callstack�to�xml�and�text�to�stderr<br> 1716322851��0bXXX�binary�literal�syntax�is�not�standard�<br> 1717323035��Unhandled�instruction:�LDRSHT(Thumb)<br> 1718323036��Unhandled�instruction:�SMMLS�(ARM�and�Thumb)<br> 1719323116��The�memcheck/tests/ppc64/power_ISA2_05.c�fails�to�build�[..]<br> 1720323175��Unhandled�instruction:�SMLALD�(ARM�+�Thumb)<br> 1721323177��Unhandled�instruction:�SMLSLD�(ARM�+�Thumb)<br> 1722323432��Calling�pthread_cond_destroy()�or�pthread_mutex_destroy()�[..]<br> 1723323437��Phase�2�support�for�IBM�Power�ISA�2.07<br> 1724323713��Support�mmxext�(integer�sse)�subset�on�i386�(athlon)<br> 1725323803��Transactional�memory�instructions�are�not�supported�for�Power<br> 1726323893��SSE3�not�available�on�amd�cpus�in�valgrind<br> 1727323905��Probable�false�positive�from�Valgrind/drd�on�close()<br> 1728323912��valgrind.h�header�isn't�compatible�for�mingw64<br> 1729324047��Valgrind�doesn't�support�[LDR,ST]{S}[B,H]T�ARM�instructions<br> 1730324149��helgrind:�When�pthread_cond_timedwait�returns�ETIMEDOUT�[..]<br> 1731324181��mmap�does�not�handle�MAP_32BIT<br> 1732324227��memcheck�false�positive�leak�when�a�thread�calls�exit+block�[..]<br> 1733324421��Support�for�fanotify�API�on�ARM�architecture<br> 1734324514��gdbserver�monitor�cmd�output�behaviour�consistency�[..]<br> 1735324518��ppc64:�Emulation�of�dcbt�instructions�does�not�handle�[..]<br> 1736324546��none/tests/ppc32�test_isa_2_07_part2�requests�-m64<br> 1737324582��When�access�is�made�to�freed�memory,�report�both�allocation�[..]<br> 1738324594��Fix�overflow�computation�for�Power�ISA�2.06�insns:�mulldo/mulldo.<br> 1739324765��ppc64:�illegal�instruction�when�executing�none/tests/ppc64/jm-misc<br> 1740324816��Incorrect�VEX�implementation�for�xscvspdp/xvcvspdp�for�SNaN�inputs<br> 1741324834��Unhandled�instructions�in�Microsoft�C�run-time�for�x86_64<br> 1742324894��Phase�3�support�for�IBM�Power�ISA�2.07<br> 1743326091��drd:�Avoid�false�race�reports�from�optimized�strlen()�impls<br> 1744326113��valgrind�libvex�hwcaps�error�on�AMD64�<br> 1745n-i-bz��Some�wrong�command�line�options�could�be�ignored<br> 1746n-i-bz��patch�to�allow�fair-sched�on�android<br> 1747n-i-bz��report�error�for�vgdb�snapshot�requested�before�execution<br> 1748n-i-bz��same�as�303624�(fixed�in�3.8.0),�but�for�x86�android<br> 1749<br> 1750(3.9.0:�31�October�2013,�vex�r2796,�valgrind�r13708)<br> 1751<br> 1752<br> 1753<br> 1754Release�3.8.1�(19�September�2012)<br> 1755~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 17563.8.1�is�a�bug�fix�release.��It�fixes�some�assertion�failures�in�3.8.0<br> 1757that�occur�moderately�frequently�in�real�use�cases,�adds�support�for<br> 1758some�missing�instructions�on�ARM,�and�fixes�a�deadlock�condition�on<br> 1759MacOSX.��If�you�package�or�deliver�3.8.0�for�others�to�use,�you�might<br> 1760want�to�consider�upgrading�to�3.8.1�instead.<br> 1761<br> 1762The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 1763stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 1764but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 1765bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 1766than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 1767are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 1768<br> 1769To�see�details�of�a�given�bug,�visit<br> 1770��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 1771where�XXXXXX�is�the�bug�number�as�listed�below.<br> 1772<br> 1773284004��==�301281<br> 1774289584��Unhandled�instruction:�0xF�0x29�0xE5�(MOVAPS)<br> 1775295808��amd64->IR:�0xF3�0xF�0xBC�0xC0�(TZCNT)<br> 1776298281��wcslen�causes�false(?)�uninitialised�value�warnings<br> 1777301281��valgrind�hangs�on�OS�X�when�the�process�calls�system()<br> 1778304035��disInstr(arm):�unhandled�instruction�0xE1023053<br> 1779304867��implement�MOVBE�instruction�in�x86�mode<br> 1780304980��Assertion�'lo�<=�hi'�failed�in�vgModuleLocal_find_rx_mapping<br> 1781305042��amd64:�implement�0F�7F�encoding�of�movq�between�two�registers<br> 1782305199��ARM:�implement�QDADD�and�QDSUB<br> 1783305321��amd64->IR:�0xF�0xD�0xC�(prefetchw)<br> 1784305513��killed�by�fatal�signal:�SIGSEGV<br> 1785305690��DRD�reporting�invalid�semaphore�when�sem_trywait�fails<br> 1786305926��Invalid�alignment�checks�for�some�AVX�instructions<br> 1787306297��disInstr(thumb):�unhandled�instruction�0xE883�0x000C<br> 1788306310��3.8.0�release�tarball�missing�some�files<br> 1789306612��RHEL�6�glibc-2.X�default�suppressions�need�/lib*/libc-*patterns<br> 1790306664��vex�amd64->IR:�0x66�0xF�0x3A�0x62�0xD1�0x46�0x66�0xF<br> 1791n-i-bz��shmat�of�a�segment�>�4Gb�does�not�work�<br> 1792n-i-bz��simulate_control_c�script�wrong�USR1�signal�number�on�mips<br> 1793n-i-bz��vgdb�ptrace�calls�wrong�on�mips�[...]<br> 1794n-i-bz��Fixes�for�more�MPI�false�positives<br> 1795n-i-bz��exp-sgcheck's�memcpy�causes�programs�to�segfault<br> 1796n-i-bz��OSX�build�w/�clang:�asserts�at�startup<br> 1797n-i-bz��Incorrect�undef'dness�prop�for�Iop_DPBtoBCD�and�Iop_BCDtoDPB<br> 1798n-i-bz��fix�a�couple�of�union�tag-vs-field�mixups<br> 1799n-i-bz��OSX:�use�__NR_poll_nocancel�rather�than�__NR_poll<br> 1800<br> 1801The�following�bugs�were�fixed�in�3.8.0�but�not�listed�in�this�NEWS<br> 1802file�at�the�time:<br> 1803<br> 1804254088��Valgrind�should�know�about�UD2�instruction<br> 1805301280��==�254088<br> 1806301902��==�254088<br> 1807304754��NEWS�blows�TeX's�little�mind<br> 1808<br> 1809(3.8.1:�19�September�2012,�vex�r2537,�valgrind�r12996)<br> 1810<br> 1811<br> 1812<br> 1813Release�3.8.0�(10�August�2012)<br> 1814~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 18153.8.0�is�a�feature�release�with�many�improvements�and�the�usual<br> 1816collection�of�bug�fixes.<br> 1817<br> 1818This�release�supports�X86/Linux,�AMD64/Linux,�ARM/Linux,�PPC32/Linux,<br> 1819PPC64/Linux,�S390X/Linux,�MIPS/Linux,�ARM/Android,�X86/Android,<br> 1820X86/MacOSX�10.6/10.7�and�AMD64/MacOSX�10.6/10.7.��Support�for�recent<br> 1821distros�and�toolchain�components�(glibc�2.16,�gcc�4.7)�has�been�added.<br> 1822There�is�initial�support�for�MacOSX�10.8,�but�it�is�not�usable�for<br> 1823serious�work�at�present.<br> 1824<br> 1825*�==================�PLATFORM�CHANGES�=================<br> 1826<br> 1827*�Support�for�MIPS32�platforms�running�Linux.��Valgrind�has�been<br> 1828��tested�on�MIPS32�and�MIPS32r2�platforms�running�different�Debian<br> 1829��Squeeze�and�MeeGo�distributions.��Both�little-endian�and�big-endian<br> 1830��cores�are�supported.��The�tools�Memcheck,�Massif�and�Lackey�have<br> 1831��been�tested�and�are�known�to�work.�See�README.mips�for�more�details.<br> 1832<br> 1833*�Preliminary�support�for�Android�running�on�x86.<br> 1834<br> 1835*�Preliminary�(as-yet�largely�unusable)�support�for�MacOSX�10.8.<br> 1836<br> 1837*�Support�for�Intel�AVX�instructions�and�for�AES�instructions.��This<br> 1838��support�is�available�only�for�64�bit�code.<br> 1839<br> 1840*�Support�for�POWER�Decimal�Floating�Point�instructions.<br> 1841<br> 1842*�====================�TOOL�CHANGES�====================<br> 1843<br> 1844*�Non-libc�malloc�implementations�are�now�supported.��This�is�useful<br> 1845��for�tools�that�replace�malloc�(Memcheck,�Massif,�DRD,�Helgrind).<br> 1846��Using�the�new�option�--soname-synonyms,�such�tools�can�be�informed<br> 1847��that�the�malloc�implementation�is�either�linked�statically�into�the<br> 1848��executable,�or�is�present�in�some�other�shared�library�different<br> 1849��from�libc.so.��This�makes�it�possible�to�process�statically�linked<br> 1850��programs,�and�programs�using�other�malloc�libraries,�for�example<br> 1851��TCMalloc�or�JEMalloc.<br> 1852<br> 1853*�For�tools�that�provide�their�own�replacement�for�malloc�et�al,�the<br> 1854��option�--redzone-size=<number>�allows�users�to�specify�the�size�of<br> 1855��the�padding�blocks�(redzones)�added�before�and�after�each�client<br> 1856��allocated�block.��Smaller�redzones�decrease�the�memory�needed�by<br> 1857��Valgrind.��Bigger�redzones�increase�the�chance�to�detect�blocks<br> 1858��overrun�or�underrun.��Prior�to�this�change,�the�redzone�size�was<br> 1859��hardwired�to�16�bytes�in�Memcheck.<br> 1860<br> 1861*�Memcheck:<br> 1862<br> 1863��-�The�leak_check�GDB�server�monitor�command�now�can<br> 1864����control�the�maximum�nr�of�loss�records�to�output.<br> 1865<br> 1866��-�Reduction�of�memory�use�for�applications�allocating<br> 1867����many�blocks�and/or�having�many�partially�defined�bytes.<br> 1868<br> 1869��-�Addition�of�GDB�server�monitor�command�'block_list'�that�lists<br> 1870����the�addresses/sizes�of�the�blocks�of�a�leak�search�loss�record.<br> 1871<br> 1872��-�Addition�of�GDB�server�monitor�command�'who_points_at'�that�lists<br> 1873����the�locations�pointing�at�a�block.<br> 1874<br> 1875��-�If�a�redzone�size�>�0�is�given,�VALGRIND_MALLOCLIKE_BLOCK�now�will<br> 1876����detect�an�invalid�access�of�these�redzones,�by�marking�them<br> 1877����noaccess.��Similarly,�if�a�redzone�size�is�given�for�a�memory<br> 1878����pool,�VALGRIND_MEMPOOL_ALLOC�will�mark�the�redzones�no�access.<br> 1879����This�still�allows�to�find�some�bugs�if�the�user�has�forgotten�to<br> 1880����mark�the�pool�superblock�noaccess.<br> 1881<br> 1882��-�Performance�of�memory�leak�check�has�been�improved,�especially�in<br> 1883����cases�where�there�are�many�leaked�blocks�and/or�many�suppression<br> 1884����rules�used�to�suppress�leak�reports.<br> 1885<br> 1886��-�Reduced�noise�(false�positive)�level�on�MacOSX�10.6/10.7,�due�to<br> 1887����more�precise�analysis,�which�is�important�for�LLVM/Clang<br> 1888����generated�code.��This�is�at�the�cost�of�somewhat�reduced<br> 1889����performance.��Note�there�is�no�change�to�analysis�precision�or<br> 1890����costs�on�Linux�targets.<br> 1891<br> 1892*�DRD:<br> 1893<br> 1894��-�Added�even�more�facilities�that�can�help�finding�the�cause�of�a�data<br> 1895����race,�namely�the�command-line�option�--ptrace-addr�and�the�macro<br> 1896����DRD_STOP_TRACING_VAR(x).�More�information�can�be�found�in�the�manual.<br> 1897<br> 1898��-�Fixed�a�subtle�bug�that�could�cause�false�positive�data�race�reports.<br> 1899<br> 1900*�====================�OTHER�CHANGES�====================<br> 1901<br> 1902*�The�C++�demangler�has�been�updated�so�as�to�work�well�with�C++�<br> 1903��compiled�by�up�to�at�least�g++�4.6.<br> 1904<br> 1905*�Tool�developers�can�make�replacement/wrapping�more�flexible�thanks<br> 1906��to�the�new�option�--soname-synonyms.��This�was�reported�above,�but<br> 1907��in�fact�is�very�general�and�applies�to�all�function<br> 1908��replacement/wrapping,�not�just�to�malloc-family�functions.<br> 1909<br> 1910*�Round-robin�scheduling�of�threads�can�be�selected,�using�the�new<br> 1911��option�--fair-sched=�yes.��Prior�to�this�change,�the�pipe-based<br> 1912��thread�serialisation�mechanism�(which�is�still�the�default)�could<br> 1913��give�very�unfair�scheduling.��--fair-sched=yes�improves<br> 1914��responsiveness�of�interactive�multithreaded�applications,�and<br> 1915��improves�repeatability�of�results�from�the�thread�checkers�Helgrind<br> 1916��and�DRD.<br> 1917<br> 1918*�For�tool�developers:�support�to�run�Valgrind�on�Valgrind�has�been<br> 1919��improved.��We�can�now�routinely�Valgrind�on�Helgrind�or�Memcheck.<br> 1920<br> 1921*�gdbserver�now�shows�the�float�shadow�registers�as�integer<br> 1922��rather�than�float�values,�as�the�shadow�values�are�mostly<br> 1923��used�as�bit�patterns.<br> 1924<br> 1925*�Increased�limit�for�the�--num-callers�command�line�flag�to�500.<br> 1926<br> 1927*�Performance�improvements�for�error�matching�when�there�are�many<br> 1928��suppression�records�in�use.<br> 1929<br> 1930*�Improved�support�for�DWARF4�debugging�information�(bug�284184).<br> 1931<br> 1932*�Initial�support�for�DWZ�compressed�Dwarf�debug�info.<br> 1933<br> 1934*�Improved�control�over�the�IR�optimiser's�handling�of�the�tradeoff<br> 1935��between�performance�and�precision�of�exceptions.��Specifically,<br> 1936��--vex-iropt-precise-memory-exns�has�been�removed�and�replaced�by<br> 1937��--vex-iropt-register-updates,�with�extended�functionality.��This<br> 1938��allows�the�Valgrind�gdbserver�to�always�show�up�to�date�register<br> 1939��values�to�GDB.<br> 1940<br> 1941*�Modest�performance�gains�through�the�use�of�translation�chaining�for<br> 1942��JIT-generated�code.<br> 1943<br> 1944*�====================�FIXED�BUGS�====================<br> 1945<br> 1946The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 1947stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 1948but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 1949bugzilla�(https://bugs.kde.org/enter_bug.cgi?product=valgrind)�rather<br> 1950than�mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that<br> 1951are�not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 1952<br> 1953To�see�details�of�a�given�bug,�visit<br> 1954��https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 1955where�XXXXXX�is�the�bug�number�as�listed�below.<br> 1956<br> 1957197914��Building�valgrind�from�svn�now�requires�automake-1.10<br> 1958203877��increase�to�16Mb�maximum�allowed�alignment�for�memalign�et�al<br> 1959219156��Handle�statically�linked�malloc�or�other�malloc�lib�(e.g.�tcmalloc)�<br> 1960247386��make�perf�does�not�run�all�performance�tests<br> 1961270006��Valgrind�scheduler�unfair�<br> 1962270777��Adding�MIPS/Linux�port�to�Valgrind<br> 1963270796��s390x:�Removed�broken�support�for�the�TS�insn<br> 1964271438��Fix�configure�for�proper�SSE4.2�detection<br> 1965273114��s390x:�Support�TR,�TRE,�TROO,�TROT,�TRTO,�and�TRTT�instructions<br> 1966273475��Add�support�for�AVX�instructions<br> 1967274078��improved�configure�logic�for�mpicc<br> 1968276993��fix�mremap�'no�thrash�checks'�<br> 1969278313��Fedora�15/x64:�err�read�debug�info�with�--read-var-info=yes�flag<br> 1970281482��memcheck�incorrect�byte�allocation�count�in�realloc()�for�silly�argument<br> 1971282230��group�allocator�for�small�fixed�size,�use�it�for�MC_Chunk/SEc�vbit<br> 1972283413��Fix�wrong�sanity�check<br> 1973283671��Robustize�alignment�computation�in�LibVEX_Alloc<br> 1974283961��Adding�support�for�some�HCI�IOCTLs<br> 1975284124��parse_type_DIE:�confused�by:�DWARF�4<br> 1976284864��==�273475�(Add�support�for�AVX�instructions)<br> 1977285219��Too-restrictive�constraints�for�Thumb2�"SP�plus/minus�register"<br> 1978285662��(MacOSX):�Memcheck�needs�to�replace�memcpy/memmove<br> 1979285725��==�273475�(Add�support�for�AVX�instructions)<br> 1980286261��add�wrapper�for�linux�I2C_RDWR�ioctl<br> 1981286270��vgpreload�is�not�friendly�to�64->32�bit�execs,�gives�ld.so�warnings<br> 1982286374��Running�cachegrind�with�--branch-sim=yes�on�64-bit�PowerPC�program�fails<br> 1983286384��configure�fails�"checking�for�a�supported�version�of�gcc"<br> 1984286497��==�273475�(Add�support�for�AVX�instructions)<br> 1985286596��==�273475�(Add�support�for�AVX�instructions)<br> 1986286917��disInstr(arm):�unhandled�instruction:�QADD�(also�QSUB)<br> 1987287175��ARM:�scalar�VFP�fixed-point�VCVT�instructions�not�handled<br> 1988287260��Incorrect�conditional�jump�or�move�depends�on�uninitialised�value(s)<br> 1989287301��vex�amd64->IR:�0x66�0xF�0x38�0x41�0xC0�0xB8�0x0�0x0�(PHMINPOSUW)<br> 1990287307��==�273475�(Add�support�for�AVX�instructions)<br> 1991287858��VG_(strerror):�unknown�error�<br> 1992288298��(MacOSX)�unhandled�syscall�shm_unlink<br> 1993288995��==�273475�(Add�support�for�AVX�instructions)<br> 1994289470��Loading�of�large�Mach-O�thin�binaries�fails.<br> 1995289656��==�273475�(Add�support�for�AVX�instructions)<br> 1996289699��vgdb�connection�in�relay�mode�erroneously�closed�due�to�buffer�overrun�<br> 1997289823��==��293754�(PCMPxSTRx�not�implemented�for�16-bit�characters)<br> 1998289839��s390x:�Provide�support�for�unicode�conversion�instructions<br> 1999289939��monitor�cmd�'leak_check'�with�details�about�leaked�or�reachable�blocks<br> 2000290006��memcheck�doesn't�mark�%xmm�as�initialized�after�"pcmpeqw�%xmm�%xmm"<br> 2001290655��Add�support�for�AESKEYGENASSIST�instruction�<br> 2002290719��valgrind-3.7.0�fails�with�automake-1.11.2�due�to"pkglibdir"�usage<br> 2003290974��vgdb�must�align�pages�to�VKI_SHMLBA�(16KB)�on�ARM�<br> 2004291253��ES�register�not�initialised�in�valgrind�simulation<br> 2005291568��Fix�3DNOW-related�crashes�with�baseline�x86_64�CPU�(w�patch)<br> 2006291865��s390x:�Support�the�"Compare�Double�and�Swap"�family�of�instructions<br> 2007292300��==�273475�(Add�support�for�AVX�instructions)<br> 2008292430��unrecognized�instruction�in�__intel_get_new_mem_ops_cpuid<br> 2009292493��==�273475�(Add�support�for�AVX�instructions)<br> 2010292626��Missing�fcntl�F_SETOWN_EX�and�F_GETOWN_EX�support<br> 2011292627��Missing�support�for�some�SCSI�ioctls<br> 2012292628��none/tests/x86/bug125959-x86.c�triggers�undefined�behavior<br> 2013292841��==�273475�(Add�support�for�AVX�instructions)<br> 2014292993��implement�the�getcpu�syscall�on�amd64-linux<br> 2015292995��Implement�the�“cross�memory�attach”�syscalls�introduced�in�Linux�3.2<br> 2016293088��Add�some�VEX�sanity�checks�for�ppc64�unhandled�instructions<br> 2017293751��==�290655�(Add�support�for�AESKEYGENASSIST�instruction)<br> 2018293754��PCMPxSTRx�not�implemented�for�16-bit�characters<br> 2019293755��==�293754�(No�tests�for�PCMPxSTRx�on�16-bit�characters)<br> 2020293808��CLFLUSH�not�supported�by�latest�VEX�for�amd64<br> 2021294047��valgrind�does�not�correctly�emulate�prlimit64(...,�RLIMIT_NOFILE,�...)<br> 2022294048��MPSADBW�instruction�not�implemented<br> 2023294055��regtest�none/tests/shell�fails�when�locale�is�not�set�to�C<br> 2024294185��INT�0x44�(and�others)�not�supported�on�x86�guest,�but�used�by�Jikes�RVM<br> 2025294190��--vgdb-error=xxx�can�be�out�of�sync�with�errors�shown�to�the�user<br> 2026294191��amd64:�fnsave/frstor�and�0x66�size�prefixes�on�FP�instructions<br> 2027294260��disInstr_AMD64:�disInstr�miscalculated�next�%rip<br> 2028294523��--partial-loads-ok=yes�causes�false�negatives<br> 2029294617��vex�amd64->IR:�0x66�0xF�0x3A�0xDF�0xD1�0x1�0xE8�0x6A<br> 2030294736��vex�amd64->IR:�0x48�0xF�0xD7�0xD6�0x48�0x83<br> 2031294812��patch�allowing�to�run�(on�x86�at�least)�helgrind/drd�on�tool.<br> 2032295089��can�not�annotate�source�for�both�helgrind�and�drd<br> 2033295221��POWER�Processor�decimal�floating�point�instruction�support�missing<br> 2034295427��building�for�i386�with�clang�on�darwin11�requires�"-new_linker�linker"<br> 2035295428��coregrind/m_main.c�has�incorrect�x86�assembly�for�darwin<br> 2036295590��Helgrind:�Assertion�'cvi->nWaiters�>�0'�failed<br> 2037295617��ARM�-�Add�some�missing�syscalls<br> 2038295799��Missing�\n�with�get_vbits�in�gdbserver�when�line�is�%�80�[...]<br> 2039296229��Linux�user�input�device�ioctls�missing�wrappers<br> 2040296318��ELF�Debug�info�improvements�(more�than�one�rx/rw�mapping)<br> 2041296422��Add�translation�chaining�support<br> 2042296457��vex�amd64->IR:�0x66�0xF�0x3A�0xDF�0xD1�0x1�0xE8�0x6A�(dup�of�AES)<br> 2043296792��valgrind�3.7.0:�add�SIOCSHWTSTAMP�(0x89B0)�ioctl�wrapper<br> 2044296983��Fix�build�issues�on�x86_64/ppc64�without�32-bit�toolchains<br> 2045297078��gdbserver�signal�handling�problems�[..]<br> 2046297147��drd�false�positives�on�newly�allocated�memory<br> 2047297329��disallow�decoding�of�IBM�Power�DFP�insns�on�some�machines<br> 2048297497��POWER�Processor�decimal�floating�point�instruction�support�missing<br> 2049297701��Another�alias�for�strncasecmp_l�in�libc-2.13.so<br> 2050297911��'invalid�write'�not�reported�when�using�APIs�for�custom�mem�allocators.<br> 2051297976��s390x:�revisit�EX�implementation<br> 2052297991��Valgrind�interferes�with�mmap()+ftell()�<br> 2053297992��Support�systems�missing�WIFCONTINUED�(e.g.�pre-2.6.10�Linux)�<br> 2054297993��Fix�compilation�of�valgrind�with�gcc�-g3.<br> 2055298080��POWER�Processor�DFP�support�missing,�part�3<br> 2056298227��==�273475�(Add�support�for�AVX�instructions)<br> 2057298335��==�273475�(Add�support�for�AVX�instructions)<br> 2058298354��Unhandled�ARM�Thumb�instruction�0xEB0D�0x0585�(streq)<br> 2059298394��s390x:�Don't�bail�out�on�an�unknown�machine�model.��[..]<br> 2060298421��accept4()�syscall�(366)�support�is�missing�for�ARM<br> 2061298718��vex�amd64->IR:�0xF�0xB1�0xCB�0x9C�0x8F�0x45<br> 2062298732��valgrind�installation�problem�in�ubuntu�with�kernel�version�3.x<br> 2063298862��POWER�Processor�DFP�instruction�support�missing,�part�4<br> 2064298864��DWARF�reader�mis-parses�DW_FORM_ref_addr<br> 2065298943��massif�asserts�with�--pages-as-heap=yes�when�brk�is�changing�[..]<br> 2066299053��Support�DWARF4�DW_AT_high_pc�constant�form<br> 2067299104��==�273475�(Add�support�for�AVX�instructions)<br> 2068299316��Helgrind:�hg_main.c:628�(map_threads_lookup):�Assertion�'thr'�failed.<br> 2069299629��dup3()�syscall�(358)�support�is�missing�for�ARM<br> 2070299694��POWER�Processor�DFP�instruction�support�missing,�part�5<br> 2071299756��Ignore�--free-fill�for�MEMPOOL_FREE�and�FREELIKE�client�requests<br> 2072299803��==�273475�(Add�support�for�AVX�instructions)<br> 2073299804��==�273475�(Add�support�for�AVX�instructions)<br> 2074299805��==�273475�(Add�support�for�AVX�instructions)<br> 2075300140��ARM�-�Missing�(T1)�SMMUL<br> 2076300195��==�296318�(ELF�Debug�info�improvements�(more�than�one�rx/rw�mapping))<br> 2077300389��Assertion�`are_valid_hwcaps(VexArchAMD64,�[..])'�failed.<br> 2078300414��FCOM�and�FCOMP�unimplemented�for�amd64�guest<br> 2079301204��infinite�loop�in�canonicaliseSymtab�with�ifunc�symbol<br> 2080301229��==�203877�(increase�to�16Mb�maximum�allowed�alignment�for�memalign�etc)<br> 2081301265��add�x86�support�to�Android�build�<br> 2082301984��configure�script�doesn't�detect�certain�versions�of�clang<br> 2083302205��Fix�compiler�warnings�for�POWER�VEX�code�and�POWER�test�cases<br> 2084302287��Unhandled�movbe�instruction�on�Atom�processors<br> 2085302370��PPC:�fnmadd,�fnmsub,�fnmadds,�fnmsubs�insns�always�negate�the�result<br> 2086302536��Fix�for�the�POWER�Valgrind�regression�test:�memcheck-ISA2.0.<br> 2087302578��Unrecognized�isntruction�0xc5�0x32�0xc2�0xca�0x09�vcmpngess<br> 2088302656��==�273475�(Add�support�for�AVX�instructions)<br> 2089302709��valgrind�for�ARM�needs�extra�tls�support�for�android�emulator�[..]<br> 2090302827��add�wrapper�for�CDROM_GET_CAPABILITY<br> 2091302901��Valgrind�crashes�with�dwz�optimized�debuginfo<br> 2092302918��Enable�testing�of�the�vmaddfp�and�vnsubfp�instructions�in�the�testsuite<br> 2093303116��Add�support�for�the�POWER�instruction�popcntb<br> 2094303127��Power�test�suite�fixes�for�frsqrte,�vrefp,�and�vrsqrtefp�instructions.<br> 2095303250��Assertion�`instrs_in->arr_used�<=�10000'�failed�w/�OpenSSL�code<br> 2096303466��==�273475�(Add�support�for�AVX�instructions)<br> 2097303624��segmentation�fault�on�Android�4.1�(e.g.�on�Galaxy�Nexus�OMAP)�<br> 2098303963��strstr()�function�produces�wrong�results�under�valgrind�callgrind<br> 2099304054��CALL_FN_xx�macros�need�to�enforce�stack�alignment<br> 2100304561��tee�system�call�not�supported<br> 2101715750��(MacOSX):�Incorrect�invalid-address�errors�near�0xFFFFxxxx�(mozbug#)<br> 2102n-i-bz��Add�missing�gdbserver�xml�files�for�shadow�registers�for�ppc32<br> 2103n-i-bz��Bypass�gcc4.4/4.5�code�gen�bugs�causing�out�of�memory�or�asserts<br> 2104n-i-bz��Fix�assert�in�gdbserver�for�watchpoints�watching�the�same�address<br> 2105n-i-bz��Fix�false�positive�in�sys_clone�on�amd64�when�optional�args�[..]<br> 2106n-i-bz��s390x:�Shadow�registers�can�now�be�examined�using�vgdb<br> 2107<br> 2108(3.8.0-TEST3:��9�August�2012,�vex�r2465,�valgrind�r12865)<br> 2109(3.8.0:�������10�August�2012,�vex�r2465,�valgrind�r12866)<br> 2110<br> 2111<br> 2112<br> 2113Release�3.7.0�(5�November�2011)<br> 2114~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 21153.7.0�is�a�feature�release�with�many�significant�improvements�and�the<br> 2116usual�collection�of�bug�fixes.<br> 2117<br> 2118This�release�supports�X86/Linux,�AMD64/Linux,�ARM/Linux,�PPC32/Linux,<br> 2119PPC64/Linux,�S390X/Linux,�ARM/Android,�X86/Darwin�and�AMD64/Darwin.<br> 2120Support�for�recent�distros�and�toolchain�components�(glibc�2.14,�gcc<br> 21214.6,�MacOSX�10.7)�has�been�added.<br> 2122<br> 2123*�==================�PLATFORM�CHANGES�=================<br> 2124<br> 2125*�Support�for�IBM�z/Architecture�(s390x)�running�Linux.��Valgrind�can<br> 2126��analyse�64-bit�programs�running�on�z/Architecture.��Most�user�space<br> 2127��instructions�up�to�and�including�z10�are�supported.��Valgrind�has<br> 2128��been�tested�extensively�on�z9,�z10,�and�z196�machines�running�SLES<br> 2129��10/11,�RedHat�5/6m,�and�Fedora.�The�Memcheck�and�Massif�tools�are<br> 2130��known�to�work�well.�Callgrind,�Helgrind,�and�DRD�work�reasonably<br> 2131��well�on�z9�and�later�models.�See�README.s390�for�more�details.<br> 2132<br> 2133*�Preliminary�support�for�MacOSX�10.7�and�XCode�4.��Both�32-�and<br> 2134��64-bit�processes�are�supported.��Some�complex�threaded�applications<br> 2135��(Firefox)�are�observed�to�hang�when�run�as�32�bit�applications,<br> 2136��whereas�64-bit�versions�run�OK.��The�cause�is�unknown.��Memcheck<br> 2137��will�likely�report�some�false�errors.��In�general,�expect�some�rough<br> 2138��spots.��This�release�also�supports�MacOSX�10.6,�but�drops�support<br> 2139��for�10.5.<br> 2140<br> 2141*�Preliminary�support�for�Android�(on�ARM).��Valgrind�can�now�run<br> 2142��large�applications�(eg,�Firefox)�on�(eg)�a�Samsung�Nexus�S.��See<br> 2143��README.android�for�more�details,�plus�instructions�on�how�to�get<br> 2144��started.<br> 2145<br> 2146*�Support�for�the�IBM�Power�ISA�2.06�(Power7�instructions)<br> 2147<br> 2148*�General�correctness�and�performance�improvements�for�ARM/Linux,�and,<br> 2149��by�extension,�ARM/Android.<br> 2150<br> 2151*�Further�solidification�of�support�for�SSE�4.2�in�64-bit�mode.��AVX<br> 2152��instruction�set�support�is�under�development�but�is�not�available�in<br> 2153��this�release.<br> 2154<br> 2155*�Support�for�AIX5�has�been�removed.<br> 2156<br> 2157*�====================�TOOL�CHANGES�====================<br> 2158<br> 2159*�Memcheck:�some�incremental�changes:<br> 2160<br> 2161��-�reduction�of�memory�use�in�some�circumstances<br> 2162<br> 2163��-�improved�handling�of�freed�memory,�which�in�some�circumstances�<br> 2164����can�cause�detection�of�use-after-free�that�would�previously�have<br> 2165����been�missed<br> 2166<br> 2167��-�fix�of�a�longstanding�bug�that�could�cause�false�negatives�(missed<br> 2168����errors)�in�programs�doing�vector�saturated�narrowing�instructions.<br> 2169<br> 2170*�Helgrind:�performance�improvements�and�major�memory�use�reductions,<br> 2171��particularly�for�large,�long�running�applications�which�perform�many<br> 2172��synchronisation�(lock,�unlock,�etc)�events.��Plus�many�smaller<br> 2173��changes:<br> 2174<br> 2175��-�display�of�locksets�for�both�threads�involved�in�a�race<br> 2176<br> 2177��-�general�improvements�in�formatting/clarity�of�error�messages<br> 2178<br> 2179��-�addition�of�facilities�and�documentation�regarding�annotation<br> 2180����of�thread�safe�reference�counted�C++�classes<br> 2181<br> 2182��-�new�flag�--check-stack-refs=no|yes�[yes],�to�disable�race�checking<br> 2183����on�thread�stacks�(a�performance�hack)<br> 2184<br> 2185��-�new�flag�--free-is-write=no|yes�[no],�to�enable�detection�of�races<br> 2186����where�one�thread�accesses�heap�memory�but�another�one�frees�it,<br> 2187����without�any�coordinating�synchronisation�event<br> 2188<br> 2189*�DRD:�enabled�XML�output;�added�support�for�delayed�thread�deletion<br> 2190��in�order�to�detect�races�that�occur�close�to�the�end�of�a�thread<br> 2191��(--join-list-vol);�fixed�a�memory�leak�triggered�by�repeated�client<br> 2192��memory�allocatation�and�deallocation;�improved�Darwin�support.<br> 2193<br> 2194*�exp-ptrcheck:�this�tool�has�been�renamed�to�exp-sgcheck<br> 2195<br> 2196*�exp-sgcheck:�this�tool�has�been�reduced�in�scope�so�as�to�improve<br> 2197��performance�and�remove�checking�that�Memcheck�does�better.<br> 2198��Specifically,�the�ability�to�check�for�overruns�for�stack�and�global<br> 2199��arrays�is�unchanged,�but�the�ability�to�check�for�overruns�of�heap<br> 2200��blocks�has�been�removed.��The�tool�has�accordingly�been�renamed�to<br> 2201��exp-sgcheck�("Stack�and�Global�Array�Checking").<br> 2202<br> 2203*�====================�OTHER�CHANGES�====================<br> 2204<br> 2205*�GDB�server:�Valgrind�now�has�an�embedded�GDB�server.��That�means�it<br> 2206��is�possible�to�control�a�Valgrind�run�from�GDB,�doing�all�the�usual<br> 2207��things�that�GDB�can�do�(single�stepping,�breakpoints,�examining<br> 2208��data,�etc).��Tool-specific�functionality�is�also�available.��For<br> 2209��example,�it�is�possible�to�query�the�definedness�state�of�variables<br> 2210��or�memory�from�within�GDB�when�running�Memcheck;�arbitrarily�large<br> 2211��memory�watchpoints�are�supported,�etc.��To�use�the�GDB�server,�start<br> 2212��Valgrind�with�the�flag�--vgdb-error=0�and�follow�the�on-screen<br> 2213��instructions.<br> 2214<br> 2215*�Improved�support�for�unfriendly�self-modifying�code:�a�new�option<br> 2216��--smc-check=all-non-file�is�available.��This�adds�the�relevant<br> 2217��consistency�checks�only�to�code�that�originates�in�non-file-backed<br> 2218��mappings.��In�effect�this�confines�the�consistency�checking�only�to<br> 2219��code�that�is�or�might�be�JIT�generated,�and�avoids�checks�on�code<br> 2220��that�must�have�been�compiled�ahead�of�time.��This�significantly<br> 2221��improves�performance�on�applications�that�generate�code�at�run�time.<br> 2222<br> 2223*�It�is�now�possible�to�build�a�working�Valgrind�using�Clang-2.9�on<br> 2224��Linux.<br> 2225<br> 2226*�new�client�requests�VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.<br> 2227��These�enable�and�disable�error�reporting�on�a�per-thread,�and<br> 2228��nestable,�basis.��This�is�useful�for�hiding�errors�in�particularly<br> 2229��troublesome�pieces�of�code.��The�MPI�wrapper�library�(libmpiwrap.c)<br> 2230��now�uses�this�facility.<br> 2231<br> 2232*�Added�the�--mod-funcname�option�to�cg_diff.<br> 2233<br> 2234*�====================�FIXED�BUGS�====================<br> 2235<br> 2236The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 2237stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 2238but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 2239bugzilla�(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than<br> 2240mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that�are<br> 2241not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 2242<br> 2243To�see�details�of�a�given�bug,�visit<br> 2244https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 2245where�XXXXXX�is�the�bug�number�as�listed�below.<br> 2246<br> 2247�79311��malloc�silly�arg�warning�does�not�give�stack�trace<br> 2248210935��port�valgrind.h�(not�valgrind)�to�win32�to�support�client�requests<br> 2249214223��valgrind�SIGSEGV�on�startup�gcc�4.4.1�ppc32�(G4)�Ubuntu�9.10<br> 2250243404��Port�to�zSeries<br> 2251243935��Helgrind:�incorrect�handling�of�ANNOTATE_HAPPENS_BEFORE()/AFTER()<br> 2252247223��non-x86:�Suppress�warning:�'regparm'�attribute�directive�ignored<br> 2253250101��huge�"free"�memory�usage�due�to�m_mallocfree.c�fragmentation<br> 2254253206��Some�fixes�for�the�faultstatus�testcase<br> 2255255223��capget�testcase�fails�when�running�as�root<br> 2256256703��xlc_dbl_u32.c�testcase�broken<br> 2257256726��Helgrind�tests�have�broken�inline�asm�<br> 2258259977��==�214223�(Valgrind�segfaults�doing�__builtin_longjmp)<br> 2259264800��testcase�compile�failure�on�zseries<br> 2260265762��make�public�VEX�headers�compilable�by�G++�3.x<br> 2261265771��assertion�in�jumps.c�(r11523)�fails�with�glibc-2.3<br> 2262266753��configure�script�does�not�give�the�user�the�option�to�not�use�QtCore<br> 2263266931��gen_insn_test.pl�is�broken<br> 2264266961��ld-linux.so.2�i?86-linux�strlen�issues<br> 2265266990��setns�instruction�causes�false�positive<br> 2266267020��Make�directory�for�temporary�files�configurable�at�run-time.<br> 2267267342��==�267997�(segmentation�fault�on�Mac�OS�10.6)<br> 2268267383��Assertion�'vgPlain_strlen(dir)�+�vgPlain_strlen(file)�+�1�<�256'�failed<br> 2269267413��Assertion�'DRD_(g_threadinfo)[tid].synchr_nesting�>=�1'�failed.<br> 2270267488��regtest:�darwin�support�for�64-bit�build<br> 2271267552��SIGSEGV�(misaligned_stack_error)�with�DRD,�but�not�with�other�tools<br> 2272267630��Add�support�for�IBM�Power�ISA�2.06�--�stage�1<br> 2273267769��==�267997�(Darwin:�memcheck�triggers�segmentation�fault)<br> 2274267819��Add�client�request�for�informing�the�core�about�reallocation<br> 2275267925��laog�data�structure�quadratic�for�a�single�sequence�of�lock<br> 2276267968��drd:�(vgDrd_thread_set_joinable):�Assertion�'0�<=�(int)tid�..'�failed<br> 2277267997��MacOSX:�64-bit�V�segfaults�on�launch�when�built�with�Xcode�4.0.1<br> 2278268513��missed�optimizations�in�fold_Expr<br> 2279268619��s390x:�fpr�-�gpr�transfer�facility�<br> 2280268620��s390x:�reconsider�"long�displacement"�requirement�<br> 2281268621��s390x:�improve�IR�generation�for�XC<br> 2282268715��s390x:�FLOGR�is�not�universally�available<br> 2283268792��==�267997�(valgrind�seg�faults�on�startup�when�compiled�with�Xcode�4)<br> 2284268930��s390x:�MHY�is�not�universally�available<br> 2285269078��arm->IR:�unhandled�instruction�SUB�(SP�minus�immediate/register)�<br> 2286269079��Support�ptrace�system�call�on�ARM<br> 2287269144��missing�"Bad�option"�error�message<br> 2288269209��conditional�load�and�store�facility�(z196)<br> 2289269354��Shift�by�zero�on�x86�can�incorrectly�clobber�CC_NDEP<br> 2290269641��==�267997�(valgrind�segfaults�immediately�(segmentation�fault))<br> 2291269736��s390x:�minor�code�generation�tweaks<br> 2292269778��==�272986�(valgrind.h:�swap�roles�of�VALGRIND_DO_CLIENT_REQUEST()�..)<br> 2293269863��s390x:�remove�unused�function�parameters<br> 2294269864��s390x:�tweak�s390_emit_load_cc�<br> 2295269884��==�250101�(overhead�for�huge�blocks�exhausts�space�too�soon)<br> 2296270082��s390x:�Make�sure�to�point�the�PSW�address�to�the�next�address�on�SIGILL<br> 2297270115��s390x:�rewrite�some�testcases<br> 2298270309��==�267997�(valgrind�crash�on�startup)<br> 2299270320��add�support�for�Linux�FIOQSIZE�ioctl()�call<br> 2300270326��segfault�while�trying�to�sanitize�the�environment�passed�to�execle<br> 2301270794��IBM�POWER7�support�patch�causes�regression�in�none/tests<br> 2302270851��IBM�POWER7�fcfidus�instruction�causes�memcheck�to�fail<br> 2303270856��IBM�POWER7�xsnmaddadp�instruction�causes�memcheck�to�fail�on�32bit�app�<br> 2304270925��hyper-optimized�strspn()�in�/lib64/libc-2.13.so�needs�fix<br> 2305270959��s390x:�invalid�use�of�R0�as�base�register<br> 2306271042��VSX�configure�check�fails�when�it�should�not�<br> 2307271043��Valgrind�build�fails�with�assembler�error�on�ppc64�with�binutils�2.21�<br> 2308271259��s390x:�fix�code�confusion�<br> 2309271337��==�267997�(Valgrind�segfaults�on�MacOS�X)<br> 2310271385��s390x:�Implement�Ist_MBE�<br> 2311271501��s390x:�misc�cleanups�<br> 2312271504��s390x:�promote�likely�and�unlikely�<br> 2313271579��ppc:�using�wrong�enum�type�<br> 2314271615��unhandled�instruction�"popcnt"�(arch=amd10h)�<br> 2315271730��Fix�bug�when�checking�ioctls:�duplicate�check�<br> 2316271776��s390x:�provide�STFLE�instruction�support�<br> 2317271779��s390x:�provide�clock�instructions�like�STCK�<br> 2318271799��Darwin:�ioctls�without�an�arg�report�a�memory�error�<br> 2319271820��arm:�fix�type�confusion�<br> 2320271917��pthread_cond_timedwait�failure�leads�to�not-locked�false�positive�<br> 2321272067��s390x:�fix�DISP20�macro�<br> 2322272615��A�typo�in�debug�output�in�mc_leakcheck.c<br> 2323272661��callgrind_annotate�chokes�when�run�from�paths�containing�regex�chars<br> 2324272893��amd64->IR:�0x66�0xF�0x38�0x2B�0xC1�0x66�0xF�0x7F�==�(closed�as�dup)<br> 2325272955��Unhandled�syscall�error�for�pwrite64�on�ppc64�arch�<br> 2326272967��make�documentation�build-system�more�robust�<br> 2327272986��Fix�gcc-4.6�warnings�with�valgrind.h<br> 2328273318��amd64->IR:�0x66�0xF�0x3A�0x61�0xC1�0x38�(missing�PCMPxSTRx�case)<br> 2329273318��unhandled�PCMPxSTRx�case:�vex�amd64->IR:�0x66�0xF�0x3A�0x61�0xC1�0x38�<br> 2330273431��valgrind�segfaults�in�evalCfiExpr�(debuginfo.c:2039)<br> 2331273465��Callgrind:�jumps.c:164�(new_jcc):�Assertion�'(0�<=�jmp)�&&�...'<br> 2332273536��Build�error:�multiple�definition�of�`vgDrd_pthread_cond_initializer'<br> 2333273640��ppc64-linux:�unhandled�syscalls�setresuid(164)�and�setresgid(169)<br> 2334273729��==�283000�(Illegal�opcode�for�SSE2�"roundsd"�instruction)<br> 2335273778��exp-ptrcheck:�unhandled�sysno�==�259<br> 2336274089��exp-ptrcheck:�unhandled�sysno�==�208<br> 2337274378��s390x:�Various�dispatcher�tweaks<br> 2338274447��WARNING:�unhandled�syscall:�340<br> 2339274776��amd64->IR:�0x66�0xF�0x38�0x2B�0xC5�0x66<br> 2340274784��==�267997�(valgrind�ls�-l�results�in�Segmentation�Fault)<br> 2341274926��valgrind�does�not�build�against�linux-3<br> 2342275148��configure�FAIL�with�glibc-2.14<br> 2343275151��Fedora�15�/�glibc-2.14�'make�regtest'�FAIL<br> 2344275168��Make�Valgrind�work�for�MacOSX�10.7�Lion<br> 2345275212��==�275284�(lots�of�false�positives�from�__memcpy_ssse3_back�et�al)<br> 2346275278��valgrind�does�not�build�on�Linux�kernel�3.0.*�due�to�silly<br> 2347275284��Valgrind�memcpy/memmove�redirection�stopped�working�in�glibc�2.14/x86_64<br> 2348275308��Fix�implementation�for�ppc64�fres�instruc<br> 2349275339��s390x:�fix�testcase�compile�warnings<br> 2350275517��s390x:�Provide�support�for�CKSM�instruction<br> 2351275710��s390x:�get�rid�of�redundant�address�mode�calculation<br> 2352275815��==�247894�(Valgrind�doesn't�know�about�Linux�readahead(2)�syscall)<br> 2353275852��==�250101�(valgrind�uses�all�swap�space�and�is�killed)<br> 2354276784��Add�support�for�IBM�Power�ISA�2.06�--�stage�3<br> 2355276987��gdbsrv:�fix�tests�following�recent�commits<br> 2356277045��Valgrind�crashes�with��unhandled�DW_OP_�opcode�0x2a<br> 2357277199��The�test_isa_2_06_part1.c�in�none/tests/ppc64�should�be�a�symlink<br> 2358277471��Unhandled�syscall:�340<br> 2359277610��valgrind�crashes�in�VG_(lseek)(core_fd,�phdrs[idx].p_offset,�...)<br> 2360277653��ARM:�support�Thumb2�PLD�instruction<br> 2361277663��ARM:�NEON�float�VMUL�by�scalar�incorrect<br> 2362277689��ARM:�tests�for�VSTn�with�register�post-index�are�broken<br> 2363277694��ARM:�BLX�LR�instruction�broken�in�ARM�mode<br> 2364277780��ARM:�VMOV.F32�(immediate)�instruction�is�broken<br> 2365278057��fuse�filesystem�syscall�deadlocks<br> 2366278078��Unimplemented�syscall�280�on�ppc32<br> 2367278349��F_GETPIPE_SZ�and��F_SETPIPE_SZ�Linux�fcntl�commands<br> 2368278454��VALGRIND_STACK_DEREGISTER�has�wrong�output�type<br> 2369278502��==�275284�(Valgrind�confuses�memcpy()�and�memmove())<br> 2370278892��gdbsrv:�factorize�gdb�version�handling,�fix�doc�and�typos<br> 2371279027��Support�for�MVCL�and�CLCL�instruction<br> 2372279027��s390x:�Provide�support�for�CLCL�and�MVCL�instructions<br> 2373279062��Remove�a�redundant�check�in�the�insn�selector�for�ppc.<br> 2374279071��JDK�creates�PTEST�with�redundant�REX.W�prefix<br> 2375279212��gdbsrv:�add�monitor�cmd�v.info�scheduler.<br> 2376279378��exp-ptrcheck:�the�'impossible'�happened�on�mkfifo�call<br> 2377279698��memcheck�discards�valid-bits�for�packuswb<br> 2378279795��memcheck�reports�uninitialised�values�for�mincore�on�amd64<br> 2379279994��Add�support�for�IBM�Power�ISA�2.06�--�stage�3<br> 2380280083��mempolicy�syscall�check�errors<br> 2381280290��vex�amd64->IR:�0x66�0xF�0x38�0x28�0xC1�0x66�0xF�0x6F<br> 2382280710��s390x:�config�files�for�nightly�builds<br> 2383280757��/tmp�dir�still�used�by�valgrind�even�if�TMPDIR�is�specified<br> 2384280965��Valgrind�breaks�fcntl�locks�when�program�does�mmap<br> 2385281138��WARNING:�unhandled�syscall:�340<br> 2386281241��==�275168�(valgrind�useless�on�Macos�10.7.1�Lion)<br> 2387281304��==�275168�(Darwin:�dyld�"cannot�load�inserted�library")<br> 2388281305��==�275168�(unhandled�syscall:�unix:357�on�Darwin�11.1)<br> 2389281468��s390x:�handle�do_clone�and�gcc�clones�in�call�traces<br> 2390281488��ARM:�VFP�register�corruption<br> 2391281828��==�275284�(false�memmove�warning:�"Source�and�destination�overlap")<br> 2392281883��s390x:�Fix�system�call�wrapper�for�"clone".<br> 2393282105��generalise�'reclaimSuperBlock'�to�also�reclaim�splittable�superblock<br> 2394282112��Unhandled�instruction�bytes:�0xDE�0xD9�0x9B�0xDF�(fcompp)<br> 2395282238��SLES10:�make�check�fails<br> 2396282979��strcasestr�needs�replacement�with�recent(>=2.12)�glibc<br> 2397283000��vex�amd64->IR:�0x66�0xF�0x3A�0xA�0xC0�0x9�0xF3�0xF<br> 2398283243��Regression�in�ppc64�memcheck�tests<br> 2399283325��==�267997�(Darwin:�V�segfaults�on�startup�when�built�with�Xcode�4.0)<br> 2400283427��re-connect�epoll_pwait�syscall�on�ARM�linux<br> 2401283600��gdbsrv:�android:�port�vgdb.c<br> 2402283709��none/tests/faultstatus�needs�to�account�for�page�size<br> 2403284305��filter_gdb�needs�enhancement�to�work�on�ppc64<br> 2404284384��clang�3.1�-Wunused-value�warnings�in�valgrind.h,�memcheck.h<br> 2405284472��Thumb2�ROR.W�encoding�T2�not�implemented<br> 2406284621��XML-escape�process�command�line�in�XML�output<br> 2407n-i-bz��cachegrind/callgrind:�handle�CPUID�information�for�Core�iX�Intel�CPUs<br> 2408��������that�have�non-power-of-2�sizes�(also�AMDs)<br> 2409n-i-bz��don't�be�spooked�by�libraries�mashed�by�elfhack<br> 2410n-i-bz��don't�be�spooked�by�libxul.so�linked�with�gold<br> 2411n-i-bz��improved�checking�for�VALGRIND_CHECK_MEM_IS_DEFINED<br> 2412<br> 2413(3.7.0-TEST1:�27��October�2011,�vex�r2228,�valgrind�r12245)<br> 2414(3.7.0.RC1:����1�November�2011,�vex�r2231,�valgrind�r12257)<br> 2415(3.7.0:��������5�November�2011,�vex�r2231,�valgrind�r12258)<br> 2416<br> 2417<br> 2418<br> 2419Release�3.6.1�(16�February�2011)<br> 2420~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 24213.6.1�is�a�bug�fix�release.��It�adds�support�for�some�SSE4<br> 2422instructions�that�were�omitted�in�3.6.0�due�to�lack�of�time.��Initial<br> 2423support�for�glibc-2.13�has�been�added.��A�number�of�bugs�causing<br> 2424crashing�or�assertion�failures�have�been�fixed.<br> 2425<br> 2426The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 2427stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 2428but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 2429bugzilla�(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than<br> 2430mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that�are<br> 2431not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 2432<br> 2433To�see�details�of�a�given�bug,�visit<br> 2434https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 2435where�XXXXXX�is�the�bug�number�as�listed�below.<br> 2436<br> 2437188572��Valgrind�on�Mac�should�suppress�setenv()�mem�leak<br> 2438194402��vex�amd64->IR:�0x48�0xF�0xAE�0x4�(proper�FX{SAVE,RSTOR}�support)<br> 2439210481��vex�amd64->IR:�Assertion�`sz�==�2�||�sz�==�4'�failed�(REX.W�POPQ)<br> 2440246152��callgrind�internal�error�after�pthread_cancel�on�32�Bit�Linux<br> 2441250038��ppc64:�Altivec�LVSR�and�LVSL�instructions�fail�their�regtest<br> 2442254420��memory�pool�tracking�broken�<br> 2443254957��Test�code�failing�to�compile�due�to�changes�in�memcheck.h<br> 2444255009��helgrind/drd:�crash�on�chmod�with�invalid�parameter<br> 2445255130��readdwarf3.c�parse_type_DIE�confused�by�GNAT�Ada�types<br> 2446255355��helgrind/drd:�crash�on�threaded�programs�doing�fork<br> 2447255358��==�255355<br> 2448255418��(SSE4.x)�rint�call�compiled�with�ICC<br> 2449255822��--gen-suppressions�can�create�invalid�files:�"too�many�callers�[...]"<br> 2450255888��closing�valgrindoutput�tag�outputted�to�log-stream�on�error<br> 2451255963��(SSE4.x)�vex�amd64->IR:�0x66�0xF�0x3A�0x9�0xDB�0x0�(ROUNDPD)<br> 2452255966��Slowness�when�using�mempool�annotations<br> 2453256387��vex�x86->IR:�0xD4�0xA�0x2�0x7�(AAD�and�AAM)<br> 2454256600��super-optimized�strcasecmp()�false�positive<br> 2455256669��vex�amd64->IR:�Unhandled�LOOPNEL�insn�on�amd64<br> 2456256968��(SSE4.x)�vex�amd64->IR:�0x66�0xF�0x38�0x10�0xD3�0x66�(BLENDVPx)<br> 2457257011��(SSE4.x)�vex�amd64->IR:�0x66�0xF�0x3A�0xE�0xFD�0xA0�(PBLENDW)<br> 2458257063��(SSE4.x)�vex�amd64->IR:�0x66�0xF�0x3A�0x8�0xC0�0x0�(ROUNDPS)<br> 2459257276��Missing�case�in�memcheck�--track-origins=yes<br> 2460258870��(SSE4.x)�Add�support�for�EXTRACTPS�SSE�4.1�instruction<br> 2461261966��(SSE4.x)�support�for�CRC32B�and�CRC32Q�is�lacking�(also�CRC32{W,L})<br> 2462262985��VEX�regression�in�valgrind�3.6.0�in�handling�PowerPC�VMX<br> 2463262995��(SSE4.x)�crash�when�trying�to�valgrind�gcc-snapshot�(PCMPxSTRx�$0)<br> 2464263099��callgrind_annotate�counts�Ir�improperly�[...]<br> 2465263877��undefined�coprocessor�instruction�on�ARMv7<br> 2466265964��configure�FAIL�with�glibc-2.13<br> 2467n-i-bz��Fix�compile�error�w/�icc-12.x�in�guest_arm_toIR.c<br> 2468n-i-bz��Docs:�fix�bogus�descriptions�for�VALGRIND_CREATE_BLOCK�et�al<br> 2469n-i-bz��Massif:�don't�assert�on�shmat()�with�--pages-as-heap=yes<br> 2470n-i-bz��Bug�fixes�and�major�speedups�for�the�exp-DHAT�space�profiler<br> 2471n-i-bz��DRD:�disable�--free-is-write�due�to�implementation�difficulties<br> 2472<br> 2473(3.6.1:�16�February�2011,�vex�r2103,�valgrind�r11561).<br> 2474<br> 2475<br> 2476<br> 2477Release�3.6.0�(21�October�2010)<br> 2478~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 24793.6.0�is�a�feature�release�with�many�significant�improvements�and�the<br> 2480usual�collection�of�bug�fixes.<br> 2481<br> 2482This�release�supports�X86/Linux,�AMD64/Linux,�ARM/Linux,�PPC32/Linux,<br> 2483PPC64/Linux,�X86/Darwin�and�AMD64/Darwin.��Support�for�recent�distros<br> 2484and�toolchain�components�(glibc�2.12,�gcc�4.5,�OSX�10.6)�has�been�added.<br> 2485<br> 2486��������������������-------------------------<br> 2487<br> 2488Here�are�some�highlights.��Details�are�shown�further�down:<br> 2489<br> 2490*�Support�for�ARM/Linux.<br> 2491<br> 2492*�Support�for�recent�Linux�distros:�Ubuntu�10.10�and�Fedora�14.<br> 2493<br> 2494*�Support�for�Mac�OS�X�10.6,�both�32-�and�64-bit�executables.<br> 2495<br> 2496*�Support�for�the�SSE4.2�instruction�set.<br> 2497<br> 2498*�Enhancements�to�the�Callgrind�profiler,�including�the�ability�to<br> 2499��handle�CPUs�with�three�levels�of�cache.<br> 2500<br> 2501*�A�new�experimental�heap�profiler,�DHAT.<br> 2502<br> 2503*�A�huge�number�of�bug�fixes�and�small�enhancements.<br> 2504<br> 2505��������������������-------------------------<br> 2506<br> 2507Here�are�details�of�the�above�changes,�together�with�descriptions�of<br> 2508many�other�changes,�and�a�list�of�fixed�bugs.<br> 2509<br> 2510*�==================�PLATFORM�CHANGES�=================<br> 2511<br> 2512*�Support�for�ARM/Linux.��Valgrind�now�runs�on�ARMv7�capable�CPUs<br> 2513��running�Linux.��It�is�known�to�work�on�Ubuntu�10.04,�Ubuntu�10.10,<br> 2514��and�Maemo�5,�so�you�can�run�Valgrind�on�your�Nokia�N900�if�you�want.<br> 2515<br> 2516��This�requires�a�CPU�capable�of�running�the�ARMv7-A�instruction�set<br> 2517��(Cortex�A5,�A8�and�A9).��Valgrind�provides�fairly�complete�coverage<br> 2518��of�the�user�space�instruction�set,�including�ARM�and�Thumb�integer<br> 2519��code,�VFPv3,�NEON�and�V6�media�instructions.��The�Memcheck,<br> 2520��Cachegrind�and�Massif�tools�work�properly;�other�tools�work�to<br> 2521��varying�degrees.<br> 2522<br> 2523*�Support�for�recent�Linux�distros�(Ubuntu�10.10�and�Fedora�14),�along<br> 2524��with�support�for�recent�releases�of�the�underlying�toolchain<br> 2525��components,�notably�gcc-4.5�and�glibc-2.12.<br> 2526<br> 2527*�Support�for�Mac�OS�X�10.6,�both�32-�and�64-bit�executables.��64-bit<br> 2528��support�also�works�much�better�on�OS�X�10.5,�and�is�as�solid�as<br> 2529��32-bit�support�now.<br> 2530<br> 2531*�Support�for�the�SSE4.2�instruction�set.��SSE4.2�is�supported�in<br> 2532��64-bit�mode.��In�32-bit�mode,�support�is�only�available�up�to�and<br> 2533��including�SSSE3.��Some�exceptions:�SSE4.2�AES�instructions�are�not<br> 2534��supported�in�64-bit�mode,�and�32-bit�mode�does�in�fact�support�the<br> 2535��bare�minimum�SSE4�instructions�to�needed�to�run�programs�on�Mac�OS�X<br> 2536��10.6�on�32-bit�targets.<br> 2537<br> 2538*�Support�for�IBM�POWER6�cpus�has�been�improved.��The�Power�ISA�up�to<br> 2539��and�including�version�2.05�is�supported.<br> 2540<br> 2541*�====================�TOOL�CHANGES�====================<br> 2542<br> 2543*�Cachegrind�has�a�new�processing�script,�cg_diff,�which�finds�the<br> 2544��difference�between�two�profiles.��It's�very�useful�for�evaluating<br> 2545��the�performance�effects�of�a�change�in�a�program.<br> 2546��<br> 2547��Related�to�this�change,�the�meaning�of�cg_annotate's�(rarely-used)<br> 2548��--threshold�option�has�changed;�this�is�unlikely�to�affect�many<br> 2549��people,�if�you�do�use�it�please�see�the�user�manual�for�details.<br> 2550<br> 2551*�Callgrind�now�can�do�branch�prediction�simulation,�similar�to<br> 2552��Cachegrind.��In�addition,�it�optionally�can�count�the�number�of<br> 2553��executed�global�bus�events.��Both�can�be�used�for�a�better<br> 2554��approximation�of�a�"Cycle�Estimation"�as�derived�event�(you�need�to<br> 2555��update�the�event�formula�in�KCachegrind�yourself).<br> 2556<br> 2557*�Cachegrind�and�Callgrind�now�refer�to�the�LL�(last-level)�cache<br> 2558��rather�than�the�L2�cache.��This�is�to�accommodate�machines�with<br> 2559��three�levels�of�caches�--�if�Cachegrind/Callgrind�auto-detects�the<br> 2560��cache�configuration�of�such�a�machine�it�will�run�the�simulation�as<br> 2561��if�the�L2�cache�isn't�present.��This�means�the�results�are�less<br> 2562��likely�to�match�the�true�result�for�the�machine,�but<br> 2563��Cachegrind/Callgrind's�results�are�already�only�approximate,�and<br> 2564��should�not�be�considered�authoritative.��The�results�are�still<br> 2565��useful�for�giving�a�general�idea�about�a�program's�locality.<br> 2566<br> 2567*�Massif�has�a�new�option,�--pages-as-heap,�which�is�disabled�by<br> 2568��default.��When�enabled,�instead�of�tracking�allocations�at�the�level<br> 2569��of�heap�blocks�(as�allocated�with�malloc/new/new[]),�it�instead<br> 2570��tracks�memory�allocations�at�the�level�of�memory�pages�(as�mapped�by<br> 2571��mmap,�brk,�etc).��Each�mapped�page�is�treated�as�its�own�block.<br> 2572��Interpreting�the�page-level�output�is�harder�than�the�heap-level<br> 2573��output,�but�this�option�is�useful�if�you�want�to�account�for�every<br> 2574��byte�of�memory�used�by�a�program.<br> 2575<br> 2576*�DRD�has�two�new�command-line�options:�--free-is-write�and<br> 2577��--trace-alloc.��The�former�allows�to�detect�reading�from�already�freed<br> 2578��memory,�and�the�latter�allows�tracing�of�all�memory�allocations�and<br> 2579��deallocations.<br> 2580<br> 2581*�DRD�has�several�new�annotations.��Custom�barrier�implementations�can<br> 2582��now�be�annotated,�as�well�as�benign�races�on�static�variables.<br> 2583<br> 2584*�DRD's�happens�before�/�happens�after�annotations�have�been�made�more<br> 2585��powerful,�so�that�they�can�now�also�be�used�to�annotate�e.g.�a�smart<br> 2586��pointer�implementation.<br> 2587<br> 2588*�Helgrind's�annotation�set�has�also�been�drastically�improved,�so�as<br> 2589��to�provide�to�users�a�general�set�of�annotations�to�describe�locks,<br> 2590��semaphores,�barriers�and�condition�variables.��Annotations�to<br> 2591��describe�thread-safe�reference�counted�heap�objects�have�also�been<br> 2592��added.<br> 2593<br> 2594*�Memcheck�has�a�new�command-line�option,�--show-possibly-lost,�which<br> 2595��is�enabled�by�default.��When�disabled,�the�leak�detector�will�not<br> 2596��show�possibly-lost�blocks.<br> 2597<br> 2598*�A�new�experimental�heap�profiler,�DHAT�(Dynamic�Heap�Analysis�Tool),<br> 2599��has�been�added.��DHAT�keeps�track�of�allocated�heap�blocks,�and�also<br> 2600��inspects�every�memory�reference�to�see�which�block�(if�any)�is�being<br> 2601��accessed.��This�gives�a�lot�of�insight�into�block�lifetimes,<br> 2602��utilisation,�turnover,�liveness,�and�the�location�of�hot�and�cold<br> 2603��fields.��You�can�use�DHAT�to�do�hot-field�profiling.<br> 2604<br> 2605*�====================�OTHER�CHANGES�====================<br> 2606<br> 2607*�Improved�support�for�unfriendly�self-modifying�code:�the�extra<br> 2608��overhead�incurred�by�--smc-check=all�has�been�reduced�by<br> 2609��approximately�a�factor�of�5�as�compared�with�3.5.0.<br> 2610<br> 2611*�Ability�to�show�directory�names�for�source�files�in�error�messages.<br> 2612��This�is�combined�with�a�flexible�mechanism�for�specifying�which<br> 2613��parts�of�the�paths�should�be�shown.��This�is�enabled�by�the�new�flag<br> 2614��--fullpath-after.<br> 2615<br> 2616*�A�new�flag,�--require-text-symbol,�which�will�stop�the�run�if�a<br> 2617��specified�symbol�is�not�found�it�a�given�shared�object�when�it�is<br> 2618��loaded�into�the�process.��This�makes�advanced�working�with�function<br> 2619��intercepting�and�wrapping�safer�and�more�reliable.<br> 2620<br> 2621*�Improved�support�for�the�Valkyrie�GUI,�version�2.0.0.��GUI�output<br> 2622��and�control�of�Valgrind�is�now�available�for�the�tools�Memcheck�and<br> 2623��Helgrind.��XML�output�from�Valgrind�is�available�for�Memcheck,<br> 2624��Helgrind�and�exp-Ptrcheck.<br> 2625<br> 2626*�More�reliable�stack�unwinding�on�amd64-linux,�particularly�in�the<br> 2627��presence�of�function�wrappers,�and�with�gcc-4.5�compiled�code.<br> 2628<br> 2629*�Modest�scalability�(performance�improvements)�for�massive<br> 2630��long-running�applications,�particularly�for�those�with�huge�amounts<br> 2631��of�code.<br> 2632<br> 2633*�Support�for�analyzing�programs�running�under�Wine�with�has�been<br> 2634��improved.��The�header�files�<valgrind/valgrind.h>,<br> 2635��<valgrind/memcheck.h>�and�<valgrind/drd.h>�can�now�be�used�in<br> 2636��Windows-programs�compiled�with�MinGW�or�one�of�the�Microsoft�Visual<br> 2637��Studio�compilers.<br> 2638<br> 2639*�A�rare�but�serious�error�in�the�64-bit�x86�CPU�simulation�was�fixed.<br> 2640��The�32-bit�simulator�was�not�affected.��This�did�not�occur�often,<br> 2641��but�when�it�did�would�usually�crash�the�program�under�test.<br> 2642��Bug�245925.<br> 2643<br> 2644*�A�large�number�of�bugs�were�fixed.��These�are�shown�below.<br> 2645<br> 2646*�A�number�of�bugs�were�investigated,�and�were�candidates�for�fixing,<br> 2647��but�are�not�fixed�in�3.6.0,�due�to�lack�of�developer�time.��They�may<br> 2648��get�fixed�in�later�releases.��They�are:<br> 2649<br> 2650��194402��vex�amd64->IR:�0x48�0xF�0xAE�0x4�0x24�0x49��(FXSAVE64)<br> 2651��212419��false�positive�"lock�order�violated"�(A+B�vs�A)�<br> 2652��213685��Undefined�value�propagates�past�dependency�breaking�instruction<br> 2653��216837��Incorrect�instrumentation�of�NSOperationQueue�on�Darwin�<br> 2654��237920��valgrind�segfault�on�fork�failure�<br> 2655��242137��support�for�code�compiled�by�LLVM-2.8<br> 2656��242423��Another�unknown�Intel�cache�config�value�<br> 2657��243232��Inconsistent�Lock�Orderings�report�with�trylock�<br> 2658��243483��ppc:�callgrind�triggers�VEX�assertion�failure�<br> 2659��243935��Helgrind:�implementation�of�ANNOTATE_HAPPENS_BEFORE()�is�wrong<br> 2660��244677��Helgrind�crash�hg_main.c:616�(map_threads_lookup):�Assertion<br> 2661����������'thr'�failed.�<br> 2662��246152��callgrind�internal�error�after�pthread_cancel�on�32�Bit�Linux�<br> 2663��249435��Analyzing�wine�programs�with�callgrind�triggers�a�crash�<br> 2664��250038��ppc64:�Altivec�lvsr�and�lvsl�instructions�fail�their�regtest<br> 2665��250065��Handling�large�allocations�<br> 2666��250101��huge�"free"�memory�usage�due�to�m_mallocfree.c<br> 2667����������"superblocks�fragmentation"<br> 2668��251569��vex�amd64->IR:�0xF�0x1�0xF9�0x8B�0x4C�0x24�(RDTSCP)<br> 2669��252091��Callgrind�on�ARM�does�not�detect�function�returns�correctly<br> 2670��252600��[PATCH]�Allow�lhs�to�be�a�pointer�for�shl/shr<br> 2671��254420��memory�pool�tracking�broken<br> 2672��n-i-bz��support�for�adding�symbols�for�JIT�generated�code<br> 2673<br> 2674<br> 2675The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 2676stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 2677but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 2678bugzilla�(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than<br> 2679mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that�are<br> 2680not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 2681<br> 2682To�see�details�of�a�given�bug,�visit<br> 2683https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 2684where�XXXXXX�is�the�bug�number�as�listed�below.<br> 2685<br> 2686135264��dcbzl�instruction�missing<br> 2687142688��==�250799<br> 2688153699��Valgrind�should�report�unaligned�reads�with�movdqa<br> 2689180217��==�212335<br> 2690190429��Valgrind�reports�lost�of�errors�in�ld.so<br> 2691��������with�x86_64�2.9.90�glibc�<br> 2692197266��valgrind�appears�to�choke�on�the�xmms�instruction<br> 2693��������"roundsd"�on�x86_64�<br> 2694197988��Crash�when�demangling�very�large�symbol�names<br> 2695202315��unhandled�syscall:�332�(inotify_init1)<br> 2696203256��Add�page-level�profiling�to�Massif<br> 2697205093��dsymutil=yes�needs�quotes,�locking�(partial�fix)<br> 2698205241��Snow�Leopard�10.6�support�(partial�fix)<br> 2699206600��Leak�checker�fails�to�upgrade�indirect�blocks�when�their<br> 2700��������parent�becomes�reachable�<br> 2701210935��port�valgrind.h�(not�valgrind)�to�win32�so�apps�run�under<br> 2702��������wine�can�make�client�requests<br> 2703211410��vex�amd64->IR:�0x15�0xFF�0xFF�0x0�0x0�0x89<br> 2704��������within�Linux�ip-stack�checksum�functions�<br> 2705212335��unhandled�instruction�bytes:�0xF3�0xF�0xBD�0xC0<br> 2706��������(lzcnt�%eax,%eax)�<br> 2707213685��Undefined�value�propagates�past�dependency�breaking�instruction<br> 2708��������(partial�fix)<br> 2709215914��Valgrind�inserts�bogus�empty�environment�variable�<br> 2710217863��==�197988<br> 2711219538��adjtimex�syscall�wrapper�wrong�in�readonly�adjtime�mode�<br> 2712222545��shmat�fails�under�valgind�on�some�arm�targets�<br> 2713222560��ARM�NEON�support�<br> 2714230407��==�202315<br> 2715231076��==�202315<br> 2716232509��Docs�build�fails�with�formatting�inside�<title></title>�elements�<br> 2717232793��==�202315<br> 2718235642��[PATCH]�syswrap-linux.c:�support�evdev�EVIOCG*�ioctls�<br> 2719236546��vex�x86->IR:�0x66�0xF�0x3A�0xA<br> 2720237202��vex�amd64->IR:�0xF3�0xF�0xB8�0xC0�0x49�0x3B�<br> 2721237371��better�support�for�VALGRIND_MALLOCLIKE_BLOCK�<br> 2722237485��symlink�(syscall�57)�is�not�supported�on�Mac�OS�<br> 2723237723��sysno�==�101�exp-ptrcheck:�the�'impossible'�happened:<br> 2724��������unhandled�syscall�<br> 2725238208��is_just_below_ESP�doesn't�take�into�account�red-zone�<br> 2726238345��valgrind�passes�wrong�$0�when�executing�a�shell�script�<br> 2727238679��mq_timedreceive�syscall�doesn't�flag�the�reception�buffer<br> 2728��������as�"defined"<br> 2729238696��fcntl�command�F_DUPFD_CLOEXEC�not�supported�<br> 2730238713��unhandled�instruction�bytes:�0x66�0xF�0x29�0xC6�<br> 2731238713��unhandled�instruction�bytes:�0x66�0xF�0x29�0xC6�<br> 2732238745��3.5.0�Make�fails�on�PPC�Altivec�opcodes,�though�configure<br> 2733��������says�"Altivec�off"<br> 2734239992��vex�amd64->IR:�0x48�0xF�0xC4�0xC1�0x0�0x48�<br> 2735240488��==�197988<br> 2736240639��==�212335<br> 2737241377��==�236546<br> 2738241903��==�202315<br> 2739241920��==�212335<br> 2740242606��unhandled�syscall:�setegid�(in�Ptrcheck)<br> 2741242814��Helgrind�"Impossible�has�happened"�during<br> 2742��������QApplication::initInstance();�<br> 2743243064��Valgrind�attempting�to�read�debug�information�from�iso�<br> 2744243270��Make�stack�unwinding�in�Valgrind�wrappers�more�reliable<br> 2745243884��exp-ptrcheck:�the�'impossible�happened:�unhandled�syscall�<br> 2746��������sysno�=�277�(mq_open)<br> 2747244009��exp-ptrcheck�unknown�syscalls�in�analyzing�lighttpd<br> 2748244493��ARM�VFP�d16-d31�registers�support�<br> 2749244670��add�support�for�audit_session_self�syscall�on�Mac�OS�10.6<br> 2750244921��The�xml�report�of�helgrind�tool�is�not�well�format<br> 2751244923��In�the�xml�report�file,�the�<preamble>�not�escape�the�<br> 2752��������xml�char,�eg�'<','&','>'<br> 2753245535��print�full�path�names�in�plain�text�reports�<br> 2754245925��x86-64�red�zone�handling�problem�<br> 2755246258��Valgrind�not�catching�integer�underruns�+�new�[]�s<br> 2756246311��reg/reg�cmpxchg�doesn't�work�on�amd64<br> 2757246549��unhandled�syscall�unix:277�while�testing�32-bit�Darwin�app�<br> 2758246888��Improve�Makefile.vex.am�<br> 2759247510��[OS�X�10.6]�Memcheck�reports�unaddressable�bytes�passed�<br> 2760��������to�[f]chmod_extended<br> 2761247526��IBM�POWER6�(ISA�2.05)�support�is�incomplete<br> 2762247561��Some�leak�testcases�fails�due�to�reachable�addresses�in<br> 2763��������caller�save�regs<br> 2764247875��sizeofIRType�to�handle�Ity_I128�<br> 2765247894��[PATCH]�unhandled�syscall�sys_readahead�<br> 2766247980��Doesn't�honor�CFLAGS�passed�to�configure�<br> 2767248373��darwin10.supp�is�empty�in�the�trunk�<br> 2768248822��Linux�FIBMAP�ioctl�has�int�parameter�instead�of�long<br> 2769248893��[PATCH]�make�readdwarf.c�big�endianess�safe�to�enable<br> 2770��������unwinding�on�big�endian�systems<br> 2771249224��Syscall�336�not�supported�(SYS_proc_info)�<br> 2772249359��==�245535<br> 2773249775��Incorrect�scheme�for�detecting�NEON�capabilities�of�host�CPU<br> 2774249943��jni�JVM�init�fails�when�using�valgrind<br> 2775249991��Valgrind�incorrectly�declares�AESKEYGENASSIST�support<br> 2776��������since�VEX�r2011<br> 2777249996��linux/arm:�unhandled�syscall:�181�(__NR_pwrite64)<br> 2778250799��frexp$fenv_access_off�function�generates�SIGILL�<br> 2779250998��vex�x86->IR:�unhandled�instruction�bytes:�0x66�0x66�0x66�0x2E�<br> 2780251251��support�pclmulqdq�insn�<br> 2781251362��valgrind:�ARM:�attach�to�debugger�either�fails�or�provokes<br> 2782��������kernel�oops�<br> 2783251674��Unhandled�syscall�294<br> 2784251818��==�254550<br> 2785<br> 2786254257��Add�support�for�debugfiles�found�by�build-id<br> 2787254550��[PATCH]�Implement�DW_ATE_UTF�(DWARF4)<br> 2788254646��Wrapped�functions�cause�stack�misalignment�on�OS�X<br> 2789��������(and�possibly�Linux)<br> 2790254556��ARM:�valgrinding�anything�fails�with�SIGSEGV�for�0xFFFF0FA0<br> 2791<br> 2792(3.6.0:�21�October�2010,�vex�r2068,�valgrind�r11471).<br> 2793<br> 2794<br> 2795<br> 2796Release�3.5.0�(19�August�2009)<br> 2797~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 27983.5.0�is�a�feature�release�with�many�significant�improvements�and�the<br> 2799usual�collection�of�bug�fixes.��The�main�improvement�is�that�Valgrind<br> 2800now�works�on�Mac�OS�X.<br> 2801<br> 2802This�release�supports�X86/Linux,�AMD64/Linux,�PPC32/Linux,�PPC64/Linux<br> 2803and�X86/Darwin.��Support�for�recent�distros�and�toolchain�components<br> 2804(glibc�2.10,�gcc�4.5)�has�been�added.<br> 2805<br> 2806��������������������-------------------------<br> 2807<br> 2808Here�is�a�short�summary�of�the�changes.��Details�are�shown�further<br> 2809down:<br> 2810<br> 2811*�Support�for�Mac�OS�X�(10.5.x).<br> 2812<br> 2813*�Improvements�and�simplifications�to�Memcheck's�leak�checker.<br> 2814<br> 2815*�Clarification�and�simplifications�in�various�aspects�of�Valgrind's<br> 2816��text�output.<br> 2817<br> 2818*�XML�output�for�Helgrind�and�Ptrcheck.<br> 2819<br> 2820*�Performance�and�stability�improvements�for�Helgrind�and�DRD.<br> 2821<br> 2822*�Genuinely�atomic�support�for�x86/amd64/ppc�atomic�instructions.<br> 2823<br> 2824*�A�new�experimental�tool,�BBV,�useful�for�computer�architecture<br> 2825��research.<br> 2826<br> 2827*�Improved�Wine�support,�including�ability�to�read�Windows�PDB<br> 2828��debuginfo.<br> 2829<br> 2830��������������������-------------------------<br> 2831<br> 2832Here�are�details�of�the�above�changes,�followed�by�descriptions�of<br> 2833many�other�minor�changes,�and�a�list�of�fixed�bugs.<br> 2834<br> 2835<br> 2836*�Valgrind�now�runs�on�Mac�OS�X.��(Note�that�Mac�OS�X�is�sometimes<br> 2837��called�"Darwin"�because�that�is�the�name�of�the�OS�core,�which�is�the<br> 2838��level�that�Valgrind�works�at.)<br> 2839<br> 2840��Supported�systems:<br> 2841<br> 2842��-�It�requires�OS�10.5.x�(Leopard).��Porting�to�10.4.x�is�not�planned<br> 2843����because�it�would�require�work�and�10.4�is�only�becoming�less�common.<br> 2844<br> 2845��-�32-bit�programs�on�x86�and�AMD64�(a.k.a�x86-64)�machines�are�supported<br> 2846����fairly�well.��For�10.5.x,�32-bit�programs�are�the�default�even�on<br> 2847����64-bit�machines,�so�it�handles�most�current�programs.<br> 2848����<br> 2849��-�64-bit�programs�on�x86�and�AMD64�(a.k.a�x86-64)�machines�are�not<br> 2850����officially�supported,�but�simple�programs�at�least�will�probably�work.<br> 2851����However,�start-up�is�slow.<br> 2852<br> 2853��-�PowerPC�machines�are�not�supported.<br> 2854<br> 2855��Things�that�don't�work:<br> 2856<br> 2857��-�The�Ptrcheck�tool.<br> 2858<br> 2859��-�Objective-C�garbage�collection.<br> 2860<br> 2861��-�--db-attach=yes.<br> 2862<br> 2863��-�If�you�have�Rogue�Amoeba's�"Instant�Hijack"�program�installed,<br> 2864����Valgrind�will�fail�with�a�SIGTRAP�at�start-up.��See<br> 2865����https://bugs.kde.org/show_bug.cgi?id=193917�for�details�and�a<br> 2866����simple�work-around.<br> 2867<br> 2868��Usage�notes:<br> 2869<br> 2870��-�You�will�likely�find�--dsymutil=yes�a�useful�option,�as�error<br> 2871����messages�may�be�imprecise�without�it.<br> 2872<br> 2873��-�Mac�OS�X�support�is�new�and�therefore�will�be�less�robust�than�the<br> 2874����Linux�support.��Please�report�any�bugs�you�find.<br> 2875<br> 2876��-�Threaded�programs�may�run�more�slowly�than�on�Linux.<br> 2877<br> 2878��Many�thanks�to�Greg�Parker�for�developing�this�port�over�several�years.<br> 2879<br> 2880<br> 2881*�Memcheck's�leak�checker�has�been�improved.��<br> 2882<br> 2883��-�The�results�for�--leak-check=summary�now�match�the�summary�results<br> 2884����for�--leak-check=full.��Previously�they�could�differ�because<br> 2885����--leak-check=summary�counted�"indirectly�lost"�blocks�and<br> 2886����"suppressed"�blocks�as�"definitely�lost".<br> 2887<br> 2888��-�Blocks�that�are�only�reachable�via�at�least�one�interior-pointer,<br> 2889����but�are�directly�pointed�to�by�a�start-pointer,�were�previously<br> 2890����marked�as�"still�reachable".��They�are�now�correctly�marked�as<br> 2891����"possibly�lost".<br> 2892<br> 2893��-�The�default�value�for�the�--leak-resolution�option�has�been<br> 2894����changed�from�"low"�to�"high".��In�general,�this�means�that�more<br> 2895����leak�reports�will�be�produced,�but�each�leak�report�will�describe<br> 2896����fewer�leaked�blocks.<br> 2897<br> 2898��-�With�--leak-check=full,�"definitely�lost"�and�"possibly�lost"<br> 2899����leaks�are�now�considered�as�proper�errors,�ie.�they�are�counted<br> 2900����for�the�"ERROR�SUMMARY"�and�affect�the�behaviour�of<br> 2901����--error-exitcode.��These�leaks�are�not�counted�as�errors�if<br> 2902����--leak-check=summary�is�specified,�however.<br> 2903<br> 2904��-�Documentation�for�the�leak�checker�has�been�improved.<br> 2905<br> 2906<br> 2907*�Various�aspects�of�Valgrind's�text�output�have�changed.<br> 2908<br> 2909��-�Valgrind's�start-up�message�has�changed.��It�is�shorter�but�also<br> 2910����includes�the�command�being�run,�which�makes�it�easier�to�use<br> 2911����--trace-children=yes.��An�example:<br> 2912<br> 2913��-�Valgrind's�shut-down�messages�have�also�changed.��This�is�most<br> 2914����noticeable�with�Memcheck,�where�the�leak�summary�now�occurs�before<br> 2915����the�error�summary.��This�change�was�necessary�to�allow�leaks�to�be<br> 2916����counted�as�proper�errors�(see�the�description�of�the�leak�checker<br> 2917����changes�above�for�more�details).��This�was�also�necessary�to�fix�a<br> 2918����longstanding�bug�in�which�uses�of�suppressions�against�leaks�were<br> 2919����not�"counted",�leading�to�difficulties�in�maintaining�suppression<br> 2920����files�(see�https://bugs.kde.org/show_bug.cgi?id=186790).<br> 2921<br> 2922��-�Behavior�of�-v�has�changed.��In�previous�versions,�-v�printed�out<br> 2923����a�mixture�of�marginally-user-useful�information,�and�tool/core<br> 2924����statistics.��The�statistics�printing�has�now�been�moved�to�its�own<br> 2925����flag,�--stats=yes.��This�means�-v�is�less�verbose�and�more�likely<br> 2926����to�convey�useful�end-user�information.<br> 2927<br> 2928��-�The�format�of�some�(non-XML)�stack�trace�entries�has�changed�a<br> 2929����little.��Previously�there�were�six�possible�forms:<br> 2930<br> 2931������0x80483BF:�really�(a.c:20)<br> 2932������0x80483BF:�really�(in�/foo/a.out)<br> 2933������0x80483BF:�really<br> 2934������0x80483BF:�(within�/foo/a.out)<br> 2935������0x80483BF:�???�(a.c:20)<br> 2936������0x80483BF:�???<br> 2937<br> 2938����The�third�and�fourth�of�these�forms�have�been�made�more�consistent<br> 2939����with�the�others.��The�six�possible�forms�are�now:<br> 2940��<br> 2941������0x80483BF:�really�(a.c:20)<br> 2942������0x80483BF:�really�(in�/foo/a.out)<br> 2943������0x80483BF:�really�(in�???)<br> 2944������0x80483BF:�???�(in�/foo/a.out)<br> 2945������0x80483BF:�???�(a.c:20)<br> 2946������0x80483BF:�???<br> 2947<br> 2948����Stack�traces�produced�when�--xml=yes�is�specified�are�different<br> 2949����and�unchanged.<br> 2950<br> 2951<br> 2952*�Helgrind�and�Ptrcheck�now�support�XML�output,�so�they�can�be�used<br> 2953��from�GUI�tools.��Also,�the�XML�output�mechanism�has�been<br> 2954��overhauled.<br> 2955<br> 2956��-�The�XML�format�has�been�overhauled�and�generalised,�so�it�is�more<br> 2957����suitable�for�error�reporting�tools�in�general.��The�Memcheck<br> 2958����specific�aspects�of�it�have�been�removed.��The�new�format,�which<br> 2959����is�an�evolution�of�the�old�format,�is�described�in<br> 2960����docs/internals/xml-output-protocol4.txt.<br> 2961<br> 2962��-�Memcheck�has�been�updated�to�use�the�new�format.<br> 2963<br> 2964��-�Helgrind�and�Ptrcheck�are�now�able�to�emit�output�in�this�format.<br> 2965<br> 2966��-�The�XML�output�mechanism�has�been�overhauled.��XML�is�now�output<br> 2967����to�its�own�file�descriptor,�which�means�that:<br> 2968<br> 2969����*�Valgrind�can�output�text�and�XML�independently.<br> 2970<br> 2971����*�The�longstanding�problem�of�XML�output�being�corrupted�by�<br> 2972������unexpected�un-tagged�text�messages��is�solved.<br> 2973<br> 2974����As�before,�the�destination�for�text�output�is�specified�using<br> 2975����--log-file=,�--log-fd=�or�--log-socket=.<br> 2976<br> 2977����As�before,�XML�output�for�a�tool�is�enabled�using�--xml=yes.<br> 2978<br> 2979����Because�there's�a�new�XML�output�channel,�the�XML�output<br> 2980����destination�is�now�specified�by�--xml-file=,�--xml-fd=�or<br> 2981����--xml-socket=.<br> 2982<br> 2983����Initial�feedback�has�shown�this�causes�some�confusion.��To<br> 2984����clarify,�the�two�envisaged�usage�scenarios�are:<br> 2985<br> 2986����(1)�Normal�text�output.��In�this�case,�do�not�specify�--xml=yes<br> 2987��������nor�any�of�--xml-file=,�--xml-fd=�or�--xml-socket=.<br> 2988<br> 2989����(2)�XML�output.��In�this�case,�specify�--xml=yes,�and�one�of<br> 2990��������--xml-file=,�--xml-fd=�or�--xml-socket=�to�select�the�XML<br> 2991��������destination,�one�of�--log-file=,�--log-fd=�or�--log-socket=<br> 2992��������to�select�the�destination�for�any�remaining�text�messages,<br> 2993��������and,�importantly,�-q.<br> 2994<br> 2995��������-q�makes�Valgrind�completely�silent�on�the�text�channel,<br> 2996��������except�in�the�case�of�critical�failures,�such�as�Valgrind<br> 2997��������itself�segfaulting,�or�failing�to�read�debugging�information.<br> 2998��������Hence,�in�this�scenario,�it�suffices�to�check�whether�or�not<br> 2999��������any�output�appeared�on�the�text�channel.��If�yes,�then�it�is<br> 3000��������likely�to�be�a�critical�error�which�should�be�brought�to�the<br> 3001��������attention�of�the�user.��If�no�(the�text�channel�produced�no<br> 3002��������output)�then�it�can�be�assumed�that�the�run�was�successful.<br> 3003<br> 3004��������This�allows�GUIs�to�make�the�critical�distinction�they�need�to<br> 3005��������make�(did�the�run�fail�or�not?)�without�having�to�search�or<br> 3006��������filter�the�text�output�channel�in�any�way.<br> 3007<br> 3008����It�is�also�recommended�to�use�--child-silent-after-fork=yes�in<br> 3009����scenario�(2).<br> 3010<br> 3011<br> 3012*�Improvements�and�changes�in�Helgrind:<br> 3013<br> 3014��-�XML�output,�as�described�above<br> 3015<br> 3016��-�Checks�for�consistent�association�between�pthread�condition<br> 3017����variables�and�their�associated�mutexes�are�now�performed.<br> 3018<br> 3019��-�pthread_spinlock�functions�are�supported.<br> 3020<br> 3021��-�Modest�performance�improvements.<br> 3022<br> 3023��-�Initial�(skeletal)�support�for�describing�the�behaviour�of<br> 3024����non-POSIX�synchronisation�objects�through�ThreadSanitizer<br> 3025����compatible�ANNOTATE_*�macros.<br> 3026<br> 3027��-�More�controllable�tradeoffs�between�performance�and�the�level�of<br> 3028����detail�of�"previous"�accesses�in�a�race.��There�are�now�three<br> 3029����settings:<br> 3030<br> 3031����*�--history-level=full.��This�is�the�default,�and�was�also�the<br> 3032������default�in�3.4.x.��It�shows�both�stacks�involved�in�a�race,�but<br> 3033������requires�a�lot�of�memory�and�can�be�very�slow�in�programs�that<br> 3034������do�many�inter-thread�synchronisation�events.<br> 3035<br> 3036����*�--history-level=none.��This�only�shows�the�later�stack�involved<br> 3037������in�a�race.��This�can�be�much�faster�than�--history-level=full,<br> 3038������but�makes�it�much�more�difficult�to�find�the�other�access<br> 3039������involved�in�the�race.<br> 3040<br> 3041����The�new�intermediate�setting�is<br> 3042<br> 3043����*�--history-level=approx<br> 3044<br> 3045������For�the�earlier�(other)�access,�two�stacks�are�presented.��The<br> 3046������earlier�access�is�guaranteed�to�be�somewhere�in�between�the�two<br> 3047������program�points�denoted�by�those�stacks.��This�is�not�as�useful<br> 3048������as�showing�the�exact�stack�for�the�previous�access�(as�per<br> 3049������--history-level=full),�but�it�is�better�than�nothing,�and�it's<br> 3050������almost�as�fast�as�--history-level=none.<br> 3051<br> 3052<br> 3053*�New�features�and�improvements�in�DRD:<br> 3054<br> 3055��-�The�error�messages�printed�by�DRD�are�now�easier�to�interpret.<br> 3056����Instead�of�using�two�different�numbers�to�identify�each�thread<br> 3057����(Valgrind�thread�ID�and�DRD�thread�ID),�DRD�does�now�identify<br> 3058����threads�via�a�single�number�(the�DRD�thread�ID).��Furthermore<br> 3059����"first�observed�at"�information�is�now�printed�for�all�error<br> 3060����messages�related�to�synchronization�objects.<br> 3061<br> 3062��-�Added�support�for�named�semaphores�(sem_open()�and�sem_close()).<br> 3063<br> 3064��-�Race�conditions�between�pthread_barrier_wait()�and<br> 3065����pthread_barrier_destroy()�calls�are�now�reported.<br> 3066<br> 3067��-�Added�support�for�custom�allocators�through�the�macros<br> 3068����VALGRIND_MALLOCLIKE_BLOCK()�VALGRIND_FREELIKE_BLOCK()�(defined�in<br> 3069����in�<valgrind/valgrind.h>).�An�alternative�for�these�two�macros�is<br> 3070����the�new�client�request�VG_USERREQ__DRD_CLEAN_MEMORY�(defined�in<br> 3071����<valgrind/drd.h>).<br> 3072<br> 3073��-�Added�support�for�annotating�non-POSIX�synchronization�objects<br> 3074����through�several�new�ANNOTATE_*()�macros.<br> 3075<br> 3076��-�OpenMP:�added�support�for�the�OpenMP�runtime�(libgomp)�included<br> 3077����with�gcc�versions�4.3.0�and�4.4.0.<br> 3078<br> 3079��-�Faster�operation.<br> 3080<br> 3081��-�Added�two�new�command-line�options�(--first-race-only�and<br> 3082����--segment-merging-interval).<br> 3083<br> 3084<br> 3085*�Genuinely�atomic�support�for�x86/amd64/ppc�atomic�instructions<br> 3086<br> 3087��Valgrind�will�now�preserve�(memory-access)�atomicity�of�LOCK-<br> 3088��prefixed�x86/amd64�instructions,�and�any�others�implying�a�global<br> 3089��bus�lock.��Ditto�for�PowerPC�l{w,d}arx/st{w,d}cx.�instructions.<br> 3090<br> 3091��This�means�that�Valgrinded�processes�will�"play�nicely"�in<br> 3092��situations�where�communication�with�other�processes,�or�the�kernel,<br> 3093��is�done�through�shared�memory�and�coordinated�with�such�atomic<br> 3094��instructions.��Prior�to�this�change,�such�arrangements�usually<br> 3095��resulted�in�hangs,�races�or�other�synchronisation�failures,�because<br> 3096��Valgrind�did�not�honour�atomicity�of�such�instructions.<br> 3097<br> 3098<br> 3099*�A�new�experimental�tool,�BBV,�has�been�added.��BBV�generates�basic<br> 3100��block�vectors�for�use�with�the�SimPoint�analysis�tool,�which�allows<br> 3101��a�program's�overall�behaviour�to�be�approximated�by�running�only�a<br> 3102��fraction�of�it.��This�is�useful�for�computer�architecture<br> 3103��researchers.��You�can�run�BBV�by�specifying�--tool=exp-bbv�(the<br> 3104��"exp-"�prefix�is�short�for�"experimental").��BBV�was�written�by<br> 3105��Vince�Weaver.<br> 3106<br> 3107<br> 3108*�Modestly�improved�support�for�running�Windows�applications�under<br> 3109��Wine.��In�particular,�initial�support�for�reading�Windows�.PDB�debug<br> 3110��information�has�been�added.<br> 3111<br> 3112<br> 3113*�A�new�Memcheck�client�request�VALGRIND_COUNT_LEAK_BLOCKS�has�been<br> 3114��added.��It�is�similar�to�VALGRIND_COUNT_LEAKS�but�counts�blocks<br> 3115��instead�of�bytes.<br> 3116<br> 3117<br> 3118*�The�Valgrind�client�requests�VALGRIND_PRINTF�and<br> 3119��VALGRIND_PRINTF_BACKTRACE�have�been�changed�slightly.��Previously,<br> 3120��the�string�was�always�printed�immediately�on�its�own�line.��Now,�the<br> 3121��string�will�be�added�to�a�buffer�but�not�printed�until�a�newline�is<br> 3122��encountered,�or�other�Valgrind�output�is�printed�(note�that�for<br> 3123��VALGRIND_PRINTF_BACKTRACE,�the�back-trace�itself�is�considered<br> 3124��"other�Valgrind�output").��This�allows�you�to�use�multiple<br> 3125��VALGRIND_PRINTF�calls�to�build�up�a�single�output�line,�and�also�to<br> 3126��print�multiple�output�lines�with�a�single�request�(by�embedding<br> 3127��multiple�newlines�in�the�string).<br> 3128<br> 3129<br> 3130*�The�graphs�drawn�by�Massif's�ms_print�program�have�changed�slightly:<br> 3131<br> 3132��-�The�half-height�chars�'.'�and�','�are�no�longer�drawn,�because<br> 3133����they�are�confusing.��The�--y�option�can�be�used�if�the�default<br> 3134����y-resolution�is�not�high�enough.<br> 3135<br> 3136��-�Horizontal�lines�are�now�drawn�after�the�top�of�a�snapshot�if<br> 3137����there�is�a�gap�until�the�next�snapshot.��This�makes�it�clear�that<br> 3138����the�memory�usage�has�not�dropped�to�zero�between�snapshots.<br> 3139<br> 3140<br> 3141*�Something�that�happened�in�3.4.0,�but�wasn't�clearly�announced:�the<br> 3142��option�--read-var-info=yes�can�be�used�by�some�tools�(Memcheck,<br> 3143��Helgrind�and�DRD).��When�enabled,�it�causes�Valgrind�to�read�DWARF3<br> 3144��variable�type�and�location�information.��This�makes�those�tools<br> 3145��start�up�more�slowly�and�increases�memory�consumption,�but<br> 3146��descriptions�of�data�addresses�in�error�messages�become�more<br> 3147��detailed.<br> 3148<br> 3149<br> 3150*�exp-Omega,�an�experimental�instantaneous�leak-detecting�tool,�was<br> 3151��disabled�in�3.4.0�due�to�a�lack�of�interest�and�maintenance,<br> 3152��although�the�source�code�was�still�in�the�distribution.��The�source<br> 3153��code�has�now�been�removed�from�the�distribution.��For�anyone<br> 3154��interested,�the�removal�occurred�in�SVN�revision�r10247.<br> 3155<br> 3156<br> 3157*�Some�changes�have�been�made�to�the�build�system.<br> 3158<br> 3159��-�VEX/�is�now�integrated�properly�into�the�build�system.��This�means<br> 3160����that�dependency�tracking�within�VEX/�now�works�properly,�"make<br> 3161����install"�will�work�without�requiring�"make"�before�it,�and<br> 3162����parallel�builds�(ie.�'make�-j')�now�work�(previously�a<br> 3163����.NOTPARALLEL�directive�was�used�to�serialize�builds,�ie.�'make�-j'<br> 3164����was�effectively�ignored).<br> 3165<br> 3166��-�The�--with-vex�configure�option�has�been�removed.��It�was�of<br> 3167����little�use�and�removing�it�simplified�the�build�system.<br> 3168<br> 3169��-�The�location�of�some�install�files�has�changed.��This�should�not<br> 3170����affect�most�users.��Those�who�might�be�affected:<br> 3171<br> 3172����*�For�people�who�use�Valgrind�with�MPI�programs,�the�installed<br> 3173������libmpiwrap.so�library�has�moved�from<br> 3174������$(INSTALL)/<platform>/libmpiwrap.so�to<br> 3175������$(INSTALL)/libmpiwrap-<platform>.so.<br> 3176<br> 3177����*�For�people�who�distribute�standalone�Valgrind�tools,�the<br> 3178������installed�libraries�such�as�$(INSTALL)/<platform>/libcoregrind.a<br> 3179������have�moved�to�$(INSTALL)/libcoregrind-<platform>.a.<br> 3180<br> 3181����These�changes�simplify�the�build�system.<br> 3182<br> 3183��-�Previously,�all�the�distributed�suppression�(*.supp)�files�were<br> 3184����installed.��Now,�only�default.supp�is�installed.��This�should�not<br> 3185����affect�users�as�the�other�installed�suppression�files�were�not<br> 3186����read;�the�fact�that�they�were�installed�was�a�mistake.<br> 3187<br> 3188<br> 3189*�KNOWN�LIMITATIONS:<br> 3190<br> 3191��-�Memcheck�is�unusable�with�the�Intel�compiler�suite�version�11.1,<br> 3192����when�it�generates�code�for�SSE2-and-above�capable�targets.��This<br> 3193����is�because�of�icc's�use�of�highly�optimised�inlined�strlen<br> 3194����implementations.��It�causes�Memcheck�to�report�huge�numbers�of<br> 3195����false�errors�even�in�simple�programs.��Helgrind�and�DRD�may�also<br> 3196����have�problems.<br> 3197<br> 3198����Versions�11.0�and�earlier�may�be�OK,�but�this�has�not�been<br> 3199����properly�tested.<br> 3200<br> 3201<br> 3202The�following�bugs�have�been�fixed�or�resolved.��Note�that�"n-i-bz"<br> 3203stands�for�"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us<br> 3204but�never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 3205bugzilla�(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than<br> 3206mailing�the�developers�(or�mailing�lists)�directly�--�bugs�that�are<br> 3207not�entered�into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 3208<br> 3209To�see�details�of�a�given�bug,�visit<br> 3210https://bugs.kde.org/show_bug.cgi?id=XXXXXX<br> 3211where�XXXXXX�is�the�bug�number�as�listed�below.<br> 3212<br> 321384303���How�about�a�LockCheck�tool?�<br> 321491633���dereference�of�null�ptr�in�vgPlain_st_basetype�<br> 321597452���Valgrind�doesn't�report�any�pthreads�problems�<br> 3216100628��leak-check�gets�assertion�failure�when�using�<br> 3217��������VALGRIND_MALLOCLIKE_BLOCK�on�malloc()ed�memory�<br> 3218108528��NPTL�pthread�cleanup�handlers�not�called�<br> 3219110126��Valgrind�2.4.1�configure.in�tramples�CFLAGS�<br> 3220110128��mallinfo�is�not�implemented...�<br> 3221110770��VEX:�Generated�files�not�always�updated�when�making�valgrind<br> 3222111102��Memcheck:�problems�with�large�(memory�footprint)�applications�<br> 3223115673��Vex's�decoder�should�never�assert�<br> 3224117564��False�positive:�Syscall�param�clone(child_tidptr)�contains<br> 3225��������uninitialised�byte(s)�<br> 3226119404��executing�ssh�from�inside�valgrind�fails�<br> 3227133679��Callgrind�does�not�write�path�names�to�sources�with�dwarf�debug<br> 3228��������info<br> 3229135847��configure.in�problem�with�non�gnu�compilers�(and�possible�fix)�<br> 3230136154��threads.c:273�(vgCallgrind_post_signal):�Assertion<br> 3231��������'*(vgCallgrind_current_fn_stack.top)�==�0'�failed.�<br> 3232136230��memcheck�reports�"possibly�lost",�should�be�"still�reachable"�<br> 3233137073��NULL�arg�to�MALLOCLIKE_BLOCK�causes�crash�<br> 3234137904��Valgrind�reports�a�memory�leak�when�using�POSIX�threads,<br> 3235��������while�it�shouldn't�<br> 3236139076��valgrind�VT_GETSTATE�error�<br> 3237142228��complaint�of�elf_dynamic_do_rela�in�trivial�usage�<br> 3238145347��spurious�warning�with�USBDEVFS_REAPURB�<br> 3239148441��(wine)�can't�find�memory�leak�in�Wine,�win32�binary�<br> 3240��������executable�file.<br> 3241148742��Leak-check�fails�assert�on�exit�<br> 3242149878��add�(proper)�check�for�calloc�integer�overflow�<br> 3243150606��Call�graph�is�broken�when�using�callgrind�control�<br> 3244152393��leak�errors�produce�an�exit�code�of�0.�I�need�some�way�to�<br> 3245��������cause�leak�errors�to�result�in�a�nonzero�exit�code.�<br> 3246157154��documentation�(leak-resolution�doc�speaks�about�num-callers<br> 3247��������def=4)�+�what�is�a�loss�record<br> 3248159501��incorrect�handling�of�ALSA�ioctls�<br> 3249162020��Valgrinding�an�empty/zero-byte�file�crashes�valgrind�<br> 3250162482��ppc:�Valgrind�crashes�while�reading�stabs�information�<br> 3251162718��x86:�avoid�segment�selector�0�in�sys_set_thread_area()�<br> 3252163253��(wine)�canonicaliseSymtab�forgot�some�fields�in�DiSym�<br> 3253163560��VEX/test_main.c�is�missing�from�valgrind-3.3.1�<br> 3254164353��malloc_usable_size()�doesn't�return�a�usable�size�<br> 3255165468��Inconsistent�formatting�in�memcheck�manual�--�please�fix�<br> 3256169505��main.c:286�(endOfInstr):<br> 3257��������Assertion�'ii->cost_offset�==�*cost_offset'�failed�<br> 3258177206��Generate�default.supp�during�compile�instead�of�configure<br> 3259177209��Configure�valt_load_address�based�on�arch+os�<br> 3260177305��eventfd�/�syscall�323�patch�lost<br> 3261179731��Tests�fail�to�build�because�of�inlining�of�non-local�asm�labels<br> 3262181394��helgrind:�libhb_core.c:3762�(msm_write):�Assertion�<br> 3263��������'ordxx�==�POrd_EQ�||�ordxx�==�POrd_LT'�failed.�<br> 3264181594��Bogus�warning�for�empty�text�segment�<br> 3265181707��dwarf�doesn't�require�enumerations�to�have�name�<br> 3266185038��exp-ptrcheck:�"unhandled�syscall:�285"�(fallocate)�on�x86_64�<br> 3267185050��exp-ptrcheck:�sg_main.c:727�(add_block_to_GlobalTree):<br> 3268��������Assertion�'!already_present'�failed.<br> 3269185359��exp-ptrcheck:�unhandled�syscall�getresuid()<br> 3270185794��"WARNING:�unhandled�syscall:�285"�(fallocate)�on�x86_64<br> 3271185816��Valgrind�is�unable�to�handle�debug�info�for�files�with�split<br> 3272��������debug�info�that�are�prelinked�afterwards�<br> 3273185980��[darwin]�unhandled�syscall:�sem_open�<br> 3274186238��bbToIR_AMD64:�disInstr�miscalculated�next�%rip<br> 3275186507��exp-ptrcheck�unhandled�syscalls�prctl,�etc.�<br> 3276186790��Suppression�pattern�used�for�leaks�are�not�reported�<br> 3277186796��Symbols�with�length>200�in�suppression�files�are�ignored�<br> 3278187048��drd:�mutex�PTHREAD_PROCESS_SHARED�attribute�missinterpretation<br> 3279187416��exp-ptrcheck:�support�for�__NR_{setregid,setreuid,setresuid}<br> 3280188038��helgrind:�hg_main.c:926:�mk_SHVAL_fail:�the�'impossible'�happened<br> 3281188046��bashisms�in�the�configure�script<br> 3282188127��amd64->IR:�unhandled�instruction�bytes:�0xF0�0xF�0xB0�0xA<br> 3283188161��memcheck:�--track-origins=yes�asserts�"mc_machine.c:672<br> 3284��������(get_otrack_shadow_offset_wrk):�the�'impossible'�happened."<br> 3285188248��helgrind:�pthread_cleanup_push,�pthread_rwlock_unlock,�<br> 3286��������assertion�fail�"!lock->heldBy"�<br> 3287188427��Add�support�for�epoll_create1�(with�patch)�<br> 3288188530��Support�for�SIOCGSTAMPNS<br> 3289188560��Include�valgrind.spec�in�the�tarball<br> 3290188572��Valgrind�on�Mac�should�suppress�setenv()�mem�leak�<br> 3291189054��Valgrind�fails�to�build�because�of�duplicate�non-local�asm�labels�<br> 3292189737��vex�amd64->IR:�unhandled�instruction�bytes:�0xAC<br> 3293189762��epoll_create�syscall�not�handled�(--tool=exp-ptrcheck)<br> 3294189763��drd�assertion�failure:�s_threadinfo[tid].is_recording�<br> 3295190219��unhandled�syscall:�328�(x86-linux)<br> 3296190391��dup�of�181394;�see�above<br> 3297190429��Valgrind�reports�lots�of�errors�in�ld.so�with�x86_64�2.9.90�glibc�<br> 3298190820��No�debug�information�on�powerpc-linux<br> 3299191095��PATCH:�Improve�usbdevfs�ioctl�handling�<br> 3300191182��memcheck:�VALGRIND_LEAK_CHECK�quadratic�when�big�nr�of�chunks<br> 3301��������or�big�nr�of�errors<br> 3302191189��--xml=yes�should�obey�--gen-suppressions=all�<br> 3303191192��syslog()�needs�a�suppression�on�macosx�<br> 3304191271��DARWIN:�WARNING:�unhandled�syscall:�33554697�a.k.a.:�265�<br> 3305191761��getrlimit�on�MacOSX�<br> 3306191992��multiple�--fn-skip�only�works�sometimes;�dependent�on�order�<br> 3307192634��V.�reports�"aspacem�sync_check_mapping_callback:�<br> 3308��������segment�mismatch"�on�Darwin<br> 3309192954��__extension__�missing�on�2�client�requests�<br> 3310194429��Crash�at�start-up�with�glibc-2.10.1�and�linux-2.6.29�<br> 3311194474��"INSTALL"�file�has�different�build�instructions�than�"README"<br> 3312194671��Unhandled�syscall�(sem_wait?)�from�mac�valgrind�<br> 3313195069��memcheck:�reports�leak�(memory�still�reachable)�for�<br> 3314��������printf("%d',�x)�<br> 3315195169��drd:�(vgDrd_barrier_post_wait):<br> 3316��������Assertion�'r->sg[p->post_iteration]'�failed.�<br> 3317195268��valgrind�--log-file�doesn't�accept�~/...<br> 3318195838��VEX�abort:�LibVEX_N_SPILL_BYTES�too�small�for�CPUID�boilerplate�<br> 3319195860��WARNING:�unhandled�syscall:�unix:223�<br> 3320196528��need�a�error�suppression�for�pthread_rwlock_init�under�os�x?�<br> 3321197227��Support�aio_*�syscalls�on�Darwin<br> 3322197456��valgrind�should�reject�--suppressions=(directory)�<br> 3323197512��DWARF2�CFI�reader:�unhandled�CFI�instruction�0:10�<br> 3324197591��unhandled�syscall�27�(mincore)�<br> 3325197793��Merge�DCAS�branch�to�the�trunk�==�85756,�142103<br> 3326197794��Avoid�duplicate�filenames�in�Vex�<br> 3327197898��make�check�fails�on�current�SVN�<br> 3328197901��make�check�fails�also�under�exp-ptrcheck�in�current�SVN�<br> 3329197929��Make�--leak-resolution=high�the�default�<br> 3330197930��Reduce�spacing�between�leak�reports�<br> 3331197933��Print�command�line�of�client�at�start-up,�and�shorten�preamble�<br> 3332197966��unhandled�syscall�205�(x86-linux,�--tool=exp-ptrcheck)<br> 3333198395��add�BBV�to�the�distribution�as�an�experimental�tool�<br> 3334198624��Missing�syscalls�on�Darwin:�82,�167,�281,�347�<br> 3335198649��callgrind_annotate�doesn't�cumulate�counters�<br> 3336199338��callgrind_annotate�sorting/thresholds�are�broken�for�all�but�Ir�<br> 3337199977��Valgrind�complains�about�an�unrecognized�instruction�in�the<br> 3338��������atomic_incs�test�program<br> 3339200029��valgrind�isn't�able�to�read�Fedora�12�debuginfo�<br> 3340200760��darwin�unhandled�syscall:�unix:284�<br> 3341200827��DRD�doesn't�work�on�Mac�OS�X�<br> 3342200990��VG_(read_millisecond_timer)()�does�not�work�correctly�<br> 3343201016��Valgrind�does�not�support�pthread_kill()�on�Mac�OS�<br> 3344201169��Document�--read-var-info<br> 3345201323��Pre-3.5.0�performance�sanity�checking�<br> 3346201384��Review�user�manual�for�the�3.5.0�release�<br> 3347201585��mfpvr�not�implemented�on�ppc�<br> 3348201708��tests�failing�because�x86�direction�flag�is�left�set�<br> 3349201757��Valgrind�doesn't�handle�any�recent�sys_futex�additions�<br> 3350204377��64-bit�valgrind�can�not�start�a�shell�script<br> 3351��������(with�#!/path/to/shell)�if�the�shell�is�a�32-bit�executable<br> 3352n-i-bz��drd:�fixed�assertion�failure�triggered�by�mutex�reinitialization.<br> 3353n-i-bz��drd:�fixed�a�bug�that�caused�incorrect�messages�to�be�printed<br> 3354��������about�memory�allocation�events�with�memory�access�tracing�enabled<br> 3355n-i-bz��drd:�fixed�a�memory�leak�triggered�by�vector�clock�deallocation<br> 3356<br> 3357(3.5.0:�19�Aug�2009,�vex�r1913,�valgrind�r10846).<br> 3358<br> 3359<br> 3360<br> 3361Release�3.4.1�(28�February�2009)<br> 3362~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 33633.4.1�is�a�bug-fix�release�that�fixes�some�regressions�and�assertion<br> 3364failures�in�debug�info�reading�in�3.4.0,�most�notably�incorrect�stack<br> 3365traces�on�amd64-linux�on�older�(glibc-2.3�based)�systems.�Various<br> 3366other�debug�info�problems�are�also�fixed.��A�number�of�bugs�in�the<br> 3367exp-ptrcheck�tool�introduced�in�3.4.0�have�been�fixed.<br> 3368<br> 3369In�view�of�the�fact�that�3.4.0�contains�user-visible�regressions<br> 3370relative�to�3.3.x,�upgrading�to�3.4.1�is�recommended.��Packagers�are<br> 3371encouraged�to�ship�3.4.1�in�preference�to�3.4.0.<br> 3372<br> 3373The�fixed�bugs�are�as�follows.��Note�that�"n-i-bz"�stands�for�"not�in<br> 3374bugzilla"�--�that�is,�a�bug�that�was�reported�to�us�but�never�got�a<br> 3375bugzilla�entry.��We�encourage�you�to�file�bugs�in�bugzilla<br> 3376(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than�mailing�the<br> 3377developers�(or�mailing�lists)�directly�--�bugs�that�are�not�entered<br> 3378into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br> 3379<br> 3380n-i-bz��Fix�various�bugs�reading�icc-11�generated�debug�info<br> 3381n-i-bz��Fix�various�bugs�reading�gcc-4.4�generated�debug�info<br> 3382n-i-bz��Preliminary�support�for�glibc-2.10�/�Fedora�11<br> 3383n-i-bz��Cachegrind�and�Callgrind:�handle�non-power-of-two�cache�sizes,<br> 3384��������so�as�to�support�(eg)�24k�Atom�D1�and�Core2�with�3/6/12MB�L2.<br> 3385179618��exp-ptrcheck�crashed�/�exit�prematurely<br> 3386179624��helgrind:�false�positive�races�with�pthread_create�and<br> 3387��������recv/open/close/read<br> 3388134207��pkg-config�output�contains�@VG_PLATFORM@<br> 3389176926��floating�point�exception�at�valgrind�startup�with�PPC�440EPX<br> 3390181594��Bogus�warning�for�empty�text�segment<br> 3391173751��amd64->IR:�0x48�0xF�0x6F�0x45�(even�more�redundant�rex�prefixes)<br> 3392181707��Dwarf3�doesn't�require�enumerations�to�have�name<br> 3393185038��exp-ptrcheck:�"unhandled�syscall:�285"�(fallocate)�on�x86_64<br> 3394185050��exp-ptrcheck:�sg_main.c:727�(add_block_to_GlobalTree):<br> 3395��������Assertion�'!already_present'�failed.<br> 3396185359��exp-ptrcheck�unhandled�syscall�getresuid()<br> 3397<br> 3398(3.4.1.RC1:��24�Feb�2008,�vex�r1884,�valgrind�r9253).<br> 3399(3.4.1:������28�Feb�2008,�vex�r1884,�valgrind�r9293).<br> 3400<br> 3401<br> 3402<br> 3403Release�3.4.0�(2�January�2009)<br> 3404~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br> 34053.4.0�is�a�feature�release�with�many�significant�improvements�and�the<br> 3406usual�collection�of�bug�fixes.��This�release�supports�X86/Linux,<br> 3407AMD64/Linux,�PPC32/Linux�and�PPC64/Linux.��Support�for�recent�distros<br> 3408(using�gcc�4.4,�glibc�2.8�and�2.9)�has�been�added.<br> 3409<br> 34103.4.0�brings�some�significant�tool�improvements.��Memcheck�can�now<br> 3411report�the�origin�of�uninitialised�values,�the�thread�checkers<br> 3412Helgrind�and�DRD�are�much�improved,�and�we�have�a�new�experimental<br> 3413tool,�exp-Ptrcheck,�which�is�able�to�detect�overruns�of�stack�and<br> 3414global�arrays.��In�detail:<br> 3415<br> 3416*�Memcheck�is�now�able�to�track�the�origin�of�uninitialised�values.<br> 3417��When�it�reports�an�uninitialised�value�error,�it�will�try�to�show<br> 3418��the�origin�of�the�value,�as�either�a�heap�or�stack�allocation.<br> 3419��Origin�tracking�is�expensive�and�so�is�not�enabled�by�default.��To<br> 3420��use�it,�specify�--track-origins=yes.��Memcheck's�speed�will�be<br> 3421��essentially�halved,�and�memory�usage�will�be�significantly<br> 3422��increased.��Nevertheless�it�can�drastically�reduce�the�effort<br> 3423��required�to�identify�the�root�cause�of�uninitialised�value�errors,<br> 3424��and�so�is�often�a�programmer�productivity�win,�despite�running�more<br> 3425��slowly.<br> 3426<br> 3427*�A�version�(1.4.0)�of�the�Valkyrie�GUI,�that�works�with�Memcheck�in<br> 3428��3.4.0,�will�be�released�shortly.<br> 3429<br> 3430*�Helgrind's�race�detection�algorithm�has�been�completely�redesigned<br> 3431��and�reimplemented,�to�address�usability�and�scalability�concerns:<br> 3432<br> 3433��-�The�new�algorithm�has�a�lower�false-error�rate:�it�is�much�less<br> 3434����likely�to�report�races�that�do�not�really�exist.<br> 3435<br> 3436��-�Helgrind�will�display�full�call�stacks�for�both�accesses�involved<br> 3437����in�a�race.��This�makes�it�easier�to�identify�the�root�causes�of<br> 3438����races.<br> 3439<br> 3440��-�Limitations�on�the�size�of�program�that�can�run�have�been�removed.<br> 3441<br> 3442��-�Performance�has�been�modestly�improved,�although�that�is�very<br> 3443����workload-dependent.<br> 3444<br> 3445��-�Direct�support�for�Qt4�threading�has�been�added.<br> 3446<br> 3447��-�pthread_barriers�are�now�directly�supported.<br> 3448<br> 3449��-�Helgrind�works�well�on�all�supported�Linux�targets.<br> 3450<br> 3451*�The�DRD�thread�debugging�tool�has�seen�major�improvements:<br> 3452<br> 3453��-�Greatly�improved�performance�and�significantly�reduced�memory<br> 3454����usage.<br> 3455<br> 3456��-�Support�for�several�major�threading�libraries�(Boost.Thread,�Qt4,<br> 3457����glib,�OpenMP)�has�been�added.<br> 3458<br> 3459��-�Support�for�atomic�instructions,�POSIX�semaphores,�barriers�and<br> 3460����reader-writer�locks�has�been�added.<br> 3461<br> 3462��-�Works�now�on�PowerPC�CPUs�too.<br> 3463<br> 3464��-�Added�support�for�printing�thread�stack�usage�at�thread�exit�time.<br> 3465<br> 3466��-�Added�support�for�debugging�lock�contention.<br> 3467<br> 3468��-�Added�a�manual�for�Drd.<br> 3469<br> 3470*�A�new�experimental�tool,�exp-Ptrcheck,�has�been�added.��Ptrcheck<br> 3471��checks�for�misuses�of�pointers.��In�that�sense�it�is�a�bit�like<br> 3472��Memcheck.��However,�Ptrcheck�can�do�things�Memcheck�can't:�it�can<br> 3473��detect�overruns�of�stack�and�global�arrays,�it�can�detect<br> 3474��arbitrarily�far�out-of-bounds�accesses�to�heap�blocks,�and�it�can<br> 3475��detect�accesses�heap�blocks�that�have�been�freed�a�very�long�time<br> 3476��ago�(millions�of�blocks�in�the�past).<br> 3477<br> 3478��Ptrcheck�currently�works�only�on�x86-linux�and�amd64-linux.��To�use<br> 3479��it,�use�--tool=exp-ptrcheck.��A�simple�manual�is�provided,�as�part<br> 3480��of�the�main�Valgrind�documentation.��As�this�is�an�experimental<br> 3481��tool,�we�would�be�particularly�interested�in�hearing�about�your<br> 3482��experiences�with�it.<br> 3483<br> 3484*�exp-Omega,�an�experimental�instantaneous�leak-detecting�tool,�is�no<br> 3485��longer�built�by�default,�although�the�code�remains�in�the�repository<br> 3486��and�the�tarball.��This�is�due�to�three�factors:�a�perceived�lack�of<br> 3487��users,�a�lack�of�maintenance,�and�concerns�that�it�may�not�be<br> 3488��possible�to�achieve�reliable�operation�using�the�existing�design.<br> 3489<br> 3490*�As�usual,�support�for�the�latest�Linux�distros�and�toolchain<br> 3491��components�has�been�added.��It�should�work�well�on�Fedora�Core�10,<br> 3492��OpenSUSE�11.1�and�Ubuntu�8.10.��gcc-4.4�(in�its�current�pre-release<br> 3493��state)�is�supported,�as�is�glibc-2.9.��The�C++�demangler�has�been<br> 3494��updated�so�as�to�work�well�with�C++�compiled�by�even�the�most�recent<br> 3495��g++'s.<br> 3496<br> 3497*�You�can�now�use�frame-level�wildcards�in�suppressions.��This�was�a<br> 3498��frequently-requested�enhancement.��A�line�"..."�in�a�suppression�now<br> 3499��matches�zero�or�more�frames.��This�makes�it�easier�to�write<br> 3500��suppressions�which�are�precise�yet�insensitive�to�changes�in<br> 3501��inlining�behaviour.<br> 3502<br> 3503*�3.4.0�adds�support�on�x86/amd64�for�the�SSSE3�instruction�set.<br> 3504<br> 3505*�Very�basic�support�for�IBM�Power6�has�been�added�(64-bit�processes�only).<br> 3506<br> 3507*�Valgrind�is�now�cross-compilable.��For�example,�it�is�possible�to<br> 3508��cross�compile�Valgrind�on�an�x86/amd64-linux�host,�so�that�it�runs<br> 3509��on�a�ppc32/64-linux�target.<br> 3510<br> 3511*�You�can�set�the�main�thread's�stack�size�at�startup�using�the<br> 3512��new�--main-stacksize=�flag�(subject�of�course�to�ulimit�settings).<br> 3513��This�is�useful�for�running�apps�that�need�a�lot�of�stack�space.<br> 3514<br> 3515*�The�limitation�that�you�can't�use�--trace-children=yes�together<br> 3516��with�--db-attach=yes�has�been�removed.<br> 3517<br> 3518*�The�following�bugs�have�been�fixed.��Note�that�"n-i-bz"�stands�for<br> 3519��"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us�but<br> 3520��never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br> 3521��bugzilla�(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than<br> 3522��mailing�the�developers�(or�mailing�lists)�directly.<br> 3523<br> 3524��n-i-bz��Make�return�types�for�some�client�requests�64-bit�clean<br> 3525��n-i-bz��glibc�2.9�support<br> 3526��n-i-bz��ignore�unsafe�.valgrindrc's�(CVE-2008-4865)<br> 3527��n-i-bz��MPI_Init(0,0)�is�valid�but�libmpiwrap.c�segfaults<br> 3528��n-i-bz��Building�in�an�env�without�gdb�gives�bogus�gdb�attach<br> 3529��92456���Tracing�the�origin�of�uninitialised�memory<br> 3530��106497��Valgrind�does�not�demangle�some�C++�template�symbols<br> 3531��162222��==106497<br> 3532��151612��Suppression�with�"..."�(frame-level�wildcards�in�.supp�files)<br> 3533��156404��Unable�to�start�oocalc�under�memcheck�on�openSUSE�10.3�(64-bit)<br> 3534��159285��unhandled�syscall:25�(stime,�on�x86-linux)<br> 3535��159452��unhandled�ioctl�0x8B01�on�"valgrind�iwconfig"<br> 3536��160954��ppc�build�of�valgrind�crashes�with�illegal�instruction�(isel)<br> 3537��160956��mallinfo�implementation,�w/�patch<br> 3538��162092��Valgrind�fails�to�start�gnome-system-monitor<br> 3539��162819��malloc_free_fill�test�doesn't�pass�on�glibc2.8�x86<br> 3540��163794��assertion�failure�with�"--track-origins=yes"<br> 3541��163933��sigcontext.err�and�.trapno�must�be�set�together<br> 3542��163955��remove�constraint�!(--db-attach=yes�&&�--trace-children=yes)<br> 3543��164476��Missing�kernel�module�loading�system�calls<br> 3544��164669��SVN�regression:�mmap()�drops�posix�file�locks<br> 3545��166581��Callgrind�output�corruption�when�program�forks<br> 3546��167288��Patch�file�for�missing�system�calls�on�Cell�BE<br> 3547��168943��unsupported�scas�instruction�pentium<br> 3548��171645��Unrecognised�instruction�(MOVSD,�non-binutils�encoding)<br> 3549��172417��x86->IR:�0x82�...<br> 3550��172563��amd64->IR:�0xD9�0xF5��-��fprem1<br> 3551��173099��.lds�linker�script�generation�error<br> 3552��173177��[x86_64]�syscalls:�125/126/179�(capget/capset/quotactl)<br> 3553��173751��amd64->IR:�0x48�0xF�0x6F�0x45�(even�more�redundant�prefixes)<br> 3554��174532��==�173751<br> 3555��174908��--log-file�value�not�expanded�correctly�for�core�file<br> 3556��175044��Add�lookup_dcookie�for�amd64<br> 3557��175150��x86->IR:�0xF2�0xF�0x11�0xC1�(movss�non-binutils�encoding)<br> 3558<br> 3559Developer-visible�changes:<br> 3560<br> 3561*�Valgrind's�debug-info�reading�machinery�has�been�majorly�overhauled.<br> 3562��It�can�now�correctly�establish�the�addresses�for�ELF�data�symbols,<br> 3563��which�is�something�that�has�never�worked�properly�before�now.<br> 3564<br> 3565��Also,�Valgrind�can�now�read�DWARF3�type�and�location�information�for<br> 3566��stack�and�global�variables.��This�makes�it�possible�to�use�the<br> 3567��framework�to�build�tools�that�rely�on�knowing�the�type�and�locations<br> 3568��of�stack�and�global�variables,�for�example�exp-Ptrcheck.<br> 3569<br> 3570��Reading�of�such�information�is�disabled�by�default,�because�most<br> 3571��tools�don't�need�it,�and�because�it�is�expensive�in�space�and�time.<br> 3572��However,�you�can�force�Valgrind�to�read�it,�using�the<br> 3573��--read-var-info=yes�flag.��Memcheck,�Helgrind�and�DRD�are�able�to<br> 3574��make�use�of�such�information,�if�present,�to�provide�source-level<br> 3575��descriptions�of�data�addresses�in�the�error�messages�they�create.<br> 3576<br> 3577(3.4.0.RC1:��24�Dec�2008,�vex�r1878,�valgrind�r8882).<br> 3578(3.4.0:�������3�Jan�2009,�vex�r1878,�valgrind�r8899).<br> 3579<br> 3580����</p></div> 3581</div> 3582<div> 3583<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer"> 3584<tr> 3585<td rowspan="2" width="40%" align="left"> 3586<a accesskey="p" href="dist.authors.html"><<�1.�AUTHORS</a>�</td> 3587<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td> 3588<td rowspan="2" width="40%" align="right">�<a accesskey="n" href="dist.news.old.html">3.�OLDER NEWS�>></a> 3589</td> 3590</tr> 3591<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr> 3592</table> 3593</div> 3594</body> 3595</html> 3596