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=&lt;file&gt;.<br>
63<br>
64��A�report�can�also�be�produced�on�demand�using�the�gdbserver�monitor�command<br>
65��'xtmemory�[&lt;filename&gt;]&gt;'.��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�[&lt;filename&gt;]&gt;'.<br>
109<br>
110��-�New�command�line�options�--xtree-leak=no|yes�and�--xtree-leak-file=&lt;file&gt;<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�[&lt;filename&gt;]&gt;'.<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�[&lt;filename&gt;]&gt;'.<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-&gt;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/btsx86/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-&gt;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�&lt;=�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/MacOSX10.11/12,�AMD64/MacOSX10.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�&gt;=�7.11�to�use�'catch�syscall'�with<br>
362����gdbserver.<br>
363<br>
364*�New�option�--run-cxx-freeres=&lt;yes|no&gt;�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�&gt;�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-&gt;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-&gt;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�&lt;�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-&gt;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-&gt;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�&lt;=�ddpa-&gt;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.sostrchr/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)�&lt;=�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�&amp;�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�&lt;addr&gt;�&lt;len&gt;'�shows�the�validity�bits�of<br>
609����&lt;len&gt;�bytes�at�&lt;addr&gt;.��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�&lt;max_blocks&gt;'<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�&lt;filename&gt;'�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�&lt;addr&gt;�[&lt;len&gt;]'�will�show�the�recorded�accesses�for<br>
660����&lt;len&gt;�(or�1)�bytes�at�&lt;addr&gt;.<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=&lt;begin&gt;,&lt;end&gt;�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=&lt;number&gt;�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=&lt;number&gt;�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=&lt;number&gt;�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�&gt;=�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-&gt;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-&gt;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�&gt;=�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-&gt;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-&gt;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�&lt;�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�&gt;=�7.3.0w-20140611�and�gcc�&gt;=�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�&lt;address&gt;"<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=&lt;address&gt;"�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-&gt;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-&gt;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�&lt;=�last_bb-&gt;cjmp_count'�failed<br>
1245327284��s390x:�Fix�translation�of�the�risbg�instruction<br>
1246327639��vex�amd64-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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�"&amp;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-&gt;tt[tteNo].tcptr�&lt;=�(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-&gt;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-&gt;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-&gt;soname'<br>
1686320895��add�fanotify�support�(patch�included)<br>
1687320998��vex�amd64-&gt;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-&gt;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-&gt;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�&lt;=�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-&gt;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-&gt;IR:�0x66�0xF�0x3A�0x62�0xD1�0x46�0x66�0xF<br>
1791n-i-bz��shmat�of�a�segment�&gt;�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/MacOSX10.6/10.7�and�AMD64/MacOSX10.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=&lt;number&gt;�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�&gt;�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-&gt;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-&gt;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�&#8220;cross�memory�attach&#8221;�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-&gt;IR:�0x66�0xF�0x3A�0xDF�0xD1�0x1�0xE8�0x6A<br>
2030294736��vex�amd64-&gt;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-&gt;nWaiters�&gt;�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-&gt;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-&gt;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-&gt;arr_used�&lt;=�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�&lt;�256'�failed<br>
2269267413��Assertion�'DRD_(g_threadinfo)[tid].synchr_nesting�&gt;=�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�&lt;=�(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-&gt;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-&gt;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-&gt;IR:�0x66�0xF�0x3A�0x61�0xC1�0x38�(missing�PCMPxSTRx�case)<br>
2329273318��unhandled�PCMPxSTRx�case:�vex�amd64-&gt;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�&lt;=�jmp)�&amp;&amp;�...'<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-&gt;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-&gt;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(&gt;=2.12)�glibc<br>
2397283000��vex�amd64-&gt;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-&gt;IR:�0x48�0xF�0xAE�0x4�(proper�FX{SAVE,RSTOR}�support)<br>
2439210481��vex�amd64-&gt;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-&gt;IR:�0x66�0xF�0x3A�0x9�0xDB�0x0�(ROUNDPD)<br>
2452255966��Slowness�when�using�mempool�annotations<br>
2453256387��vex�x86-&gt;IR:�0xD4�0xA�0x2�0x7�(AAD�and�AAM)<br>
2454256600��super-optimized�strcasecmp()�false�positive<br>
2455256669��vex�amd64-&gt;IR:�Unhandled�LOOPNEL�insn�on�amd64<br>
2456256968��(SSE4.x)�vex�amd64-&gt;IR:�0x66�0xF�0x38�0x10�0xD3�0x66�(BLENDVPx)<br>
2457257011��(SSE4.x)�vex�amd64-&gt;IR:�0x66�0xF�0x3A�0xE�0xFD�0xA0�(PBLENDW)<br>
2458257063��(SSE4.x)�vex�amd64-&gt;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�&lt;valgrind/valgrind.h&gt;,<br>
2635��&lt;valgrind/memcheck.h&gt;�and�&lt;valgrind/drd.h&gt;�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-&gt;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-&gt;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-&gt;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�&lt;title&gt;&lt;/title&gt;�elements�<br>
2717232793��==�202315<br>
2718235642��[PATCH]�syswrap-linux.c:�support�evdev�EVIOCG*�ioctls�<br>
2719236546��vex�x86-&gt;IR:�0x66�0xF�0x3A�0xA<br>
2720237202��vex�amd64-&gt;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-&gt;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�&lt;preamble&gt;�not�escape�the�<br>
2752��������xml�char,�eg�'&lt;','&amp;','&gt;'<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-&gt;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�&lt;valgrind/valgrind.h&gt;).�An�alternative�for�these�two�macros�is<br>
3070����the�new�client�request�VG_USERREQ__DRD_CLEAN_MEMORY�(defined�in<br>
3071����&lt;valgrind/drd.h&gt;).<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)/&lt;platform&gt;/libmpiwrap.so�to<br>
3175������$(INSTALL)/libmpiwrap-&lt;platform&gt;.so.<br>
3176<br>
3177����*�For�people�who�distribute�standalone�Valgrind�tools,�the<br>
3178������installed�libraries�such�as�$(INSTALL)/&lt;platform&gt;/libcoregrind.a<br>
3179������have�moved�to�$(INSTALL)/libcoregrind-&lt;platform&gt;.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-&gt;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&gt;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-&gt;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-&gt;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-&gt;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-&gt;sg[p-&gt;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-&gt;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�&amp;&amp;�--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-&gt;IR:�0x82�...<br>
3550��172563��amd64-&gt;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-&gt;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-&gt;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">&lt;&lt;�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�&gt;&gt;</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