1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4<title>3.�OLDER 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.news.html" title="2.�NEWS">
10<link rel="next" href="dist.readme.html" title="4.�README">
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.news.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.readme.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.old"></a>3.�OLDER NEWS</h1></div></div></div>
23<div class="literallayout"><p><br>
24������Release�3.3.1�(4�June�2008)<br>
25~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
263.3.1�fixes�a�bunch�of�bugs�in�3.3.0,�adds�support�for�glibc-2.8�based<br>
27systems�(openSUSE�11,�Fedora�Core�9),�improves�the�existing�glibc-2.7<br>
28support,�and�adds�support�for�the�SSSE3�(Core�2)�instruction�set.<br>
29<br>
303.3.1�will�likely�be�the�last�release�that�supports�some�very�old<br>
31systems.��In�particular,�the�next�major�release,�3.4.0,�will�drop<br>
32support�for�the�old�LinuxThreads�threading�library,�and�for�gcc<br>
33versions�prior�to�3.0.<br>
34<br>
35The�fixed�bugs�are�as�follows.��Note�that�"n-i-bz"�stands�for�"not�in<br>
36bugzilla"�--�that�is,�a�bug�that�was�reported�to�us�but�never�got�a<br>
37bugzilla�entry.��We�encourage�you�to�file�bugs�in�bugzilla<br>
38(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than�mailing�the<br>
39developers�(or�mailing�lists)�directly�--�bugs�that�are�not�entered<br>
40into�bugzilla�tend�to�get�forgotten�about�or�ignored.<br>
41<br>
42n-i-bz��Massif�segfaults�at�exit<br>
43n-i-bz��Memcheck�asserts�on�Altivec�code<br>
44n-i-bz��fix�sizeof�bug�in�Helgrind<br>
45n-i-bz��check�fd�on�sys_llseek<br>
46n-i-bz��update�syscall�lists�to�kernel�2.6.23.1<br>
47n-i-bz��support�sys_sync_file_range<br>
48n-i-bz��handle�sys_sysinfo,�sys_getresuid,�sys_getresgid�on�ppc64-linux<br>
49n-i-bz��intercept�memcpy�in�64-bit�ld.so's<br>
50n-i-bz��Fix�wrappers�for�sys_{futimesat,utimensat}<br>
51n-i-bz��Minor�false-error�avoidance�fixes�for�Memcheck<br>
52n-i-bz��libmpiwrap.c:�add�a�wrapper�for�MPI_Waitany<br>
53n-i-bz��helgrind�support�for�glibc-2.8<br>
54n-i-bz��partial�fix�for�mc_leakcheck.c:698�assert:<br>
55��������'lc_shadows[i]-&gt;data�+�lc_shadows[i]�...<br>
56n-i-bz��Massif/Cachegrind�output�corruption�when�programs�fork<br>
57n-i-bz��register�allocator�fix:�handle�spill�stores�correctly<br>
58n-i-bz��add�support�for�PA6T�PowerPC�CPUs<br>
59126389��vex�x86-&gt;IR:�0xF�0xAE�(FXRSTOR)<br>
60158525��==126389<br>
61152818��vex�x86-&gt;IR:�0xF3�0xAC�(repz�lodsb)�<br>
62153196��vex�x86-&gt;IR:�0xF2�0xA6�(repnz�cmpsb)�<br>
63155011��vex�x86-&gt;IR:�0xCF�(iret)<br>
64155091��Warning�[...]�unhandled�DW_OP_�opcode�0x23<br>
65156960��==155901<br>
66155528��support�Core2/SSSE3�insns�on�x86/amd64<br>
67155929��ms_print�fails�on�massif�outputs�containing�long�lines<br>
68157665��valgrind�fails�on�shmdt(0)�after�shmat�to�0<br>
69157748��support�x86�PUSHFW/POPFW<br>
70158212��helgrind:�handle�pthread_rwlock_try{rd,wr}lock.<br>
71158425��sys_poll�incorrectly�emulated�when�RES==0<br>
72158744��vex�amd64-&gt;IR:�0xF0�0x41�0xF�0xC0�(xaddb)<br>
73160907��Support�for�a�couple�of�recent�Linux�syscalls<br>
74161285��Patch�--�support�for�eventfd()�syscall<br>
75161378��illegal�opcode�in�debug�libm�(FUCOMPP)<br>
76160136��==161378<br>
77161487��number�of�suppressions�files�is�limited�to�10<br>
78162386��ms_print�typo�in�milliseconds�time�unit�for�massif<br>
79161036��exp-drd:�client�allocated�memory�was�never�freed<br>
80162663��signalfd_wrapper�fails�on�64bit�linux<br>
81<br>
82(3.3.1.RC1:��2�June�2008,�vex�r1854,�valgrind�r8169).<br>
83(3.3.1:������4�June�2008,�vex�r1854,�valgrind�r8180).<br>
84<br>
85<br>
86<br>
87Release�3.3.0�(7�December�2007)<br>
88~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
893.3.0�is�a�feature�release�with�many�significant�improvements�and�the<br>
90usual�collection�of�bug�fixes.��This�release�supports�X86/Linux,<br>
91AMD64/Linux,�PPC32/Linux�and�PPC64/Linux.��Support�for�recent�distros<br>
92(using�gcc�4.3,�glibc�2.6�and�2.7)�has�been�added.<br>
93<br>
94The�main�excitement�in�3.3.0�is�new�and�improved�tools.��Helgrind<br>
95works�again,�Massif�has�been�completely�overhauled�and�much�improved,<br>
96Cachegrind�now�does�branch-misprediction�profiling,�and�a�new�category<br>
97of�experimental�tools�has�been�created,�containing�two�new�tools:<br>
98Omega�and�DRD.��There�are�many�other�smaller�improvements.��In�detail:<br>
99<br>
100-�Helgrind�has�been�completely�overhauled�and�works�for�the�first�time<br>
101��since�Valgrind�2.2.0.��Supported�functionality�is:�detection�of<br>
102��misuses�of�the�POSIX�PThreads�API,�detection�of�potential�deadlocks<br>
103��resulting�from�cyclic�lock�dependencies,�and�detection�of�data<br>
104��races.��Compared�to�the�2.2.0�Helgrind,�the�race�detection�algorithm<br>
105��has�some�significant�improvements�aimed�at�reducing�the�false�error<br>
106��rate.��Handling�of�various�kinds�of�corner�cases�has�been�improved.<br>
107��Efforts�have�been�made�to�make�the�error�messages�easier�to<br>
108��understand.��Extensive�documentation�is�provided.<br>
109<br>
110-�Massif�has�been�completely�overhauled.��Instead�of�measuring<br>
111��space-time�usage�--�which�wasn't�always�useful�and�many�people�found<br>
112��confusing�--�it�now�measures�space�usage�at�various�points�in�the<br>
113��execution,�including�the�point�of�peak�memory�allocation.��Its<br>
114��output�format�has�also�changed:�instead�of�producing�PostScript<br>
115��graphs�and�HTML�text,�it�produces�a�single�text�output�(via�the�new<br>
116��'ms_print'�script)�that�contains�both�a�graph�and�the�old�textual<br>
117��information,�but�in�a�more�compact�and�readable�form.��Finally,�the<br>
118��new�version�should�be�more�reliable�than�the�old�one,�as�it�has�been<br>
119��tested�more�thoroughly.<br>
120<br>
121-�Cachegrind�has�been�extended�to�do�branch-misprediction�profiling.<br>
122��Both�conditional�and�indirect�branches�are�profiled.��The�default<br>
123��behaviour�of�Cachegrind�is�unchanged.��To�use�the�new�functionality,<br>
124��give�the�option�--branch-sim=yes.<br>
125<br>
126-�A�new�category�of�"experimental�tools"�has�been�created.��Such�tools<br>
127��may�not�work�as�well�as�the�standard�tools,�but�are�included�because<br>
128��some�people�will�find�them�useful,�and�because�exposure�to�a�wider<br>
129��user�group�provides�tool�authors�with�more�end-user�feedback.��These<br>
130��tools�have�a�"exp-"�prefix�attached�to�their�names�to�indicate�their<br>
131��experimental�nature.��Currently�there�are�two�experimental�tools:<br>
132<br>
133��*�exp-Omega:�an�instantaneous�leak�detector.��See<br>
134����exp-omega/docs/omega_introduction.txt.<br>
135<br>
136��*�exp-DRD:�a�data�race�detector�based�on�the�happens-before<br>
137����relation.��See�exp-drd/docs/README.txt.<br>
138<br>
139-�Scalability�improvements�for�very�large�programs,�particularly�those<br>
140��which�have�a�million�or�more�malloc'd�blocks�in�use�at�once.��These<br>
141��improvements�mostly�affect�Memcheck.��Memcheck�is�also�up�to�10%<br>
142��faster�for�all�programs,�with�x86-linux�seeing�the�largest<br>
143��improvement.<br>
144<br>
145-�Works�well�on�the�latest�Linux�distros.��Has�been�tested�on�Fedora<br>
146��Core�8�(x86,�amd64,�ppc32,�ppc64)�and�openSUSE�10.3.��glibc�2.6�and<br>
147��2.7�are�supported.��gcc-4.3�(in�its�current�pre-release�state)�is<br>
148��supported.��At�the�same�time,�3.3.0�retains�support�for�older<br>
149��distros.<br>
150<br>
151-�The�documentation�has�been�modestly�reorganised�with�the�aim�of<br>
152��making�it�easier�to�find�information�on�common-usage�scenarios.<br>
153��Some�advanced�material�has�been�moved�into�a�new�chapter�in�the�main<br>
154��manual,�so�as�to�unclutter�the�main�flow,�and�other�tidying�up�has<br>
155��been�done.<br>
156<br>
157-�There�is�experimental�support�for�AIX�5.3,�both�32-bit�and�64-bit<br>
158��processes.��You�need�to�be�running�a�64-bit�kernel�to�use�Valgrind<br>
159��on�a�64-bit�executable.<br>
160<br>
161-�There�have�been�some�changes�to�command�line�options,�which�may<br>
162��affect�you:<br>
163<br>
164��*�--log-file-exactly�and�<br>
165����--log-file-qualifier�options�have�been�removed.<br>
166<br>
167����To�make�up�for�this�--log-file�option�has�been�made�more�powerful.<br>
168����It�now�accepts�a�%p�format�specifier,�which�is�replaced�with�the<br>
169����process�ID,�and�a�%q{FOO}�format�specifier,�which�is�replaced�with<br>
170����the�contents�of�the�environment�variable�FOO.<br>
171<br>
172��*�--child-silent-after-fork=yes|no�[no]<br>
173<br>
174����Causes�Valgrind�to�not�show�any�debugging�or�logging�output�for<br>
175����the�child�process�resulting�from�a�fork()�call.��This�can�make�the<br>
176����output�less�confusing�(although�more�misleading)�when�dealing�with<br>
177����processes�that�create�children.<br>
178<br>
179��*�--cachegrind-out-file,�--callgrind-out-file�and�--massif-out-file<br>
180<br>
181����These�control�the�names�of�the�output�files�produced�by<br>
182����Cachegrind,�Callgrind�and�Massif.��They�accept�the�same�%p�and�%q<br>
183����format�specifiers�that�--log-file�accepts.��--callgrind-out-file<br>
184����replaces�Callgrind's�old�--base�option.<br>
185<br>
186��*�Cachegrind's�'cg_annotate'�script�no�longer�uses�the�--&lt;pid&gt;<br>
187����option�to�specify�the�output�file.��Instead,�the�first�non-option<br>
188����argument�is�taken�to�be�the�name�of�the�output�file,�and�any<br>
189����subsequent�non-option�arguments�are�taken�to�be�the�names�of<br>
190����source�files�to�be�annotated.<br>
191<br>
192��*�Cachegrind�and�Callgrind�now�use�directory�names�where�possible�in<br>
193����their�output�files.��This�means�that�the�-I�option�to<br>
194����'cg_annotate'�and�'callgrind_annotate'�should�not�be�needed�in<br>
195����most�cases.��It�also�means�they�can�correctly�handle�the�case<br>
196����where�two�source�files�in�different�directories�have�the�same<br>
197����name.<br>
198<br>
199-�Memcheck�offers�a�new�suppression�kind:�"Jump".��This�is�for<br>
200��suppressing�jump-to-invalid-address�errors.��Previously�you�had�to<br>
201��use�an�"Addr1"�suppression,�which�didn't�make�much�sense.<br>
202<br>
203-�Memcheck�has�new�flags�--malloc-fill=&lt;hexnum&gt;�and<br>
204��--free-fill=&lt;hexnum&gt;�which�free�malloc'd�/�free'd�areas�with�the<br>
205��specified�byte.��This�can�help�shake�out�obscure�memory�corruption<br>
206��problems.��The�definedness�and�addressability�of�these�areas�is<br>
207��unchanged�--�only�the�contents�are�affected.<br>
208<br>
209-�The�behaviour�of�Memcheck's�client�requests�VALGRIND_GET_VBITS�and<br>
210��VALGRIND_SET_VBITS�have�changed�slightly.��They�no�longer�issue<br>
211��addressability�errors�--�if�either�array�is�partially�unaddressable,<br>
212��they�just�return�3�(as�before).��Also,�SET_VBITS�doesn't�report<br>
213��definedness�errors�if�any�of�the�V�bits�are�undefined.<br>
214<br>
215-�The�following�Memcheck�client�requests�have�been�removed:<br>
216����VALGRIND_MAKE_NOACCESS<br>
217����VALGRIND_MAKE_WRITABLE<br>
218����VALGRIND_MAKE_READABLE<br>
219����VALGRIND_CHECK_WRITABLE<br>
220����VALGRIND_CHECK_READABLE<br>
221����VALGRIND_CHECK_DEFINED<br>
222��They�were�deprecated�in�3.2.0,�when�equivalent�but�better-named�client<br>
223��requests�were�added.��See�the�3.2.0�release�notes�for�more�details.<br>
224<br>
225-�The�behaviour�of�the�tool�Lackey�has�changed�slightly.��First,�the�output<br>
226��from�--trace-mem�has�been�made�more�compact,�to�reduce�the�size�of�the<br>
227��traces.��Second,�a�new�option�--trace-superblocks�has�been�added,�which<br>
228��shows�the�addresses�of�superblocks�(code�blocks)�as�they�are�executed.<br>
229<br>
230-�The�following�bugs�have�been�fixed.��Note�that�"n-i-bz"�stands�for<br>
231��"not�in�bugzilla"�--�that�is,�a�bug�that�was�reported�to�us�but<br>
232��never�got�a�bugzilla�entry.��We�encourage�you�to�file�bugs�in<br>
233��bugzilla�(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than<br>
234��mailing�the�developers�(or�mailing�lists)�directly.<br>
235<br>
236��n-i-bz��x86_linux_REDIR_FOR_index()�broken<br>
237��n-i-bz��guest-amd64/toIR.c:2512�(dis_op2_E_G):�Assertion�`0'�failed.<br>
238��n-i-bz��Support�x86�INT�insn�(INT�(0xCD)�0x40�-�0x43)<br>
239��n-i-bz��Add�sys_utimensat�system�call�for�Linux�x86�platform<br>
240���79844��Helgrind�complains�about�race�condition�which�does�not�exist<br>
241���82871��Massif�output�function�names�too�short<br>
242���89061��Massif:�ms_main.c:485�(get_XCon):�Assertion�`xpt-&gt;max_chi...'<br>
243���92615��Write�output�from�Massif�at�crash<br>
244���95483��massif�feature�request:�include�peak�allocation�in�report<br>
245��112163��MASSIF�crashed�with�signal�7�(SIGBUS)�after�running�2�days<br>
246��119404��problems�running�setuid�executables�(partial�fix)<br>
247��121629��add�instruction-counting�mode�for�timing<br>
248��127371��java�vm�giving�unhandled�instruction�bytes:�0x26�0x2E�0x64�0x65<br>
249��129937��==150380<br>
250��129576��Massif�loses�track�of�memory,�incorrect�graphs<br>
251��132132��massif�--format=html�output�does�not�do�html�entity�escaping<br>
252��132950��Heap�alloc/usage�summary<br>
253��133962��unhandled�instruction�bytes:�0xF2�0x4C�0xF�0x10<br>
254��134990��use�-fno-stack-protector�if�possible<br>
255��136382��==134990<br>
256��137396��I�would�really�like�helgrind�to�work�again...<br>
257��137714��x86/amd64-&gt;IR:�0x66�0xF�0xF7�0xC6�(maskmovq,�maskmovdq)<br>
258��141631��Massif:�percentages�don't�add�up�correctly<br>
259��142706��massif�numbers�don't�seem�to�add�up<br>
260��143062��massif�crashes�on�app�exit�with�signal�8�SIGFPE<br>
261��144453��(get_XCon):�Assertion�'xpt-&gt;max_children�!=�0'�failed.<br>
262��145559��valgrind�aborts�when�malloc_stats�is�called<br>
263��145609��valgrind�aborts�all�runs�with�'repeated�section!'<br>
264��145622��--db-attach�broken�again�on�x86-64<br>
265��145837��==149519<br>
266��145887��PPC32:�getitimer()�system�call�is�not�supported<br>
267��146252��==150678<br>
268��146456��(update_XCon):�Assertion�'xpt-&gt;curr_space�&gt;=�-space_delta'...<br>
269��146701��==134990<br>
270��146781��Adding�support�for�private�futexes<br>
271��147325��valgrind�internal�error�on�syscall�(SYS_io_destroy,�0)<br>
272��147498��amd64-&gt;IR:�0xF0�0xF�0xB0�0xF�(lock�cmpxchg�%cl,(%rdi))<br>
273��147545��Memcheck:�mc_main.c:817�(get_sec_vbits8):�Assertion�'n'�failed.<br>
274��147628��SALC�opcode�0xd6�unimplemented<br>
275��147825��crash�on�amd64-linux�with�gcc�4.2�and�glibc�2.6�(CFI)<br>
276��148174��Incorrect�type�of�freed_list_volume�causes�assertion�[...]<br>
277��148447��x86_64�:�new�NOP�codes:�66�66�66�66�2e�0f�1f<br>
278��149182��PPC�Trap�instructions�not�implemented�in�valgrind<br>
279��149504��Assertion�hit�on�alloc_xpt-&gt;curr_space�&gt;=�-space_delta<br>
280��149519��ppc32:�V�aborts�with�SIGSEGV�on�execution�of�a�signal�handler<br>
281��149892��==137714<br>
282��150044��SEGV�during�stack�deregister<br>
283��150380��dwarf/gcc�interoperation�(dwarf3�read�problems)<br>
284��150408��==148447<br>
285��150678��guest-amd64/toIR.c:3741�(dis_Grp5):�Assertion�`sz�==�4'�failed<br>
286��151209��V�unable�to�execute�programs�for�users�with�UID�&gt;�2^16<br>
287��151938��help�on�--db-command=�misleading<br>
288��152022��subw�$0x28,�%%sp�causes�assertion�failure�in�memcheck<br>
289��152357��inb�and�outb�not�recognized�in�64-bit�mode<br>
290��152501��vex�x86-&gt;IR:�0x27�0x66�0x89�0x45�(daa)�<br>
291��152818��vex�x86-&gt;IR:�0xF3�0xAC�0xFC�0x9C�(rep�lodsb)<br>
292<br>
293Developer-visible�changes:<br>
294<br>
295-�The�names�of�some�functions�and�types�within�the�Vex�IR�have<br>
296��changed.��Run�'svn�log�-r1689�VEX/pub/libvex_ir.h'�for�full�details.<br>
297��Any�existing�standalone�tools�will�have�to�be�updated�to�reflect<br>
298��these�changes.��The�new�names�should�be�clearer.��The�file<br>
299��VEX/pub/libvex_ir.h�is�also�much�better�commented.<br>
300<br>
301-�A�number�of�new�debugging�command�line�options�have�been�added.<br>
302��These�are�mostly�of�use�for�debugging�the�symbol�table�and�line<br>
303��number�readers:<br>
304<br>
305��--trace-symtab-patt=&lt;patt&gt;�limit�debuginfo�tracing�to�obj�name�&lt;patt&gt;<br>
306��--trace-cfi=no|yes��������show�call-frame-info�details?�[no]<br>
307��--debug-dump=syms���������mimic�/usr/bin/readelf�--syms<br>
308��--debug-dump=line���������mimic�/usr/bin/readelf�--debug-dump=line<br>
309��--debug-dump=frames�������mimic�/usr/bin/readelf�--debug-dump=frames<br>
310��--sym-offsets=yes|no������show�syms�in�form�'name+offset'�?�[no]<br>
311<br>
312-�Internally,�the�code�base�has�been�further�factorised�and<br>
313��abstractified,�particularly�with�respect�to�support�for�non-Linux<br>
314��OSs.<br>
315<br>
316(3.3.0.RC1:��2�Dec�2007,�vex�r1803,�valgrind�r7268).<br>
317(3.3.0.RC2:��5�Dec�2007,�vex�r1804,�valgrind�r7282).<br>
318(3.3.0.RC3:��9�Dec�2007,�vex�r1804,�valgrind�r7288).<br>
319(3.3.0:�����10�Dec�2007,�vex�r1804,�valgrind�r7290).<br>
320<br>
321<br>
322<br>
323Release�3.2.3�(29�Jan�2007)<br>
324~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
325Unfortunately�3.2.2�introduced�a�regression�which�can�cause�an<br>
326assertion�failure�("vex:�the�`impossible'�happened:�eqIRConst")�when<br>
327running�obscure�pieces�of�SSE�code.��3.2.3�fixes�this�and�adds�one<br>
328more�glibc-2.5�intercept.��In�all�other�respects�it�is�identical�to<br>
3293.2.2.��Please�do�not�use�(or�package)�3.2.2;�instead�use�3.2.3.<br>
330<br>
331n-i-bz���vex:�the�`impossible'�happened:�eqIRConst<br>
332n-i-bz���Add�an�intercept�for�glibc-2.5�__stpcpy_chk<br>
333<br>
334(3.2.3:�29�Jan�2007,�vex�r1732,�valgrind�r6560).<br>
335<br>
336<br>
337Release�3.2.2�(22�Jan�2007)<br>
338~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
3393.2.2�fixes�a�bunch�of�bugs�in�3.2.1,�adds�support�for�glibc-2.5�based<br>
340systems�(openSUSE�10.2,�Fedora�Core�6),�improves�support�for�icc-9.X<br>
341compiled�code,�and�brings�modest�performance�improvements�in�some<br>
342areas,�including�amd64�floating�point,�powerpc�support,�and�startup<br>
343responsiveness�on�all�targets.<br>
344<br>
345The�fixed�bugs�are�as�follows.��Note�that�"n-i-bz"�stands�for�"not�in<br>
346bugzilla"�--�that�is,�a�bug�that�was�reported�to�us�but�never�got�a<br>
347bugzilla�entry.��We�encourage�you�to�file�bugs�in�bugzilla<br>
348(http://bugs.kde.org/enter_valgrind_bug.cgi)�rather�than�mailing�the<br>
349developers�(or�mailing�lists)�directly.<br>
350<br>
351129390���ppc?-&gt;IR:�some�kind�of�VMX�prefetch�(dstt)<br>
352129968���amd64-&gt;IR:�0xF�0xAE�0x0�(fxsave)<br>
353134319���==129968<br>
354133054���'make�install'�fails�with�syntax�errors<br>
355118903���==133054<br>
356132998���startup�fails�in�when�running�on�UML<br>
357134207���pkg-config�output�contains�@VG_PLATFORM@<br>
358134727���valgrind�exits�with�"Value�too�large�for�defined�data�type"<br>
359n-i-bz���ppc32/64:�support�mcrfs<br>
360n-i-bz���Cachegrind/Callgrind:�Update�cache�parameter�detection<br>
361135012���x86-&gt;IR:�0xD7�0x8A�0xE0�0xD0�(xlat)<br>
362125959���==135012<br>
363126147���x86-&gt;IR:�0xF2�0xA5�0xF�0x77�(repne�movsw)<br>
364136650���amd64-&gt;IR:�0xC2�0x8�0x0<br>
365135421���x86-&gt;IR:�unhandled�Grp5(R)�case�6<br>
366n-i-bz���Improved�documentation�of�the�IR�intermediate�representation<br>
367n-i-bz���jcxz�(x86)�(users�list,�8�Nov)<br>
368n-i-bz���ExeContext�hashing�fix<br>
369n-i-bz���fix�CFI�reading�failures�("Dwarf�CFI�0:24�0:32�0:48�0:7")<br>
370n-i-bz���fix�Cachegrind/Callgrind�simulation�bug<br>
371n-i-bz���libmpiwrap.c:�fix�handling�of�MPI_LONG_DOUBLE<br>
372n-i-bz���make�User�errors�suppressible<br>
373136844���corrupted�malloc�line�when�using�--gen-suppressions=yes<br>
374138507���==136844<br>
375n-i-bz���Speed�up�the�JIT's�register�allocator<br>
376n-i-bz���Fix�confusing�leak-checker�flag�hints<br>
377n-i-bz���Support�recent�autoswamp�versions<br>
378n-i-bz���ppc32/64�dispatcher�speedups<br>
379n-i-bz���ppc64�front�end�rld/rlw�improvements<br>
380n-i-bz���ppc64�back�end�imm64�improvements<br>
381136300���support�64K�pages�on�ppc64-linux<br>
382139124���==�136300<br>
383n-i-bz���fix�ppc�insn�set�tests�for�gcc�&gt;=�4.1<br>
384137493���x86-&gt;IR:�recent�binutils�no-ops<br>
385137714���x86-&gt;IR:�0x66�0xF�0xF7�0xC6�(maskmovdqu)<br>
386138424���"failed�in�UME�with�error�22"�(produce�a�better�error�msg)<br>
387138856���==138424<br>
388138627���Enhancement�support�for�prctl�ioctls<br>
389138896���Add�support�for�usb�ioctls<br>
390136059���==138896<br>
391139050���ppc32-&gt;IR:�mfspr�268/269�instructions�not�handled<br>
392n-i-bz���ppc32-&gt;IR:�lvxl/stvxl<br>
393n-i-bz���glibc-2.5�support<br>
394n-i-bz���memcheck:�provide�replacement�for�mempcpy<br>
395n-i-bz���memcheck:�replace�bcmp�in�ld.so<br>
396n-i-bz���Use�'ifndef'�in�VEX's�Makefile�correctly<br>
397n-i-bz���Suppressions�for�MVL�4.0.1�on�ppc32-linux<br>
398n-i-bz���libmpiwrap.c:�Fixes�for�MPICH<br>
399n-i-bz���More�robust�handling�of�hinted�client�mmaps<br>
400139776���Invalid�read�in�unaligned�memcpy�with�Intel�compiler�v9<br>
401n-i-bz���Generate�valid�XML�even�for�very�long�fn�names<br>
402n-i-bz���Don't�prompt�about�suppressions�for�unshown�reachable�leaks<br>
403139910���amd64�rcl�is�not�supported<br>
404n-i-bz���DWARF�CFI�reader:�handle�DW_CFA_undefined<br>
405n-i-bz���DWARF�CFI�reader:�handle�icc9�generated�CFI�info�better<br>
406n-i-bz���fix�false�uninit-value�errs�in�icc9�generated�FP�code<br>
407n-i-bz���reduce�extraneous�frames�in�libmpiwrap.c<br>
408n-i-bz���support�pselect6�on�amd64-linux<br>
409<br>
410(3.2.2:�22�Jan�2007,�vex�r1729,�valgrind�r6545).<br>
411<br>
412<br>
413Release�3.2.1�(16�Sept�2006)<br>
414~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
4153.2.1�adds�x86/amd64�support�for�all�SSE3�instructions�except�monitor<br>
416and�mwait,�further�reduces�memcheck's�false�error�rate�on�all<br>
417platforms,�adds�support�for�recent�binutils�(in�OpenSUSE�10.2�and<br>
418Fedora�Rawhide)�and�fixes�a�bunch�of�bugs�in�3.2.0.��Some�of�the�fixed<br>
419bugs�were�causing�large�programs�to�segfault�with�--tool=callgrind�and<br>
420--tool=cachegrind,�so�an�upgrade�is�recommended.<br>
421<br>
422In�view�of�the�fact�that�any�3.3.0�release�is�unlikely�to�happen�until<br>
423well�into�1Q07,�we�intend�to�keep�the�3.2.X�line�alive�for�a�while<br>
424yet,�and�so�we�tentatively�plan�a�3.2.2�release�sometime�in�December<br>
42506.<br>
426<br>
427The�fixed�bugs�are�as�follows.��Note�that�"n-i-bz"�stands�for�"not�in<br>
428bugzilla"�--�that�is,�a�bug�that�was�reported�to�us�but�never�got�a<br>
429bugzilla�entry.<br>
430<br>
431n-i-bz���Expanding�brk()�into�last�available�page�asserts<br>
432n-i-bz���ppc64-linux�stack�RZ�fast-case�snafu<br>
433n-i-bz���'c'�in�--gen-supps=yes�doesn't�work<br>
434n-i-bz���VG_N_SEGMENTS�too�low�(users,�28�June)<br>
435n-i-bz���VG_N_SEGNAMES�too�low�(Stu�Robinson)<br>
436106852���x86-&gt;IR:�fisttp�(SSE3)<br>
437117172���FUTEX_WAKE�does�not�use�uaddr2<br>
438124039���Lacks�support�for�VKI_[GP]IO_UNIMAP*<br>
439127521���amd64-&gt;IR:�0xF0�0x48�0xF�0xC7�(cmpxchg8b)<br>
440128917���amd64-&gt;IR:�0x66�0xF�0xF6�0xC4�(psadbw,SSE2)<br>
441129246���JJ:�ppc32/ppc64�syscalls,�w/�patch<br>
442129358���x86-&gt;IR:�fisttpl�(SSE3)<br>
443129866���cachegrind/callgrind�causes�executable�to�die<br>
444130020���Can't�stat�.so/.exe�error�while�reading�symbols<br>
445130388���Valgrind�aborts�when�process�calls�malloc_trim()<br>
446130638���PATCH:�ppc32�missing�system�calls<br>
447130785���amd64-&gt;IR:�unhandled�instruction�"pushfq"<br>
448131481:��(HINT_NOP)�vex�x86-&gt;IR:�0xF�0x1F�0x0�0xF<br>
449131298���==131481<br>
450132146���Programs�with�long�sequences�of�bswap[l,q]s<br>
451132918���vex�amd64-&gt;IR:�0xD9�0xF8�(fprem)<br>
452132813���Assertion�at�priv/guest-x86/toIR.c:652�fails<br>
453133051���'cfsi-&gt;len�&gt;�0�&amp;&amp;�cfsi-&gt;len�&lt;�2000000'�failed<br>
454132722���valgrind�header�files�are�not�standard�C<br>
455n-i-bz���Livelocks�entire�machine�(users�list,�Timothy�Terriberry)<br>
456n-i-bz���Alex�Bennee�mmap�problem�(9�Aug)<br>
457n-i-bz���BartV:�Don't�print�more�lines�of�a�stack-trace�than�were�obtained.<br>
458n-i-bz���ppc32�SuSE�10.1�redir<br>
459n-i-bz���amd64�padding�suppressions<br>
460n-i-bz���amd64�insn�printing�fix.<br>
461n-i-bz���ppc�cmp�reg,reg�fix<br>
462n-i-bz���x86/amd64�iropt�e/rflag�reduction�rules<br>
463n-i-bz���SuSE�10.1�(ppc32)�minor�fixes<br>
464133678���amd64-&gt;IR:�0x48�0xF�0xC5�0xC0�(pextrw?)<br>
465133694���aspacem�assertion:�aspacem_minAddr�&lt;=�holeStart<br>
466n-i-bz���callgrind:�fix�warning�about�malformed�creator�line�<br>
467n-i-bz���callgrind:�fix�annotate�script�for�data�produced�with�<br>
468���������--dump-instr=yes<br>
469n-i-bz���callgrind:�fix�failed�assertion�when�toggling�<br>
470���������instrumentation�mode<br>
471n-i-bz���callgrind:�fix�annotate�script�fix�warnings�with<br>
472���������--collect-jumps=yes<br>
473n-i-bz���docs�path�hardwired�(Dennis�Lubert)<br>
474<br>
475The�following�bugs�were�not�fixed,�due�primarily�to�lack�of�developer<br>
476time,�and�also�because�bug�reporters�did�not�answer�requests�for<br>
477feedback�in�time�for�the�release:<br>
478<br>
479129390���ppc?-&gt;IR:�some�kind�of�VMX�prefetch�(dstt)<br>
480129968���amd64-&gt;IR:�0xF�0xAE�0x0�(fxsave)<br>
481133054���'make�install'�fails�with�syntax�errors<br>
482n-i-bz���Signal�race�condition�(users�list,�13�June,�Johannes�Berg)<br>
483n-i-bz���Unrecognised�instruction�at�address�0x70198EC2�(users�list,<br>
484���������19�July,�Bennee)<br>
485132998���startup�fails�in�when�running�on�UML<br>
486<br>
487The�following�bug�was�tentatively�fixed�on�the�mainline�but�the�fix<br>
488was�considered�too�risky�to�push�into�3.2.X:<br>
489<br>
490133154���crash�when�using�client�requests�to�register/deregister�stack<br>
491<br>
492(3.2.1:�16�Sept�2006,�vex�r1658,�valgrind�r6070).<br>
493<br>
494<br>
495Release�3.2.0�(7�June�2006)<br>
496~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
4973.2.0�is�a�feature�release�with�many�significant�improvements�and�the<br>
498usual�collection�of�bug�fixes.��This�release�supports�X86/Linux,<br>
499AMD64/Linux,�PPC32/Linux�and�PPC64/Linux.<br>
500<br>
501Performance,�especially�of�Memcheck,�is�improved,�Addrcheck�has�been<br>
502removed,�Callgrind�has�been�added,�PPC64/Linux�support�has�been�added,<br>
503Lackey�has�been�improved,�and�MPI�support�has�been�added.��In�detail:<br>
504<br>
505-�Memcheck�has�improved�speed�and�reduced�memory�use.��Run�times�are<br>
506��typically�reduced�by�15-30%,�averaging�about�24%�for�SPEC�CPU2000.<br>
507��The�other�tools�have�smaller�but�noticeable�speed�improvements.��We<br>
508��are�interested�to�hear�what�improvements�users�get.<br>
509<br>
510��Memcheck�uses�less�memory�due�to�the�introduction�of�a�compressed<br>
511��representation�for�shadow�memory.��The�space�overhead�has�been<br>
512��reduced�by�a�factor�of�up�to�four,�depending�on�program�behaviour.<br>
513��This�means�you�should�be�able�to�run�programs�that�use�more�memory<br>
514��than�before�without�hitting�problems.<br>
515<br>
516-�Addrcheck�has�been�removed.��It�has�not�worked�since�version�2.4.0,<br>
517��and�the�speed�and�memory�improvements�to�Memcheck�make�it�redundant.<br>
518��If�you�liked�using�Addrcheck�because�it�didn't�give�undefined�value<br>
519��errors,�you�can�use�the�new�Memcheck�option�--undef-value-errors=no<br>
520��to�get�the�same�behaviour.<br>
521<br>
522-�The�number�of�undefined-value�errors�incorrectly�reported�by<br>
523��Memcheck�has�been�reduced�(such�false�reports�were�already�very<br>
524��rare).��In�particular,�efforts�have�been�made�to�ensure�Memcheck<br>
525��works�really�well�with�gcc�4.0/4.1-generated�code�on�X86/Linux�and<br>
526��AMD64/Linux.<br>
527<br>
528-�Josef�Weidendorfer's�popular�Callgrind�tool�has�been�added.��Folding<br>
529��it�in�was�a�logical�step�given�its�popularity�and�usefulness,�and<br>
530��makes�it�easier�for�us�to�ensure�it�works�"out�of�the�box"�on�all<br>
531��supported�targets.��The�associated�KDE�KCachegrind�GUI�remains�a<br>
532��separate�project.<br>
533<br>
534-�A�new�release�of�the�Valkyrie�GUI�for�Memcheck,�version�1.2.0,<br>
535��accompanies�this�release.��Improvements�over�previous�releases<br>
536��include�improved�robustness,�many�refinements�to�the�user�interface,<br>
537��and�use�of�a�standard�autoconf/automake�build�system.��You�can�get<br>
538��it�from�http://www.valgrind.org/downloads/guis.html.<br>
539<br>
540-�Valgrind�now�works�on�PPC64/Linux.��As�with�the�AMD64/Linux�port,<br>
541��this�supports�programs�using�to�32G�of�address�space.��On�64-bit<br>
542��capable�PPC64/Linux�setups,�you�get�a�dual�architecture�build�so<br>
543��that�both�32-bit�and�64-bit�executables�can�be�run.��Linux�on�POWER5<br>
544��is�supported,�and�POWER4�is�also�believed�to�work.��Both�32-bit�and<br>
545��64-bit�DWARF2�is�supported.��This�port�is�known�to�work�well�with<br>
546��both�gcc-compiled�and�xlc/xlf-compiled�code.<br>
547<br>
548-�Floating�point�accuracy�has�been�improved�for�PPC32/Linux.<br>
549��Specifically,�the�floating�point�rounding�mode�is�observed�on�all�FP<br>
550��arithmetic�operations,�and�multiply-accumulate�instructions�are<br>
551��preserved�by�the�compilation�pipeline.��This�means�you�should�get�FP<br>
552��results�which�are�bit-for-bit�identical�to�a�native�run.��These<br>
553��improvements�are�also�present�in�the�PPC64/Linux�port.<br>
554<br>
555-�Lackey,�the�example�tool,�has�been�improved:<br>
556<br>
557��*�It�has�a�new�option�--detailed-counts�(off�by�default)�which<br>
558����causes�it�to�print�out�a�count�of�loads,�stores�and�ALU�operations<br>
559����done,�and�their�sizes.<br>
560<br>
561��*�It�has�a�new�option�--trace-mem�(off�by�default)�which�causes�it<br>
562����to�print�out�a�trace�of�all�memory�accesses�performed�by�a<br>
563����program.��It's�a�good�starting�point�for�building�Valgrind�tools<br>
564����that�need�to�track�memory�accesses.��Read�the�comments�at�the�top<br>
565����of�the�file�lackey/lk_main.c�for�details.<br>
566<br>
567��*�The�original�instrumentation�(counting�numbers�of�instructions,<br>
568����jumps,�etc)�is�now�controlled�by�a�new�option�--basic-counts.��It<br>
569����is�on�by�default.<br>
570<br>
571-�MPI�support:�partial�support�for�debugging�distributed�applications<br>
572��using�the�MPI�library�specification�has�been�added.��Valgrind�is<br>
573��aware�of�the�memory�state�changes�caused�by�a�subset�of�the�MPI<br>
574��functions,�and�will�carefully�check�data�passed�to�the�(P)MPI_<br>
575��interface.<br>
576<br>
577-�A�new�flag,�--error-exitcode=,�has�been�added.��This�allows�changing<br>
578��the�exit�code�in�runs�where�Valgrind�reported�errors,�which�is<br>
579��useful�when�using�Valgrind�as�part�of�an�automated�test�suite.<br>
580<br>
581-�Various�segfaults�when�reading�old-style�"stabs"�debug�information<br>
582��have�been�fixed.<br>
583<br>
584-�A�simple�performance�evaluation�suite�has�been�added.��See<br>
585��perf/README�and�README_DEVELOPERS�for�details.��There�are<br>
586��various�bells�and�whistles.<br>
587<br>
588-�New�configuration�flags:<br>
589����--enable-only32bit<br>
590����--enable-only64bit<br>
591��By�default,�on�64�bit�platforms�(ppc64-linux,�amd64-linux)�the�build<br>
592��system�will�attempt�to�build�a�Valgrind�which�supports�both�32-bit<br>
593��and�64-bit�executables.��This�may�not�be�what�you�want,�and�you�can<br>
594��override�the�default�behaviour�using�these�flags.<br>
595<br>
596Please�note�that�Helgrind�is�still�not�working.��We�have�made�an<br>
597important�step�towards�making�it�work�again,�however,�with�the<br>
598addition�of�function�wrapping�(see�below).<br>
599<br>
600Other�user-visible�changes:<br>
601<br>
602-�Valgrind�now�has�the�ability�to�intercept�and�wrap�arbitrary<br>
603��functions.��This�is�a�preliminary�step�towards�making�Helgrind�work<br>
604��again,�and�was�required�for�MPI�support.<br>
605<br>
606-�There�are�some�changes�to�Memcheck's�client�requests.��Some�of�them<br>
607��have�changed�names:<br>
608<br>
609����MAKE_NOACCESS��--&gt;�MAKE_MEM_NOACCESS<br>
610����MAKE_WRITABLE��--&gt;�MAKE_MEM_UNDEFINED<br>
611����MAKE_READABLE��--&gt;�MAKE_MEM_DEFINED<br>
612<br>
613����CHECK_WRITABLE�--&gt;�CHECK_MEM_IS_ADDRESSABLE<br>
614����CHECK_READABLE�--&gt;�CHECK_MEM_IS_DEFINED<br>
615����CHECK_DEFINED��--&gt;�CHECK_VALUE_IS_DEFINED<br>
616<br>
617��The�reason�for�the�change�is�that�the�old�names�are�subtly<br>
618��misleading.��The�old�names�will�still�work,�but�they�are�deprecated<br>
619��and�may�be�removed�in�a�future�release.<br>
620<br>
621��We�also�added�a�new�client�request:<br>
622��<br>
623����MAKE_MEM_DEFINED_IF_ADDRESSABLE(a,�len)<br>
624����<br>
625��which�is�like�MAKE_MEM_DEFINED�but�only�affects�a�byte�if�the�byte�is<br>
626��already�addressable.<br>
627<br>
628-�The�way�client�requests�are�encoded�in�the�instruction�stream�has<br>
629��changed.��Unfortunately,�this�means�3.2.0�will�not�honour�client<br>
630��requests�compiled�into�binaries�using�headers�from�earlier�versions<br>
631��of�Valgrind.��We�will�try�to�keep�the�client�request�encodings�more�<br>
632��stable�in�future.<br>
633<br>
634BUGS�FIXED:<br>
635<br>
636108258���NPTL�pthread�cleanup�handlers�not�called�<br>
637117290���valgrind�is�sigKILL'd�on�startup<br>
638117295���==�117290<br>
639118703���m_signals.c:1427�Assertion�'tst-&gt;status�==�VgTs_WaitSys'<br>
640118466���add�%reg,�%reg�generates�incorrect�validity�for�bit�0<br>
641123210���New:�strlen�from�ld-linux�on�amd64<br>
642123244���DWARF2�CFI�reader:�unhandled�CFI�instruction�0:18<br>
643123248���syscalls�in�glibc-2.4:�openat,�fstatat,�symlinkat<br>
644123258���socketcall.recvmsg(msg.msg_iov[i]�points�to�uninit<br>
645123535���mremap(new_addr)�requires�MREMAP_FIXED�in�4th�arg<br>
646123836���small�typo�in�the�doc<br>
647124029���ppc�compile�failed:�`vor'�gcc�3.3.5<br>
648124222���Segfault:�@@don't�know�what�type�':'�is<br>
649124475���ppc32:�crash�(syscall?)�timer_settime()<br>
650124499���amd64-&gt;IR:�0xF�0xE�0x48�0x85�(femms)<br>
651124528���FATAL:�aspacem�assertion�failed:�segment_is_sane<br>
652124697���vex�x86-&gt;IR:�0xF�0x70�0xC9�0x0�(pshufw)<br>
653124892���vex�x86-&gt;IR:�0xF3�0xAE�(REPx�SCASB)<br>
654126216���==�124892<br>
655124808���ppc32:�sys_sched_getaffinity()�not�handled<br>
656n-i-bz���Very�long�stabs�strings�crash�m_debuginfo<br>
657n-i-bz���amd64-&gt;IR:�0x66�0xF�0xF5�(pmaddwd)<br>
658125492���ppc32:�support�a�bunch�more�syscalls<br>
659121617���ppc32/64:�coredumping�gives�assertion�failure<br>
660121814���Coregrind�return�error�as�exitcode�patch<br>
661126517���==�121814<br>
662125607���amd64-&gt;IR:�0x66�0xF�0xA3�0x2�(btw�etc)<br>
663125651���amd64-&gt;IR:�0xF8�0x49�0xFF�0xE3�(clc?)<br>
664126253���x86�movx�is�wrong<br>
665126451���3.2�SVN�doesn't�work�on�ppc32�CPU's�without�FPU<br>
666126217���increase�#�threads<br>
667126243���vex�x86-&gt;IR:�popw�mem<br>
668126583���amd64-&gt;IR:�0x48�0xF�0xA4�0xC2�(shld�$1,%rax,%rdx)<br>
669126668���amd64-&gt;IR:�0x1C�0xFF�(sbb�$0xff,%al)<br>
670126696���support�for�CDROMREADRAW�ioctl�and�CDROMREADTOCENTRY�fix<br>
671126722���assertion:�segment_is_sane�at�m_aspacemgr/aspacemgr.c:1624<br>
672126938���bad�checking�for�syscalls�linkat,�renameat,�symlinkat<br>
673<br>
674(3.2.0RC1:�27�May��2006,�vex�r1626,�valgrind�r5947).<br>
675(3.2.0:�����7�June�2006,�vex�r1628,�valgrind�r5957).<br>
676<br>
677<br>
678Release�3.1.1�(15�March�2006)<br>
679~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
6803.1.1�fixes�a�bunch�of�bugs�reported�in�3.1.0.��There�is�no�new<br>
681functionality.��The�fixed�bugs�are:<br>
682<br>
683(note:�"n-i-bz"�means�"not�in�bugzilla"�--�this�bug�does�not�have<br>
684�a�bugzilla�entry).<br>
685<br>
686n-i-bz���ppc32:�fsub�3,3,3�in�dispatcher�doesn't�clear�NaNs<br>
687n-i-bz���ppc32:�__NR_{set,get}priority<br>
688117332���x86:�missing�line�info�with�icc�8.1<br>
689117366���amd64:�0xDD�0x7C�fnstsw<br>
690118274���==�117366<br>
691117367���amd64:�0xD9�0xF4�fxtract<br>
692117369���amd64:�__NR_getpriority�(140)<br>
693117419���ppc32:�lfsu�f5,�-4(r11)<br>
694117419���ppc32:�fsqrt<br>
695117936���more�stabs�problems�(segfaults�while�reading�debug�info)<br>
696119914���==�117936<br>
697120345���==�117936<br>
698118239���amd64:�0xF�0xAE�0x3F�(clflush)<br>
699118939���vm86old�system�call<br>
700n-i-bz���memcheck/tests/mempool�reads�freed�memory<br>
701n-i-bz���AshleyP's�custom-allocator�assertion<br>
702n-i-bz���Dirk�strict-aliasing�stuff<br>
703n-i-bz���More�space�for�debugger�cmd�line�(Dan�Thaler)<br>
704n-i-bz���Clarified�leak�checker�output�message<br>
705n-i-bz���AshleyP's�--gen-suppressions�output�fix<br>
706n-i-bz���cg_annotate's�--sort�option�broken<br>
707n-i-bz���OSet�64-bit�fastcmp�bug<br>
708n-i-bz���VG_(getgroups)�fix�(Shinichi�Noda)<br>
709n-i-bz���ppc32:�allocate�from�callee-saved�FP/VMX�regs<br>
710n-i-bz���misaligned�path�word-size�bug�in�mc_main.c<br>
711119297���Incorrect�error�message�for�sse�code<br>
712120410���x86:�prefetchw�(0xF�0xD�0x48�0x4)<br>
713120728���TIOCSERGETLSR,�TIOCGICOUNT,�HDIO_GET_DMA�ioctls<br>
714120658���Build�fixes�for�gcc�2.96<br>
715120734���x86:�Support�for�changing�EIP�in�signal�handler<br>
716n-i-bz���memcheck/tests/zeropage�de-looping�fix<br>
717n-i-bz���x86:�fxtract�doesn't�work�reliably<br>
718121662���x86:�lock�xadd�(0xF0�0xF�0xC0�0x2)<br>
719121893���calloc�does�not�always�return�zeroed�memory<br>
720121901���no�support�for�syscall�tkill<br>
721n-i-bz���Suppression�update�for�Debian�unstable<br>
722122067���amd64:�fcmovnu�(0xDB�0xD9)<br>
723n-i-bz���ppc32:�broken�signal�handling�in�cpu�feature�detection<br>
724n-i-bz���ppc32:�rounding�mode�problems�(improved,�partial�fix�only)<br>
725119482���ppc32:�mtfsb1<br>
726n-i-bz���ppc32:�mtocrf/mfocrf<br>
727<br>
728(3.1.1:��15�March�2006,�vex�r1597,�valgrind�r5771).<br>
729<br>
730<br>
731Release�3.1.0�(25�November�2005)<br>
732~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
7333.1.0�is�a�feature�release�with�a�number�of�significant�improvements:<br>
734AMD64�support�is�much�improved,�PPC32�support�is�good�enough�to�be<br>
735usable,�and�the�handling�of�memory�management�and�address�space�is<br>
736much�more�robust.��In�detail:<br>
737<br>
738-�AMD64�support�is�much�improved.��The�64-bit�vs.�32-bit�issues�in<br>
739��3.0.X�have�been�resolved,�and�it�should�"just�work"�now�in�all<br>
740��cases.��On�AMD64�machines�both�64-bit�and�32-bit�versions�of<br>
741��Valgrind�are�built.��The�right�version�will�be�invoked<br>
742��automatically,�even�when�using�--trace-children�and�mixing�execution<br>
743��between�64-bit�and�32-bit�executables.��Also,�many�more�instructions<br>
744��are�supported.<br>
745<br>
746-�PPC32�support�is�now�good�enough�to�be�usable.��It�should�work�with<br>
747��all�tools,�but�please�let�us�know�if�you�have�problems.��Three<br>
748��classes�of�CPUs�are�supported:�integer�only�(no�FP,�no�Altivec),<br>
749��which�covers�embedded�PPC�uses,�integer�and�FP�but�no�Altivec<br>
750��(G3-ish),�and�CPUs�capable�of�Altivec�too�(G4,�G5).<br>
751<br>
752-�Valgrind's�address�space�management�has�been�overhauled.��As�a<br>
753��result,�Valgrind�should�be�much�more�robust�with�programs�that�use<br>
754��large�amounts�of�memory.��There�should�be�many�fewer�"memory<br>
755��exhausted"�messages,�and�debug�symbols�should�be�read�correctly�on<br>
756��large�(eg.�300MB+)�executables.��On�32-bit�machines�the�full�address<br>
757��space�available�to�user�programs�(usually�3GB�or�4GB)�can�be�fully<br>
758��utilised.��On�64-bit�machines�up�to�32GB�of�space�is�usable;�when<br>
759��using�Memcheck�that�means�your�program�can�use�up�to�about�14GB.<br>
760<br>
761��A�side�effect�of�this�change�is�that�Valgrind�is�no�longer�protected<br>
762��against�wild�writes�by�the�client.��This�feature�was�nice�but�relied<br>
763��on�the�x86�segment�registers�and�so�wasn't�portable.<br>
764<br>
765-�Most�users�should�not�notice,�but�as�part�of�the�address�space<br>
766��manager�change,�the�way�Valgrind�is�built�has�been�changed.��Each<br>
767��tool�is�now�built�as�a�statically�linked�stand-alone�executable,<br>
768��rather�than�as�a�shared�object�that�is�dynamically�linked�with�the<br>
769��core.��The�"valgrind"�program�invokes�the�appropriate�tool�depending<br>
770��on�the�--tool�option.��This�slightly�increases�the�amount�of�disk<br>
771��space�used�by�Valgrind,�but�it�greatly�simplified�many�things�and<br>
772��removed�Valgrind's�dependence�on�glibc.<br>
773<br>
774Please�note�that�Addrcheck�and�Helgrind�are�still�not�working.��Work<br>
775is�underway�to�reinstate�them�(or�equivalents).��We�apologise�for�the<br>
776inconvenience.<br>
777<br>
778Other�user-visible�changes:<br>
779<br>
780-�The�--weird-hacks�option�has�been�renamed�--sim-hints.<br>
781<br>
782-�The�--time-stamp�option�no�longer�gives�an�absolute�date�and�time.<br>
783��It�now�prints�the�time�elapsed�since�the�program�began.<br>
784<br>
785-�It�should�build�with�gcc-2.96.<br>
786<br>
787-�Valgrind�can�now�run�itself�(see�README_DEVELOPERS�for�how).<br>
788��This�is�not�much�use�to�you,�but�it�means�the�developers�can�now<br>
789��profile�Valgrind�using�Cachegrind.��As�a�result�a�couple�of<br>
790��performance�bad�cases�have�been�fixed.<br>
791<br>
792-�The�XML�output�format�has�changed�slightly.��See<br>
793��docs/internals/xml-output.txt.<br>
794<br>
795-�Core�dumping�has�been�reinstated�(it�was�disabled�in�3.0.0�and�3.0.1).<br>
796��If�your�program�crashes�while�running�under�Valgrind,�a�core�file�with<br>
797��the�name�"vgcore.&lt;pid&gt;"�will�be�created�(if�your�settings�allow�core<br>
798��file�creation).��Note�that�the�floating�point�information�is�not�all<br>
799��there.��If�Valgrind�itself�crashes,�the�OS�will�create�a�normal�core<br>
800��file.<br>
801<br>
802The�following�are�some�user-visible�changes�that�occurred�in�earlier<br>
803versions�that�may�not�have�been�announced,�or�were�announced�but�not<br>
804widely�noticed.��So�we're�mentioning�them�now.<br>
805<br>
806-�The�--tool�flag�is�optional�once�again;��if�you�omit�it,�Memcheck<br>
807��is�run�by�default.<br>
808<br>
809-�The�--num-callers�flag�now�has�a�default�value�of�12.��It�was<br>
810��previously�4.<br>
811<br>
812-�The�--xml=yes�flag�causes�Valgrind's�output�to�be�produced�in�XML<br>
813��format.��This�is�designed�to�make�it�easy�for�other�programs�to<br>
814��consume�Valgrind's�output.��The�format�is�described�in�the�file<br>
815��docs/internals/xml-format.txt.<br>
816<br>
817-�The�--gen-suppressions�flag�supports�an�"all"�value�that�causes�every<br>
818��suppression�to�be�printed�without�asking.<br>
819<br>
820-�The�--log-file�option�no�longer�puts�"pid"�in�the�filename,�eg.�the<br>
821��old�name�"foo.pid12345"�is�now�"foo.12345".<br>
822<br>
823-�There�are�several�graphical�front-ends�for�Valgrind,�such�as�Valkyrie,<br>
824��Alleyoop�and�Valgui.��See�http://www.valgrind.org/downloads/guis.html<br>
825��for�a�list.<br>
826<br>
827BUGS�FIXED:<br>
828<br>
829109861��amd64�hangs�at�startup<br>
830110301��ditto<br>
831111554��valgrind�crashes�with�Cannot�allocate�memory<br>
832111809��Memcheck�tool�doesn't�start�java<br>
833111901��cross-platform�run�of�cachegrind�fails�on�opteron<br>
834113468��(vgPlain_mprotect_range):�Assertion�'r�!=�-1'�failed.<br>
835�92071��Reading�debugging�info�uses�too�much�memory<br>
836109744��memcheck�loses�track�of�mmap�from�direct�ld-linux.so.2<br>
837110183��tail�of�page�with�_end<br>
838�82301��FV�memory�layout�too�rigid<br>
839�98278��Infinite�recursion�possible�when�allocating�memory<br>
840108994��Valgrind�runs�out�of�memory�due�to�133x�overhead<br>
841115643��valgrind�cannot�allocate�memory<br>
842105974��vg_hashtable.c�static�hash�table<br>
843109323��ppc32:�dispatch.S�uses�Altivec�insn,�which�doesn't�work�on�POWER.�<br>
844109345��ptrace_setregs�not�yet�implemented�for�ppc<br>
845110831��Would�like�to�be�able�to�run�against�both�32�and�64�bit�<br>
846��������binaries�on�AMD64<br>
847110829��==�110831<br>
848111781��compile�of�valgrind-3.0.0�fails�on�my�linux�(gcc�2.X�prob)<br>
849112670��Cachegrind:�cg_main.c:486�(handleOneStatement�...<br>
850112941��vex�x86:�0xD9�0xF4�(fxtract)<br>
851110201��==�112941<br>
852113015��vex�amd64-&gt;IR:�0xE3�0x14�0x48�0x83�(jrcxz)<br>
853113126��Crash�with�binaries�built�with�-gstabs+/-ggdb<br>
854104065��==�113126<br>
855115741��==�113126<br>
856113403��Partial�SSE3�support�on�x86<br>
857113541��vex:�Grp5(x86)�(alt�encoding�inc/dec)�case�1<br>
858113642��valgrind�crashes�when�trying�to�read�debug�information<br>
859113810��vex�x86-&gt;IR:�66�0F�F6�(66�+�PSADBW�==�SSE�PSADBW)<br>
860113796��read()�and�write()�do�not�work�if�buffer�is�in�shared�memory<br>
861113851��vex�x86-&gt;IR:�(pmaddwd):�0x66�0xF�0xF5�0xC7<br>
862114366��vex�amd64�cannnot�handle�__asm__(�"fninit"�)<br>
863114412��vex�amd64-&gt;IR:�0xF�0xAD�0xC2�0xD3�(128-bit�shift,�shrdq?)<br>
864114455��vex�amd64-&gt;IR:�0xF�0xAC�0xD0�0x1�(also�shrdq)<br>
865115590:�amd64-&gt;IR:�0x67�0xE3�0x9�0xEB�(address�size�override)<br>
866115953��valgrind�svn�r5042�does�not�build�with�parallel�make�(-j3)<br>
867116057��maximum�instruction�size�-�VG_MAX_INSTR_SZB�too�small?<br>
868116483��shmat�failes�with�invalid�argument<br>
869102202��valgrind�crashes�when�realloc'ing�until�out�of�memory<br>
870109487��==�102202<br>
871110536��==�102202<br>
872112687��==�102202<br>
873111724��vex�amd64-&gt;IR:�0x41�0xF�0xAB�(more�BT{,S,R,C}�fun�n�games)<br>
874111748��vex�amd64-&gt;IR:�0xDD�0xE2�(fucom)<br>
875111785��make�fails�if�CC�contains�spaces<br>
876111829��vex�x86-&gt;IR:�sbb�AL,�Ib<br>
877111851��vex�x86-&gt;IR:�0x9F�0x89�(lahf/sahf)<br>
878112031��iopl�on�AMD64�and�README_MISSING_SYSCALL_OR_IOCTL�update<br>
879112152��code�generation�for�Xin_MFence�on�x86�with�SSE0�subarch<br>
880112167��==�112152<br>
881112789��==�112152<br>
882112199��naked�ar�tool�is�used�in�vex�makefile<br>
883112501��vex�x86-&gt;IR:�movq�(0xF�0x7F�0xC1�0xF)�(mmx�MOVQ)<br>
884113583��==�112501<br>
885112538��memalign�crash<br>
886113190��Broken�links�in�docs/html/<br>
887113230��Valgrind�sys_pipe�on�x86-64�wrongly�thinks�file�descriptors<br>
888��������should�be�64bit<br>
889113996��vex�amd64-&gt;IR:�fucomp�(0xDD�0xE9)<br>
890114196��vex�x86-&gt;IR:�out�%eax,(%dx)�(0xEF�0xC9�0xC3�0x90)<br>
891114289��Memcheck�fails�to�intercept�malloc�when�used�in�an�uclibc�environment<br>
892114756��mbind�syscall�support<br>
893114757��Valgrind�dies�with�assertion:�Assertion�'noLargerThan�&gt;�0'�failed<br>
894114563��stack�tracking�module�not�informed�when�valgrind�switches�threads<br>
895114564��clone()�and�stacks<br>
896114565��==�114564<br>
897115496��glibc�crashes�trying�to�use�sysinfo�page<br>
898116200��enable�fsetxattr,�fgetxattr,�and�fremovexattr�for�amd64<br>
899<br>
900(3.1.0RC1:�20�November�2005,�vex�r1466,�valgrind�r5224).<br>
901(3.1.0:����26�November�2005,�vex�r1471,�valgrind�r5235).<br>
902<br>
903<br>
904Release�3.0.1�(29�August�2005)<br>
905~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
9063.0.1�fixes�a�bunch�of�bugs�reported�in�3.0.0.��There�is�no�new<br>
907functionality.��Some�of�the�fixed�bugs�are�critical,�so�if�you<br>
908use/distribute�3.0.0,�an�upgrade�to�3.0.1�is�recommended.��The�fixed<br>
909bugs�are:<br>
910<br>
911(note:�"n-i-bz"�means�"not�in�bugzilla"�--�this�bug�does�not�have<br>
912�a�bugzilla�entry).<br>
913<br>
914109313��(==�110505)�x86�cmpxchg8b<br>
915n-i-bz��x86:�track�but�ignore�changes�to�%eflags.AC�(alignment�check)<br>
916110102��dis_op2_E_G(amd64)<br>
917110202��x86�sys_waitpid(#286)<br>
918110203��clock_getres(,0)<br>
919110208��execve�fail�wrong�retval<br>
920110274��SSE1�now�mandatory�for�x86<br>
921110388��amd64�0xDD�0xD1<br>
922110464��amd64�0xDC�0x1D�FCOMP<br>
923110478��amd64�0xF�0xD�PREFETCH<br>
924n-i-bz��XML�&lt;unique&gt;�printing�wrong<br>
925n-i-bz��Dirk�r4359�(amd64�syscalls�from�trunk)<br>
926110591��amd64�and�x86:�rdtsc�not�implemented�properly<br>
927n-i-bz��Nick�r4384�(stub�implementations�of�Addrcheck�and�Helgrind)<br>
928110652��AMD64�valgrind�crashes�on�cwtd�instruction<br>
929110653��AMD64�valgrind�crashes�on�sarb�$0x4,foo(%rip)�instruction<br>
930110656��PATH=/usr/bin::/bin�valgrind�foobar�stats�./fooba<br>
931110657��Small�test�fixes<br>
932110671��vex�x86-&gt;IR:�unhandled�instruction�bytes:�0xF3�0xC3�(rep�ret)<br>
933n-i-bz��Nick�(Cachegrind�should�not�assert�when�it�encounters�a�client<br>
934��������request.)<br>
935110685��amd64-&gt;IR:�unhandled�instruction�bytes:�0xE1�0x56�(loope�Jb)<br>
936110830��configuring�with�--host�fails�to�build�32�bit�on�64�bit�target<br>
937110875��Assertion�when�execve�fails<br>
938n-i-bz��Updates�to�Memcheck�manual<br>
939n-i-bz��Fixed�broken�malloc_usable_size()<br>
940110898��opteron�instructions�missing:�btq�btsq�btrq�bsfq<br>
941110954��x86-&gt;IR:�unhandled�instruction�bytes:�0xE2�0xF6�(loop�Jb)<br>
942n-i-bz��Make�suppressions�work�for�"???"�lines�in�stacktraces.<br>
943111006��bogus�warnings�from�linuxthreads<br>
944111092��x86:�dis_Grp2(Reg):�unhandled�case(x86)�<br>
945111231��sctp_getladdrs()�and�sctp_getpaddrs()�returns�uninitialized<br>
946��������memory<br>
947111102��(comment�#4)���Fixed�64-bit�unclean�"silly�arg"�message<br>
948n-i-bz��vex�x86-&gt;IR:�unhandled�instruction�bytes:�0x14�0x0<br>
949n-i-bz��minor�umount/fcntl�wrapper�fixes<br>
950111090��Internal�Error�running�Massif<br>
951101204��noisy�warning<br>
952111513��Illegal�opcode�for�SSE�instruction�(x86�movups)<br>
953111555��VEX/Makefile:�CC�is�set�to�gcc<br>
954n-i-bz��Fix�XML�bugs�in�FAQ<br>
955<br>
956(3.0.1:�29�August�05,<br>
957��������vex/branches/VEX_3_0_BRANCH�r1367,<br>
958��������valgrind/branches/VALGRIND_3_0_BRANCH�r4574).<br>
959<br>
960<br>
961<br>
962Release�3.0.0�(3�August�2005)<br>
963~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
9643.0.0�is�a�major�overhaul�of�Valgrind.��The�most�significant�user<br>
965visible�change�is�that�Valgrind�now�supports�architectures�other�than<br>
966x86.��The�new�architectures�it�supports�are�AMD64�and�PPC32,�and�the<br>
967infrastructure�is�present�for�other�architectures�to�be�added�later.<br>
968<br>
969AMD64�support�works�well,�but�has�some�shortcomings:<br>
970<br>
971-�It�generally�won't�be�as�solid�as�the�x86�version.��For�example,<br>
972��support�for�more�obscure�instructions�and�system�calls�may�be�missing.<br>
973��We�will�fix�these�as�they�arise.<br>
974<br>
975-�Address�space�may�be�limited;�see�the�point�about<br>
976��position-independent�executables�below.<br>
977<br>
978-�If�Valgrind�is�built�on�an�AMD64�machine,�it�will�only�run�64-bit<br>
979��executables.��If�you�want�to�run�32-bit�x86�executables�under�Valgrind<br>
980��on�an�AMD64,�you�will�need�to�build�Valgrind�on�an�x86�machine�and<br>
981��copy�it�to�the�AMD64�machine.��And�it�probably�won't�work�if�you�do<br>
982��something�tricky�like�exec'ing�a�32-bit�program�from�a�64-bit�program<br>
983��while�using�--trace-children=yes.��We�hope�to�improve�this�situation<br>
984��in�the�future.<br>
985<br>
986The�PPC32�support�is�very�basic.��It�may�not�work�reliably�even�for<br>
987small�programs,�but�it's�a�start.��Many�thanks�to�Paul�Mackerras�for<br>
988his�great�work�that�enabled�this�support.��We�are�working�to�make<br>
989PPC32�usable�as�soon�as�possible.<br>
990<br>
991Other�user-visible�changes:<br>
992<br>
993-�Valgrind�is�no�longer�built�by�default�as�a�position-independent<br>
994��executable�(PIE),�as�this�caused�too�many�problems.<br>
995<br>
996��Without�PIE�enabled,�AMD64�programs�will�only�be�able�to�access�2GB�of<br>
997��address�space.��We�will�fix�this�eventually,�but�not�for�the�moment.<br>
998��<br>
999��Use�--enable-pie�at�configure-time�to�turn�this�on.<br>
1000<br>
1001-�Support�for�programs�that�use�stack-switching�has�been�improved.��Use<br>
1002��the�--max-stackframe�flag�for�simple�cases,�and�the<br>
1003��VALGRIND_STACK_REGISTER,�VALGRIND_STACK_DEREGISTER�and<br>
1004��VALGRIND_STACK_CHANGE�client�requests�for�trickier�cases.<br>
1005<br>
1006-�Support�for�programs�that�use�self-modifying�code�has�been�improved,<br>
1007��in�particular�programs�that�put�temporary�code�fragments�on�the�stack.<br>
1008��This�helps�for�C�programs�compiled�with�GCC�that�use�nested�functions,<br>
1009��and�also�Ada�programs.��This�is�controlled�with�the�--smc-check<br>
1010��flag,�although�the�default�setting�should�work�in�most�cases.<br>
1011<br>
1012-�Output�can�now�be�printed�in�XML�format.��This�should�make�it�easier<br>
1013��for�tools�such�as�GUI�front-ends�and�automated�error-processing<br>
1014��schemes�to�use�Valgrind�output�as�input.��The�--xml�flag�controls�this.<br>
1015��As�part�of�this�change,�ELF�directory�information�is�read�from�executables,<br>
1016��so�absolute�source�file�paths�are�available�if�needed.<br>
1017<br>
1018-�Programs�that�allocate�many�heap�blocks�may�run�faster,�due�to<br>
1019��improvements�in�certain�data�structures.<br>
1020<br>
1021-�Addrcheck�is�currently�not�working.��We�hope�to�get�it�working�again<br>
1022��soon.��Helgrind�is�still�not�working,�as�was�the�case�for�the�2.4.0<br>
1023��release.<br>
1024<br>
1025-�The�JITter�has�been�completely�rewritten,�and�is�now�in�a�separate<br>
1026��library,�called�Vex.��This�enabled�a�lot�of�the�user-visible�changes,<br>
1027��such�as�new�architecture�support.��The�new�JIT�unfortunately�translates<br>
1028��more�slowly�than�the�old�one,�so�programs�may�take�longer�to�start.<br>
1029��We�believe�the�code�quality�is�produces�is�about�the�same,�so�once<br>
1030��started,�programs�should�run�at�about�the�same�speed.��Feedback�about<br>
1031��this�would�be�useful.<br>
1032<br>
1033��On�the�plus�side,�Vex�and�hence�Memcheck�tracks�value�flow�properly<br>
1034��through�floating�point�and�vector�registers,�something�the�2.X�line<br>
1035��could�not�do.��That�means�that�Memcheck�is�much�more�likely�to�be<br>
1036��usably�accurate�on�vectorised�code.<br>
1037<br>
1038-�There�is�a�subtle�change�to�the�way�exiting�of�threaded�programs<br>
1039��is�handled.��In�3.0,�Valgrind's�final�diagnostic�output�(leak�check,<br>
1040��etc)�is�not�printed�until�the�last�thread�exits.��If�the�last�thread<br>
1041��to�exit�was�not�the�original�thread�which�started�the�program,�any<br>
1042��other�process�wait()-ing�on�this�one�to�exit�may�conclude�it�has<br>
1043��finished�before�the�diagnostic�output�is�printed.��This�may�not�be<br>
1044��what�you�expect.��2.X�had�a�different�scheme�which�avoided�this<br>
1045��problem,�but�caused�deadlocks�under�obscure�circumstances,�so�we<br>
1046��are�trying�something�different�for�3.0.<br>
1047<br>
1048-�Small�changes�in�control�log�file�naming�which�make�it�easier�to<br>
1049��use�valgrind�for�debugging�MPI-based�programs.��The�relevant<br>
1050��new�flags�are�--log-file-exactly=�and�--log-file-qualifier=.<br>
1051<br>
1052-�As�part�of�adding�AMD64�support,�DWARF2�CFI-based�stack�unwinding<br>
1053��support�was�added.��In�principle�this�means�Valgrind�can�produce<br>
1054��meaningful�backtraces�on�x86�code�compiled�with�-fomit-frame-pointer<br>
1055��providing�you�also�compile�your�code�with�-fasynchronous-unwind-tables.<br>
1056<br>
1057-�The�documentation�build�system�has�been�completely�redone.<br>
1058��The�documentation�masters�are�now�in�XML�format,�and�from�that<br>
1059��HTML,�PostScript�and�PDF�documentation�is�generated.��As�a�result<br>
1060��the�manual�is�now�available�in�book�form.��Note�that�the<br>
1061��documentation�in�the�source�tarballs�is�pre-built,�so�you�don't�need<br>
1062��any�XML�processing�tools�to�build�Valgrind�from�a�tarball.<br>
1063<br>
1064Changes�that�are�not�user-visible:<br>
1065<br>
1066-�The�code�has�been�massively�overhauled�in�order�to�modularise�it.<br>
1067��As�a�result�we�hope�it�is�easier�to�navigate�and�understand.<br>
1068<br>
1069-�Lots�of�code�has�been�rewritten.<br>
1070<br>
1071BUGS�FIXED:<br>
1072<br>
1073110046��sz�==�4�assertion�failed�<br>
1074109810��vex�amd64-&gt;IR:�unhandled�instruction�bytes:�0xA3�0x4C�0x70�0xD7<br>
1075109802��Add�a�plausible_stack_size�command-line�parameter�?<br>
1076109783��unhandled�ioctl�TIOCMGET�(running�hw�detection�tool�discover)�<br>
1077109780��unhandled�ioctl�BLKSSZGET�(running�fdisk�-l�/dev/hda)<br>
1078109718��vex�x86-&gt;IR:�unhandled�instruction:�ffreep�<br>
1079109429��AMD64�unhandled�syscall:�127�(sigpending)<br>
1080109401��false�positive�uninit�in�strchr�from�ld-linux.so.2<br>
1081109385��"stabs"�parse�failure�<br>
1082109378��amd64:�unhandled�instruction�REP�NOP<br>
1083109376��amd64:�unhandled�instruction�LOOP�Jb�<br>
1084109363��AMD64�unhandled�instruction�bytes�<br>
1085109362��AMD64�unhandled�syscall:�24�(sched_yield)<br>
1086109358��fork()�won't�work�with�valgrind-3.0�SVN<br>
1087109332��amd64�unhandled�instruction:�ADC�Ev,�Gv<br>
1088109314��Bogus�memcheck�report�on�amd64<br>
1089108883��Crash;�vg_memory.c:905�(vgPlain_init_shadow_range):<br>
1090��������Assertion�`vgPlain_defined_init_shadow_page()'�failed.<br>
1091108349��mincore�syscall�parameter�checked�incorrectly�<br>
1092108059��build�infrastructure:�small�update<br>
1093107524��epoll_ctl�event�parameter�checked�on�EPOLL_CTL_DEL<br>
1094107123��Vex�dies�with�unhandled�instructions:�0xD9�0x31�0xF�0xAE<br>
1095106841��auxmap�&amp;�openGL�problems<br>
1096106713��SDL_Init�causes�valgrind�to�exit<br>
1097106352��setcontext�and�makecontext�not�handled�correctly�<br>
1098106293��addresses�beyond�initial�client�stack�allocation�<br>
1099��������not�checked�in�VALGRIND_DO_LEAK_CHECK<br>
1100106283��PIE�client�programs�are�loaded�at�address�0<br>
1101105831��Assertion�`vgPlain_defined_init_shadow_page()'�failed.<br>
1102105039��long�run-times�probably�due�to�memory�manager�<br>
1103104797��valgrind�needs�to�be�aware�of�BLKGETSIZE64<br>
1104103594��unhandled�instruction:�FICOM<br>
1105103320��Valgrind�2.4.0�fails�to�compile�with�gcc�3.4.3�and�-O0<br>
1106103168��potentially�memory�leak�in�coregrind/ume.c�<br>
1107102039��bad�permissions�for�mapped�region�at�address�0xB7C73680<br>
1108101881��weird�assertion�problem<br>
1109101543��Support�fadvise64�syscalls<br>
111075247���x86_64/amd64�support�(the�biggest�"bug"�we�have�ever�fixed)<br>
1111<br>
1112(3.0RC1:�27�July���05,�vex�r1303,�valgrind�r4283).<br>
1113(3.0.0:���3�August�05,�vex�r1313,�valgrind�r4316).<br>
1114<br>
1115<br>
1116<br>
1117Stable�release�2.4.1�(1�August�2005)<br>
1118~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1119(The�notes�for�this�release�have�been�lost.��Sorry!��It�would�have<br>
1120contained�various�bug�fixes�but�no�new�features.)<br>
1121<br>
1122<br>
1123<br>
1124Stable�release�2.4.0�(March�2005)�--�CHANGES�RELATIVE�TO�2.2.0<br>
1125~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
11262.4.0�brings�many�significant�changes�and�bug�fixes.��The�most<br>
1127significant�user-visible�change�is�that�we�no�longer�supply�our�own<br>
1128pthread�implementation.��Instead,�Valgrind�is�finally�capable�of<br>
1129running�the�native�thread�library,�either�LinuxThreads�or�NPTL.<br>
1130<br>
1131This�means�our�libpthread�has�gone,�along�with�the�bugs�associated<br>
1132with�it.��Valgrind�now�supports�the�kernel's�threading�syscalls,�and<br>
1133lets�you�use�your�standard�system�libpthread.��As�a�result:<br>
1134<br>
1135*�There�are�many�fewer�system�dependencies�and�strange�library-related<br>
1136��bugs.��There�is�a�small�performance�improvement,�and�a�large<br>
1137��stability�improvement.<br>
1138<br>
1139*�On�the�downside,�Valgrind�can�no�longer�report�misuses�of�the�POSIX<br>
1140��PThreads�API.��It�also�means�that�Helgrind�currently�does�not�work.<br>
1141��We�hope�to�fix�these�problems�in�a�future�release.<br>
1142<br>
1143Note�that�running�the�native�thread�libraries�does�not�mean�Valgrind<br>
1144is�able�to�provide�genuine�concurrent�execution�on�SMPs.��We�still<br>
1145impose�the�restriction�that�only�one�thread�is�running�at�any�given<br>
1146time.<br>
1147<br>
1148There�are�many�other�significant�changes�too:<br>
1149<br>
1150*�Memcheck�is�(once�again)�the�default�tool.<br>
1151<br>
1152*�The�default�stack�backtrace�is�now�12�call�frames,�rather�than�4.<br>
1153<br>
1154*�Suppressions�can�have�up�to�25�call�frame�matches,�rather�than�4.<br>
1155<br>
1156*�Memcheck�and�Addrcheck�use�less�memory.��Under�some�circumstances,<br>
1157��they�no�longer�allocate�shadow�memory�if�there�are�large�regions�of<br>
1158��memory�with�the�same�A/V�states�-�such�as�an�mmaped�file.<br>
1159<br>
1160*�The�memory-leak�detector�in�Memcheck�and�Addrcheck�has�been<br>
1161��improved.��It�now�reports�more�types�of�memory�leak,�including<br>
1162��leaked�cycles.��When�reporting�leaked�memory,�it�can�distinguish<br>
1163��between�directly�leaked�memory�(memory�with�no�references),�and<br>
1164��indirectly�leaked�memory�(memory�only�referred�to�by�other�leaked<br>
1165��memory).<br>
1166<br>
1167*�Memcheck's�confusion�over�the�effect�of�mprotect()�has�been�fixed:<br>
1168��previously�mprotect�could�erroneously�mark�undefined�data�as<br>
1169��defined.<br>
1170<br>
1171*�Signal�handling�is�much�improved�and�should�be�very�close�to�what<br>
1172��you�get�when�running�natively.��<br>
1173<br>
1174��One�result�of�this�is�that�Valgrind�observes�changes�to�sigcontexts<br>
1175��passed�to�signal�handlers.��Such�modifications�will�take�effect�when<br>
1176��the�signal�returns.��You�will�need�to�run�with�--single-step=yes�to<br>
1177��make�this�useful.<br>
1178<br>
1179*�Valgrind�is�built�in�Position�Independent�Executable�(PIE)�format�if<br>
1180��your�toolchain�supports�it.��This�allows�it�to�take�advantage�of�all<br>
1181��the�available�address�space�on�systems�with�4Gbyte�user�address<br>
1182��spaces.<br>
1183<br>
1184*�Valgrind�can�now�run�itself�(requires�PIE�support).<br>
1185<br>
1186*�Syscall�arguments�are�now�checked�for�validity.��Previously�all<br>
1187��memory�used�by�syscalls�was�checked,�but�now�the�actual�values<br>
1188��passed�are�also�checked.<br>
1189<br>
1190*�Syscall�wrappers�are�more�robust�against�bad�addresses�being�passed<br>
1191��to�syscalls:�they�will�fail�with�EFAULT�rather�than�killing�Valgrind<br>
1192��with�SIGSEGV.<br>
1193<br>
1194*�Because�clone()�is�directly�supported,�some�non-pthread�uses�of�it<br>
1195��will�work.��Partial�sharing�(where�some�resources�are�shared,�and<br>
1196��some�are�not)�is�not�supported.<br>
1197<br>
1198*�open()�and�readlink()�on�/proc/self/exe�are�supported.<br>
1199<br>
1200BUGS�FIXED:<br>
1201<br>
120288520���pipe+fork+dup2�kills�the�main�program<br>
120388604�	Valgrind�Aborts�when�using�$VALGRIND_OPTS�and�user�progra...<br>
120488614�	valgrind:�vg_libpthread.c:2323�(read):�Assertion�`read_pt...<br>
120588703�	Stabs�parser�fails�to�handle�";"<br>
120688886�	ioctl�wrappers�for�TIOCMBIS�and�TIOCMBIC<br>
120789032�	valgrind�pthread_cond_timedwait�fails<br>
120889106�	the�'impossible'�happened<br>
120989139�	Missing�sched_setaffinity�&amp;�sched_getaffinity<br>
121089198�	valgrind�lacks�support�for�SIOCSPGRP�and�SIOCGPGRP<br>
121189263�	Missing�ioctl�translations�for�scsi-generic�and�CD�playing<br>
121289440�	tests/deadlock.c�line�endings<br>
121389481�	`impossible'�happened:�EXEC�FAILED<br>
121489663�	valgrind�2.2.0�crash�on�Redhat�7.2<br>
121589792�	Report�pthread_mutex_lock()�deadlocks�instead�of�returnin...<br>
121690111�	statvfs64�gives�invalid�error/warning<br>
121790128�	crash+memory�fault�with�stabs�generated�by�gnat�for�a�run...<br>
121890778�	VALGRIND_CHECK_DEFINED()�not�as�documented�in�memcheck.h<br>
121990834�	cachegrind�crashes�at�end�of�program�without�reporting�re...<br>
122091028�	valgrind:�vg_memory.c:229�(vgPlain_unmap_range):�Assertio...<br>
122191162�	valgrind�crash�while�debugging�drivel�1.2.1<br>
122291199�	Unimplemented�function<br>
122391325�	Signal�routing�does�not�propagate�the�siginfo�structure<br>
122491599�	Assertion�`cv�==�((void�*)0)'<br>
122591604�	rw_lookup�clears�orig�and�sends�the�NULL�value�to�rw_new<br>
122691821�	Small�problems�building�valgrind�with�$top_builddir�ne�$t...<br>
122791844�	signal�11�(SIGSEGV)�at�get_tcb�(libpthread.c:86)�in�corec...<br>
122892264�	UNIMPLEMENTED�FUNCTION:�pthread_condattr_setpshared<br>
122992331�	per-target�flags�necessitate�AM_PROG_CC_C_O<br>
123092420�	valgrind�doesn't�compile�with�linux�2.6.8.1/9<br>
123192513�	Valgrind�2.2.0�generates�some�warning�messages<br>
123292528�	vg_symtab2.c:170�(addLoc):�Assertion�`loc-&gt;size�&gt;�0'�failed.<br>
123393096�	unhandled�ioctl�0x4B3A�and�0x5601<br>
123493117�	Tool�and�core�interface�versions�do�not�match<br>
123593128�	Can't�run�valgrind�--tool=memcheck�because�of�unimplement...<br>
123693174�	Valgrind�can�crash�if�passed�bad�args�to�certain�syscalls<br>
123793309�	Stack�frame�in�new�thread�is�badly�aligned<br>
123893328�	Wrong�types�used�with�sys_sigprocmask()<br>
123993763�	/usr/include/asm/msr.h�is�missing<br>
124093776�	valgrind:�vg_memory.c:508�(vgPlain_find_map_space):�Asser...<br>
124193810�	fcntl()�argument�checking�a�bit�too�strict<br>
124294378�	Assertion�`tst-&gt;sigqueue_head�!=�tst-&gt;sigqueue_tail'�failed.<br>
124394429�	valgrind�2.2.0�segfault�with�mmap64�in�glibc�2.3.3<br>
124494645�	Impossible�happened:�PINSRW�mem<br>
124594953�	valgrind:�the�`impossible'�happened:�SIGSEGV<br>
124695667�	Valgrind�does�not�work�with�any�KDE�app<br>
124796243�	Assertion�'res==0'�failed<br>
124896252�	stage2�loader�of�valgrind�fails�to�allocate�memory<br>
124996520�	All�programs�crashing�at�_dl_start�(in�/lib/ld-2.3.3.so)�...<br>
125096660�	ioctl�CDROMREADTOCENTRY�causes�bogus�warnings<br>
125196747�	After�looping�in�a�segfault�handler,�the�impossible�happens<br>
125296923�	Zero�sized�arrays�crash�valgrind�trace�back�with�SIGFPE<br>
125396948�	valgrind�stops�with�assertion�failure�regarding�mmap2<br>
125496966�	valgrind�fails�when�application�opens�more�than�16�sockets<br>
125597398�	valgrind:�vg_libpthread.c:2667�Assertion�failed<br>
125697407�	valgrind:�vg_mylibc.c:1226�(vgPlain_safe_fd):�Assertion�`...<br>
125797427�	"Warning:�invalid�file�descriptor�-1�in�syscall�close()"�...<br>
125897785�	missing�backtrace<br>
125997792�	build�in�obj�dir�fails�-�autoconf�/�makefile�cleanup<br>
126097880�	pthread_mutex_lock�fails�from�shared�library�(special�ker...<br>
126197975�	program�aborts�without�ang�VG�messages<br>
126298129�	Failed�when�open�and�close�file�230000�times�using�stdio<br>
126398175�	Crashes�when�using�valgrind-2.2.0�with�a�program�using�al...<br>
126498288�	Massif�broken<br>
126598303�	UNIMPLEMENTED�FUNCTION�pthread_condattr_setpshared<br>
126698630�	failed--compilation�missing�warnings.pm,�fails�to�make�he...<br>
126798756�	Cannot�valgrind�signal-heavy�kdrive�X�server<br>
126898966�	valgrinding�the�JVM�fails�with�a�sanity�check�assertion<br>
126999035�	Valgrind�crashes�while�profiling<br>
127099142�	loops�with�message�"Signal�11�being�dropped�from�thread�0...<br>
127199195�	threaded�apps�crash�on�thread�start�(using�QThread::start...<br>
127299348�	Assertion�`vgPlain_lseek(core_fd,�0,�1)�==�phdrs[i].p_off...<br>
127399568�	False�negative�due�to�mishandling�of�mprotect<br>
127499738�	valgrind�memcheck�crashes�on�program�that�uses�sigitimer<br>
127599923�	0-sized�allocations�are�reported�as�leaks<br>
127699949�	program�seg�faults�after�exit()<br>
1277100036�	"newSuperblock's�request�for�1048576�bytes�failed"<br>
1278100116�	valgrind:�(pthread_cond_init):�Assertion�`sizeof(*�cond)�...<br>
1279100486�	memcheck�reports�"valgrind:�the�`impossible'�happened:�V...<br>
1280100833�	second�call�to�"mremap"�fails�with�EINVAL<br>
1281101156�	(vgPlain_find_map_space):�Assertion�`(addr�&amp;�((1�&lt;&lt;�12)-1...<br>
1282101173�	Assertion�`recDepth�&gt;=�0�&amp;&amp;�recDepth�&lt;�500'�failed<br>
1283101291�	creating�threads�in�a�forked�process�fails<br>
1284101313�	valgrind�causes�different�behavior�when�resizing�a�window...<br>
1285101423�	segfault�for�c++�array�of�floats<br>
1286101562�	valgrind�massif�dies�on�SIGINT�even�with�signal�handler�r...<br>
1287<br>
1288<br>
1289Stable�release�2.2.0�(31�August�2004)�--�CHANGES�RELATIVE�TO�2.0.0<br>
1290~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
12912.2.0�brings�nine�months�worth�of�improvements�and�bug�fixes.��We<br>
1292believe�it�to�be�a�worthy�successor�to�2.0.0.��There�are�literally<br>
1293hundreds�of�bug�fixes�and�minor�improvements.��There�are�also�some<br>
1294fairly�major�user-visible�changes:<br>
1295<br>
1296*�A�complete�overhaul�of�handling�of�system�calls�and�signals,�and�<br>
1297��their�interaction�with�threads.��In�general,�the�accuracy�of�the�<br>
1298��system�call,�thread�and�signal�simulations�is�much�improved:<br>
1299<br>
1300��-�Blocking�system�calls�behave�exactly�as�they�do�when�running<br>
1301����natively�(not�on�valgrind).��That�is,�if�a�syscall�blocks�only�the<br>
1302����calling�thread�when�running�natively,�than�it�behaves�the�same�on<br>
1303����valgrind.��No�more�mysterious�hangs�because�V�doesn't�know�that�some<br>
1304����syscall�or�other,�should�block�only�the�calling�thread.<br>
1305<br>
1306��-�Interrupted�syscalls�should�now�give�more�faithful�results.<br>
1307<br>
1308��-�Signal�contexts�in�signal�handlers�are�supported.<br>
1309<br>
1310*�Improvements�to�NPTL�support�to�the�extent�that�V�now�works�<br>
1311��properly�on�NPTL-only�setups.<br>
1312<br>
1313*�Greater�isolation�between�Valgrind�and�the�program�being�run,�so<br>
1314��the�program�is�less�likely�to�inadvertently�kill�Valgrind�by<br>
1315��doing�wild�writes.<br>
1316<br>
1317*�Massif:�a�new�space�profiling�tool.��Try�it!��It's�cool,�and�it'll<br>
1318��tell�you�in�detail�where�and�when�your�C/C++�code�is�allocating�heap.<br>
1319��Draws�pretty�.ps�pictures�of�memory�use�against�time.��A�potentially<br>
1320��powerful�tool�for�making�sense�of�your�program's�space�use.<br>
1321<br>
1322*�File�descriptor�leakage�checks.��When�enabled,�Valgrind�will�print�out<br>
1323��a�list�of�open�file�descriptors�on�exit.<br>
1324<br>
1325*�Improved�SSE2/SSE3�support.<br>
1326<br>
1327*�Time-stamped�output;�use�--time-stamp=yes<br>
1328<br>
1329<br>
1330<br>
1331Stable�release�2.2.0�(31�August�2004)�--�CHANGES�RELATIVE�TO�2.1.2<br>
1332~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
13332.2.0�is�not�much�different�from�2.1.2,�released�seven�weeks�ago.<br>
1334A�number�of�bugs�have�been�fixed,�most�notably�#85658,�which�gave<br>
1335problems�for�quite�a�few�people.��There�have�been�many�internal<br>
1336cleanups,�but�those�are�not�user�visible.<br>
1337<br>
1338The�following�bugs�have�been�fixed�since�2.1.2:<br>
1339<br>
134085658���Assert�in�coregrind/vg_libpthread.c:2326�(open64)�!=<br>
1341��������(void*)0�failed<br>
1342��������This�bug�was�reported�multiple�times,�and�so�the�following<br>
1343��������duplicates�of�it�are�also�fixed:�87620,�85796,�85935,�86065,�<br>
1344��������86919,�86988,�87917,�88156<br>
1345<br>
134680716���Semaphore�mapping�bug�caused�by�unmap�(sem_destroy)<br>
1347��������(Was�fixed�prior�to�2.1.2)<br>
1348<br>
134986987���semctl�and�shmctl�syscalls�family�is�not�handled�properly<br>
1350<br>
135186696���valgrind�2.1.2�+�RH�AS2.1�+�librt<br>
1352<br>
135386730���valgrind�locks�up�at�end�of�run�with�assertion�failure�<br>
1354��������in�__pthread_unwind<br>
1355<br>
135686641���memcheck�doesn't�work�with�Mesa�OpenGL/ATI�on�Suse�9.1<br>
1357��������(also�fixes�74298,�a�duplicate�of�this)<br>
1358<br>
135985947���MMX/SSE�unhandled�instruction�'sfence'<br>
1360<br>
136184978���Wrong�error�"Conditional�jump�or�move�depends�on<br>
1362��������uninitialised�value"�resulting�from�"sbbl�%reg,�%reg"<br>
1363<br>
136486254���ssort()�fails�when�signed�int�return�type�from�comparison�is�<br>
1365��������too�small�to�handle�result�of�unsigned�int�subtraction<br>
1366<br>
136787089���memalign(�4,�xxx)�makes�valgrind�assert<br>
1368<br>
136986407���Add�support�for�low-level�parallel�port�driver�ioctls.<br>
1370<br>
137170587���Add�timestamps�to�Valgrind�output?�(wishlist)<br>
1372<br>
137384937���vg_libpthread.c:2505�(se_remap):�Assertion�`res�==�0'<br>
1374��������(fixed�prior�to�2.1.2)<br>
1375<br>
137686317���cannot�load�libSDL-1.2.so.0�using�valgrind<br>
1377<br>
137886989���memcpy�from�mac_replace_strmem.c�complains�about<br>
1379��������uninitialized�pointers�passed�when�length�to�copy�is�zero<br>
1380<br>
138185811���gnu�pascal�symbol�causes�segmentation�fault;�ok�in�2.0.0<br>
1382<br>
138379138���writing�to�sbrk()'d�memory�causes�segfault<br>
1384<br>
138577369���sched�deadlock�while�signal�received�during�pthread_join<br>
1386��������and�the�joined�thread�exited<br>
1387<br>
138888115���In�signal�handler�for�SIGFPE,��siginfo-&gt;si_addr�is�wrong�<br>
1389��������under�Valgrind<br>
1390<br>
139178765���Massif�crashes�on�app�exit�if�FP�exceptions�are�enabled<br>
1392<br>
1393Additionally�there�are�the�following�changes,�which�are�not�<br>
1394connected�to�any�bug�report�numbers,�AFAICS:<br>
1395<br>
1396*�Fix�scary�bug�causing�mis-identification�of�SSE�stores�vs<br>
1397��loads�and�so�causing�memcheck�to�sometimes�give�nonsense�results<br>
1398��on�SSE�code.<br>
1399<br>
1400*�Add�support�for�the�POSIX�message�queue�system�calls.<br>
1401<br>
1402*�Fix�to�allow�32-bit�Valgrind�to�run�on�AMD64�boxes.��Note:�this�does<br>
1403��NOT�allow�Valgrind�to�work�with�64-bit�executables�-�only�with�32-bit<br>
1404��executables�on�an�AMD64�box.<br>
1405<br>
1406*�At�configure�time,�only�check�whether�linux/mii.h�can�be�processed�<br>
1407��so�that�we�don't�generate�ugly�warnings�by�trying�to�compile�it.<br>
1408<br>
1409*�Add�support�for�POSIX�clocks�and�timers.<br>
1410<br>
1411<br>
1412<br>
1413Developer�(cvs�head)�release�2.1.2�(18�July�2004)<br>
1414~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
14152.1.2�contains�four�months�worth�of�bug�fixes�and�refinements.<br>
1416Although�officially�a�developer�release,�we�believe�it�to�be�stable<br>
1417enough�for�widespread�day-to-day�use.��2.1.2�is�pretty�good,�so�try�it<br>
1418first,�although�there�is�a�chance�it�won't�work.��If�so�then�try�2.0.0<br>
1419and�tell�us�what�went�wrong."��2.1.2�fixes�a�lot�of�problems�present<br>
1420in�2.0.0�and�is�generally�a�much�better�product.<br>
1421<br>
1422Relative�to�2.1.1,�a�large�number�of�minor�problems�with�2.1.1�have<br>
1423been�fixed,�and�so�if�you�use�2.1.1�you�should�try�2.1.2.��Users�of<br>
1424the�last�stable�release,�2.0.0,�might�also�want�to�try�this�release.<br>
1425<br>
1426The�following�bugs,�and�probably�many�more,�have�been�fixed.��These<br>
1427are�listed�at�http://bugs.kde.org.��Reporting�a�bug�for�valgrind�in<br>
1428the�http://bugs.kde.org�is�much�more�likely�to�get�you�a�fix�than<br>
1429mailing�developers�directly,�so�please�continue�to�keep�sending�bugs<br>
1430there.<br>
1431<br>
143276869���Crashes�when�running�any�tool�under�Fedora�Core�2�test1<br>
1433��������This�fixes�the�problem�with�returning�from�a�signal�handler�<br>
1434��������when�VDSOs�are�turned�off�in�FC2.<br>
1435<br>
143669508���java�1.4.2�client�fails�with�erroneous�"stack�size�too�small".<br>
1437��������This�fix�makes�more�of�the�pthread�stack�attribute�related�<br>
1438��������functions�work�properly.��Java�still�doesn't�work�though.<br>
1439<br>
144071906���malloc�alignment�should�be�8,�not�4<br>
1441��������All�memory�returned�by�malloc/new�etc�is�now�at�least<br>
1442��������8-byte�aligned.<br>
1443<br>
144481970���vg_alloc_ThreadState:�no�free�slots�available<br>
1445��������(closed�because�the�workaround�is�simple:�increase<br>
1446���������VG_N_THREADS,�rebuild�and�try�again.)<br>
1447<br>
144878514���Conditional�jump�or�move�depends�on�uninitialized�value(s)<br>
1449��������(a�slight�mishanding�of�FP�code�in�memcheck)<br>
1450<br>
145177952���pThread�Support�(crash)�(due�to�initialisation-ordering�probs)<br>
1452��������(also�85118)<br>
1453<br>
145480942���Addrcheck�wasn't�doing�overlap�checking�as�it�should.<br>
145578048���return�NULL�on�malloc/new�etc�failure,�instead�of�asserting<br>
145673655���operator�new()�override�in�user�.so�files�often�doesn't�get�picked�up<br>
145783060���Valgrind�does�not�handle�native�kernel�AIO<br>
145869872���Create�proper�coredumps�after�fatal�signals<br>
145982026���failure�with�new�glibc�versions:�__libc_*�functions�are�not�exported<br>
146070344���UNIMPLEMENTED�FUNCTION:�tcdrain�<br>
146181297���Cancellation�of�pthread_cond_wait�does�not�require�mutex<br>
146282872���Using�debug�info�from�additional�packages�(wishlist)<br>
146383025���Support�for�ioctls�FIGETBSZ�and�FIBMAP<br>
146483340���Support�for�ioctl�HDIO_GET_IDENTITY<br>
146579714���Support�for�the�semtimedop�system�call.<br>
146677022���Support�for�ioctls�FBIOGET_VSCREENINFO�and�FBIOGET_FSCREENINFO<br>
146782098���hp2ps�ansification�(wishlist)<br>
146883573���Valgrind�SIGSEGV�on�execve<br>
146982999���show�which�cmdline�option�was�erroneous�(wishlist)<br>
147083040���make�valgrind�VPATH�and�distcheck-clean�(wishlist)<br>
147183998���Assertion�`newfd�&gt;�vgPlain_max_fd'�failed�(see�below)<br>
147282722���Unchecked�mmap�in�as_pad�leads�to�mysterious�failures�later<br>
147378958���memcheck�seg�faults�while�running�Mozilla�<br>
147485416���Arguments�with�colon�(e.g.�--logsocket)�ignored<br>
1475<br>
1476<br>
1477Additionally�there�are�the�following�changes,�which�are�not�<br>
1478connected�to�any�bug�report�numbers,�AFAICS:<br>
1479<br>
1480*�Rearranged�address�space�layout�relative�to�2.1.1,�so�that<br>
1481��Valgrind/tools�will�run�out�of�memory�later�than�currently�in�many<br>
1482��circumstances.��This�is�good�news�esp.�for�Calltree.��It�should<br>
1483��be�possible�for�client�programs�to�allocate�over�800MB�of<br>
1484��memory�when�using�memcheck�now.<br>
1485<br>
1486*�Improved�checking�when�laying�out�memory.��Should�hopefully�avoid<br>
1487��the�random�segmentation�faults�that�2.1.1�sometimes�caused.<br>
1488<br>
1489*�Support�for�Fedora�Core�2�and�SuSE�9.1.��Improvements�to�NPTL<br>
1490��support�to�the�extent�that�V�now�works�properly�on�NPTL-only�setups.<br>
1491<br>
1492*�Renamed�the�following�options:<br>
1493��--logfile-fd��--&gt;��--log-fd<br>
1494��--logfile�����--&gt;��--log-file<br>
1495��--logsocket���--&gt;��--log-socket<br>
1496��to�be�consistent�with�each�other�and�other�options�(esp.�--input-fd).<br>
1497<br>
1498*�Add�support�for�SIOCGMIIPHY,�SIOCGMIIREG�and�SIOCSMIIREG�ioctls�and<br>
1499��improve�the�checking�of�other�interface�related�ioctls.<br>
1500<br>
1501*�Fix�building�with�gcc-3.4.1.<br>
1502<br>
1503*�Remove�limit�on�number�of�semaphores�supported.<br>
1504<br>
1505*�Add�support�for�syscalls:�set_tid_address�(258),�acct�(51).<br>
1506<br>
1507*�Support�instruction�"repne�movs"�--�not�official�but�seems�to�occur.<br>
1508<br>
1509*�Implement�an�emulated�soft�limit�for�file�descriptors�in�addition�to<br>
1510��the�current�reserved�area,�which�effectively�acts�as�a�hard�limit.�The<br>
1511��setrlimit�system�call�now�simply�updates�the�emulated�limits�as�best<br>
1512��as�possible�-�the�hard�limit�is�not�allowed�to�move�at�all�and�just<br>
1513��returns�EPERM�if�you�try�and�change�it.��This�should�stop�reductions<br>
1514��in�the�soft�limit�causing�assertions�when�valgrind�tries�to�allocate<br>
1515��descriptors�from�the�reserved�area.<br>
1516��(This�actually�came�from�bug�#83998).<br>
1517<br>
1518*�Major�overhaul�of�Cachegrind�implementation.��First�user-visible�change<br>
1519��is�that�cachegrind.out�files�are�now�typically�90%�smaller�than�they<br>
1520��used�to�be;��code�annotation�times�are�correspondingly�much�smaller.<br>
1521��Second�user-visible�change�is�that�hit/miss�counts�for�code�that�is<br>
1522��unloaded�at�run-time�is�no�longer�dumped�into�a�single�"discard"�pile,<br>
1523��but�accurately�preserved.<br>
1524<br>
1525*�Client�requests�for�telling�valgrind�about�memory�pools.<br>
1526<br>
1527<br>
1528<br>
1529Developer�(cvs�head)�release�2.1.1�(12�March�2004)<br>
1530~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
15312.1.1�contains�some�internal�structural�changes�needed�for�V's<br>
1532long-term�future.��These�don't�affect�end-users.��Most�notable<br>
1533user-visible�changes�are:<br>
1534<br>
1535*�Greater�isolation�between�Valgrind�and�the�program�being�run,�so<br>
1536��the�program�is�less�likely�to�inadvertently�kill�Valgrind�by<br>
1537��doing�wild�writes.<br>
1538<br>
1539*�Massif:�a�new�space�profiling�tool.��Try�it!��It's�cool,�and�it'll<br>
1540��tell�you�in�detail�where�and�when�your�C/C++�code�is�allocating�heap.<br>
1541��Draws�pretty�.ps�pictures�of�memory�use�against�time.��A�potentially<br>
1542��powerful�tool�for�making�sense�of�your�program's�space�use.<br>
1543<br>
1544*�Fixes�for�many�bugs,�including�support�for�more�SSE2/SSE3�instructions,<br>
1545��various�signal/syscall�things,�and�various�problems�with�debug<br>
1546��info�readers.<br>
1547<br>
1548*�Support�for�glibc-2.3.3�based�systems.<br>
1549<br>
1550We�are�now�doing�automatic�overnight�build-and-test�runs�on�a�variety<br>
1551of�distros.��As�a�result,�we�believe�2.1.1�builds�and�runs�on:<br>
1552Red�Hat�7.2,�7.3,�8.0,�9,�Fedora�Core�1,�SuSE�8.2,�SuSE�9.<br>
1553<br>
1554<br>
1555The�following�bugs,�and�probably�many�more,�have�been�fixed.��These<br>
1556are�listed�at�http://bugs.kde.org.��Reporting�a�bug�for�valgrind�in<br>
1557the�http://bugs.kde.org�is�much�more�likely�to�get�you�a�fix�than<br>
1558mailing�developers�directly,�so�please�continue�to�keep�sending�bugs<br>
1559there.<br>
1560<br>
156169616���glibc�2.3.2�w/NPTL�is�massively�different�than�what�valgrind�expects�<br>
156269856���I�don't�know�how�to�instrument�MMXish�stuff�(Helgrind)<br>
156373892���valgrind�segfaults�starting�with�Objective-C�debug�info�<br>
1564��������(fix�for�S-type�stabs)<br>
156573145���Valgrind�complains�too�much�about�close(&lt;reserved�fd&gt;)�<br>
156673902���Shadow�memory�allocation�seems�to�fail�on�RedHat�8.0�<br>
156768633���VG_N_SEMAPHORES�too�low�(V�itself�was�leaking�semaphores)<br>
156875099���impossible�to�trace�multiprocess�programs�<br>
156976839���the�`impossible'�happened:�disInstr:�INT�but�not�0x80�!�<br>
157076762���vg_to_ucode.c:3748�(dis_push_segreg):�Assertion�`sz�==�4'�failed.�<br>
157176747���cannot�include�valgrind.h�in�c++�program�<br>
157276223���parsing�B(3,10)�gave�NULL�type�=&gt;�impossible�happens�<br>
157375604���shmdt�handling�problem�<br>
157476416���Problems�with�gcc�3.4�snap�20040225�<br>
157575614���using�-gstabs�when�building�your�programs�the�`impossible'�happened<br>
157675787���Patch�for�some�CDROM�ioctls�CDORM_GET_MCN,�CDROM_SEND_PACKET,<br>
157775294���gcc�3.4�snapshot's�libstdc++�have�unsupported�instructions.�<br>
1578��������(REP�RET)<br>
157973326���vg_symtab2.c:272�(addScopeRange):�Assertion�`range-&gt;size�&gt;�0'�failed.�<br>
158072596���not�recognizing�__libc_malloc�<br>
158169489���Would�like�to�attach�ddd�to�running�program�<br>
158272781���Cachegrind�crashes�with�kde�programs�<br>
158373055���Illegal�operand�at�DXTCV11CompressBlockSSE2�(more�SSE�opcodes)<br>
158473026���Descriptor�leak�check�reports�port�numbers�wrongly�<br>
158571705���README_MISSING_SYSCALL_OR_IOCTL�out�of�date�<br>
158672643���Improve�support�for�SSE/SSE2�instructions�<br>
158772484���valgrind�leaves�it's�own�signal�mask�in�place�when�execing�<br>
158872650���Signal�Handling�always�seems�to�restart�system�calls�<br>
158972006���The�mmap�system�call�turns�all�errors�in�ENOMEM�<br>
159071781���gdb�attach�is�pretty�useless�<br>
159171180���unhandled�instruction�bytes:�0xF�0xAE�0x85�0xE8�<br>
159269886���writes�to�zero�page�cause�valgrind�to�assert�on�exit�<br>
159371791���crash�when�valgrinding�gimp�1.3�(stabs�reader�problem)<br>
159469783���unhandled�syscall:�218�<br>
159569782���unhandled�instruction�bytes:�0x66�0xF�0x2B�0x80�<br>
159670385���valgrind�fails�if�the�soft�file�descriptor�limit�is�less�<br>
1597��������than�about�828<br>
159869529���"rep;�nop"�should�do�a�yield�<br>
159970827���programs�with�lots�of�shared�libraries�report�"mmap�failed"�<br>
1600��������for�some�of�them�when�reading�symbols�<br>
160171028���glibc's�strnlen�is�optimised�enough�to�confuse�valgrind�<br>
1602<br>
1603<br>
1604<br>
1605<br>
1606Unstable�(cvs�head)�release�2.1.0�(15�December�2003)<br>
1607~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1608For�whatever�it's�worth,�2.1.0�actually�seems�pretty�darn�stable�to�me<br>
1609(Julian).��It�looks�eminently�usable,�and�given�that�it�fixes�some<br>
1610significant�bugs,�may�well�be�worth�using�on�a�day-to-day�basis.<br>
16112.1.0�is�known�to�build�and�pass�regression�tests�on:�SuSE�9,�SuSE<br>
16128.2,�RedHat�8.<br>
1613<br>
16142.1.0�most�notably�includes�Jeremy�Fitzhardinge's�complete�overhaul�of<br>
1615handling�of�system�calls�and�signals,�and�their�interaction�with<br>
1616threads.��In�general,�the�accuracy�of�the�system�call,�thread�and<br>
1617signal�simulations�is�much�improved.��Specifically:<br>
1618<br>
1619-�Blocking�system�calls�behave�exactly�as�they�do�when�running<br>
1620��natively�(not�on�valgrind).��That�is,�if�a�syscall�blocks�only�the<br>
1621��calling�thread�when�running�natively,�than�it�behaves�the�same�on<br>
1622��valgrind.��No�more�mysterious�hangs�because�V�doesn't�know�that�some<br>
1623��syscall�or�other,�should�block�only�the�calling�thread.<br>
1624<br>
1625-�Interrupted�syscalls�should�now�give�more�faithful�results.<br>
1626<br>
1627-�Finally,�signal�contexts�in�signal�handlers�are�supported.��As�a<br>
1628��result,�konqueror�on�SuSE�9�no�longer�segfaults�when�notified�of<br>
1629��file�changes�in�directories�it�is�watching.<br>
1630<br>
1631Other�changes:<br>
1632<br>
1633-�Robert�Walsh's�file�descriptor�leakage�checks.��When�enabled,<br>
1634��Valgrind�will�print�out�a�list�of�open�file�descriptors�on<br>
1635��exit.��Along�with�each�file�descriptor,�Valgrind�prints�out�a�stack<br>
1636��backtrace�of�where�the�file�was�opened�and�any�details�relating�to�the<br>
1637��file�descriptor�such�as�the�file�name�or�socket�details.<br>
1638��To�use,�give:�--track-fds=yes<br>
1639<br>
1640-�Implemented�a�few�more�SSE/SSE2�instructions.<br>
1641<br>
1642-�Less�crud�on�the�stack�when�you�do�'where'�inside�a�GDB�attach.<br>
1643<br>
1644-�Fixed�the�following�bugs:<br>
1645��68360:�Valgrind�does�not�compile�against�2.6.0-testX�kernels<br>
1646��68525:�CVS�head�doesn't�compile�on�C90�compilers<br>
1647��68566:�pkgconfig�support�(wishlist)<br>
1648��68588:�Assertion�`sz�==�4'�failed�in�vg_to_ucode.c�(disInstr)<br>
1649��69140:�valgrind�not�able�to�explicitly�specify�a�path�to�a�binary.�<br>
1650��69432:�helgrind�asserts�encountering�a�MutexErr�when�there�are�<br>
1651���������EraserErr�suppressions<br>
1652<br>
1653-�Increase�the�max�size�of�the�translation�cache�from�200k�average�bbs<br>
1654��to�300k�average�bbs.��Programs�on�the�size�of�OOo�(680m17)�are<br>
1655��thrashing�the�cache�at�the�smaller�size,�creating�large�numbers�of<br>
1656��retranslations�and�wasting�significant�time�as�a�result.<br>
1657<br>
1658<br>
1659<br>
1660Stable�release�2.0.0�(5�Nov�2003)<br>
1661~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1662<br>
16632.0.0�improves�SSE/SSE2�support,�fixes�some�minor�bugs,�and<br>
1664improves�support�for�SuSE�9�and�the�Red�Hat�"Severn"�beta.<br>
1665<br>
1666-�Further�improvements�to�SSE/SSE2�support.��The�entire�test�suite�of<br>
1667��the�GNU�Scientific�Library�(gsl-1.4)�compiled�with�Intel�Icc�7.1<br>
1668��20030307Z�'-g�-O�-xW'�now�works.��I�think�this�gives�pretty�good<br>
1669��coverage�of�SSE/SSE2�floating�point�instructions,�or�at�least�the<br>
1670��subset�emitted�by�Icc.<br>
1671<br>
1672-�Also�added�support�for�the�following�instructions:<br>
1673����MOVNTDQ�UCOMISD�UNPCKLPS�UNPCKHPS�SQRTSS<br>
1674����PUSH/POP�%{FS,GS},�and�PUSH�%CS�(Nb:�there�is�no�POP�%CS).<br>
1675<br>
1676-�CFI�support�for�GDB�version�6.��Needed�to�enable�newer�GDBs<br>
1677��to�figure�out�where�they�are�when�using�--gdb-attach=yes.<br>
1678<br>
1679-�Fix�this:<br>
1680������mc_translate.c:1091�(memcheck_instrument):�Assertion<br>
1681������`u_in-&gt;size�==�4�||�u_in-&gt;size�==�16'�failed.<br>
1682<br>
1683-�Return�an�error�rather�than�panicing�when�given�a�bad�socketcall.<br>
1684<br>
1685-�Fix�checking�of�syscall�rt_sigtimedwait().<br>
1686<br>
1687-�Implement�__NR_clock_gettime�(syscall�265).��Needed�on�Red�Hat�Severn.<br>
1688<br>
1689-�Fixed�bug�in�overlap�check�in�strncpy()�--�it�was�assuming�the�src�was�'n'<br>
1690��bytes�long,�when�it�could�be�shorter,�which�could�cause�false<br>
1691��positives.<br>
1692<br>
1693-�Support�use�of�select()�for�very�large�numbers�of�file�descriptors.<br>
1694<br>
1695-�Don't�fail�silently�if�the�executable�is�statically�linked,�or�is<br>
1696��setuid/setgid.�Print�an�error�message�instead.<br>
1697<br>
1698-�Support�for�old�DWARF-1�format�line�number�info.<br>
1699<br>
1700<br>
1701<br>
1702Snapshot�20031012�(12�October�2003)<br>
1703~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1704<br>
1705Three�months�worth�of�bug�fixes,�roughly.��Most�significant�single<br>
1706change�is�improved�SSE/SSE2�support,�mostly�thanks�to�Dirk�Mueller.<br>
1707<br>
170820031012�builds�on�Red�Hat�Fedora�("Severn")�but�doesn't�really�work<br>
1709(curiously,�mozilla�runs�OK,�but�a�modest�"ls�-l"�bombs).��I�hope�to<br>
1710get�a�working�version�out�soon.��It�may�or�may�not�work�ok�on�the<br>
1711forthcoming�SuSE�9;�I�hear�positive�noises�about�it�but�haven't�been<br>
1712able�to�verify�this�myself�(not�until�I�get�hold�of�a�copy�of�9).<br>
1713<br>
1714A�detailed�list�of�changes,�in�no�particular�order:<br>
1715<br>
1716-�Describe�--gen-suppressions�in�the�FAQ.<br>
1717<br>
1718-�Syscall�__NR_waitpid�supported.<br>
1719<br>
1720-�Minor�MMX�bug�fix.<br>
1721<br>
1722-�-v�prints�program's�argv[]�at�startup.<br>
1723<br>
1724-�More�glibc-2.3�suppressions.<br>
1725<br>
1726-�Suppressions�for�stack�underrun�bug(s)�in�the�c++�support�library<br>
1727��distributed�with�Intel�Icc�7.0.<br>
1728<br>
1729-�Fix�problems�reading�/proc/self/maps.<br>
1730<br>
1731-�Fix�a�couple�of�messages�that�should�have�been�suppressed�by�-q,�<br>
1732��but�weren't.<br>
1733<br>
1734-�Make�Addrcheck�understand�"Overlap"�suppressions.<br>
1735<br>
1736-�At�startup,�check�if�program�is�statically�linked�and�bail�out�if�so.<br>
1737<br>
1738-�Cachegrind:�Auto-detect�Intel�Pentium-M,�also�VIA�Nehemiah<br>
1739<br>
1740-�Memcheck/addrcheck:�minor�speed�optimisations<br>
1741<br>
1742-�Handle�syscall�__NR_brk�more�correctly�than�before.<br>
1743<br>
1744-�Fixed�incorrect�allocate/free�mismatch�errors�when�using<br>
1745��operator�new(unsigned,�std::nothrow_t�const&amp;)<br>
1746��operator�new[](unsigned,�std::nothrow_t�const&amp;)<br>
1747<br>
1748-�Support�POSIX�pthread�spinlocks.<br>
1749<br>
1750-�Fixups�for�clean�compilation�with�gcc-3.3.1.<br>
1751<br>
1752-�Implemented�more�opcodes:�<br>
1753����-�push�%es<br>
1754����-�push�%ds<br>
1755����-�pop�%es<br>
1756����-�pop�%ds<br>
1757����-�movntq<br>
1758����-�sfence<br>
1759����-�pshufw<br>
1760����-�pavgb<br>
1761����-�ucomiss<br>
1762����-�enter<br>
1763����-�mov�imm32,�%esp<br>
1764����-�all�"in"�and�"out"�opcodes<br>
1765����-�inc/dec�%esp<br>
1766����-�A�whole�bunch�of�SSE/SSE2�instructions<br>
1767<br>
1768-�Memcheck:�don't�bomb�on�SSE/SSE2�code.<br>
1769<br>
1770<br>
1771Snapshot�20030725�(25�July�2003)<br>
1772~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1773<br>
1774Fixes�some�minor�problems�in�20030716.<br>
1775<br>
1776-�Fix�bugs�in�overlap�checking�for�strcpy/memcpy�etc.<br>
1777<br>
1778-�Do�overlap�checking�with�Addrcheck�as�well�as�Memcheck.<br>
1779<br>
1780-�Fix�this:<br>
1781������Memcheck:�the�`impossible'�happened:<br>
1782������get_error_name:�unexpected�type<br>
1783<br>
1784-�Install�headers�needed�to�compile�new�skins.<br>
1785<br>
1786-�Remove�leading�spaces�and�colon�in�the�LD_LIBRARY_PATH�/�LD_PRELOAD<br>
1787��passed�to�non-traced�children.<br>
1788<br>
1789-�Fix�file�descriptor�leak�in�valgrind-listener.<br>
1790<br>
1791-�Fix�longstanding�bug�in�which�the�allocation�point�of�a�<br>
1792��block�resized�by�realloc�was�not�correctly�set.��This�may<br>
1793��have�caused�confusing�error�messages.<br>
1794<br>
1795<br>
1796Snapshot�20030716�(16�July�2003)<br>
1797~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1798<br>
179920030716�is�a�snapshot�of�our�current�CVS�head�(development)�branch.<br>
1800This�is�the�branch�which�will�become�valgrind-2.0.��It�contains<br>
1801significant�enhancements�over�the�1.9.X�branch.<br>
1802<br>
1803Despite�this�being�a�snapshot�of�the�CVS�head,�it�is�believed�to�be<br>
1804quite�stable�--�at�least�as�stable�as�1.9.6�or�1.0.4,�if�not�more�so<br>
1805--�and�therefore�suitable�for�widespread�use.��Please�let�us�know�asap<br>
1806if�it�causes�problems�for�you.<br>
1807<br>
1808Two�reasons�for�releasing�a�snapshot�now�are:<br>
1809<br>
1810-�It's�been�a�while�since�1.9.6,�and�this�snapshot�fixes<br>
1811��various�problems�that�1.9.6�has�with�threaded�programs�<br>
1812��on�glibc-2.3.X�based�systems.<br>
1813<br>
1814-�So�as�to�make�available�improvements�in�the�2.0�line.<br>
1815<br>
1816Major�changes�in�20030716,�as�compared�to�1.9.6:<br>
1817<br>
1818-�More�fixes�to�threading�support�on�glibc-2.3.1�and�2.3.2-based<br>
1819��systems�(SuSE�8.2,�Red�Hat�9).��If�you�have�had�problems<br>
1820��with�inconsistent/illogical�behaviour�of�errno,�h_errno�or�the�DNS<br>
1821��resolver�functions�in�threaded�programs,�20030716�should�improve<br>
1822��matters.��This�snapshot�seems�stable�enough�to�run�OpenOffice.org<br>
1823��1.1rc�on�Red�Hat�7.3,�SuSE�8.2�and�Red�Hat�9,�and�that's�a�big<br>
1824��threaded�app�if�ever�I�saw�one.<br>
1825<br>
1826-�Automatic�generation�of�suppression�records;�you�no�longer<br>
1827��need�to�write�them�by�hand.��Use�--gen-suppressions=yes.<br>
1828<br>
1829-�strcpy/memcpy/etc�check�their�arguments�for�overlaps,�when<br>
1830��running�with�the�Memcheck�or�Addrcheck�skins.<br>
1831<br>
1832-�malloc_usable_size()�is�now�supported.<br>
1833<br>
1834-�new�client�requests:<br>
1835����-�VALGRIND_COUNT_ERRORS,�VALGRIND_COUNT_LEAKS:�<br>
1836������useful�with�regression�testing<br>
1837����-�VALGRIND_NON_SIMD_CALL[0123]:�for�running�arbitrary�functions�<br>
1838������on�real�CPU�(use�with�caution!)<br>
1839<br>
1840-�The�GDB�attach�mechanism�is�more�flexible.��Allow�the�GDB�to<br>
1841��be�run�to�be�specified�by�--gdb-path=/path/to/gdb,�and�specify<br>
1842��which�file�descriptor�V�will�read�its�input�from�with<br>
1843��--input-fd=&lt;number&gt;.<br>
1844<br>
1845-�Cachegrind�gives�more�accurate�results�(wasn't�tracking�instructions�in<br>
1846��malloc()�and�friends�previously,�is�now).<br>
1847<br>
1848-�Complete�support�for�the�MMX�instruction�set.<br>
1849<br>
1850-�Partial�support�for�the�SSE�and�SSE2�instruction�sets.��Work�for�this<br>
1851��is�ongoing.��About�half�the�SSE/SSE2�instructions�are�done,�so<br>
1852��some�SSE�based�programs�may�work.��Currently�you�need�to�specify<br>
1853��--skin=addrcheck.��Basically�not�suitable�for�real�use�yet.<br>
1854<br>
1855-�Significant�speedups�(10%-20%)�for�standard�memory�checking.<br>
1856<br>
1857-�Fix�assertion�failure�in�pthread_once().<br>
1858<br>
1859-�Fix�this:<br>
1860����valgrind:�vg_intercept.c:598�(vgAllRoadsLeadToRome_select):�<br>
1861��������������Assertion�`ms_end�&gt;=�ms_now'�failed.<br>
1862<br>
1863-�Implement�pthread_mutexattr_setpshared.<br>
1864<br>
1865-�Understand�Pentium�4�branch�hints.��Also�implemented�a�couple�more<br>
1866��obscure�x86�instructions.<br>
1867<br>
1868-�Lots�of�other�minor�bug�fixes.<br>
1869<br>
1870-�We�have�a�decent�regression�test�system,�for�the�first�time.<br>
1871��This�doesn't�help�you�directly,�but�it�does�make�it�a�lot�easier<br>
1872��for�us�to�track�the�quality�of�the�system,�especially�across<br>
1873��multiple�linux�distributions.��<br>
1874<br>
1875��You�can�run�the�regression�tests�with�'make�regtest'�after�'make<br>
1876��install'�completes.��On�SuSE�8.2�and�Red�Hat�9�I�get�this:<br>
1877�<br>
1878�����==�84�tests,�0�stderr�failures,�0�stdout�failures�==<br>
1879<br>
1880��On�Red�Hat�8,�I�get�this:<br>
1881<br>
1882�����==�84�tests,�2�stderr�failures,�1�stdout�failure�==<br>
1883�����corecheck/tests/res_search���������������(stdout)<br>
1884�����memcheck/tests/sigaltstack���������������(stderr)<br>
1885<br>
1886��sigaltstack�is�probably�harmless.��res_search�doesn't�work<br>
1887��on�R�H�8�even�running�natively,�so�I'm�not�too�worried.���<br>
1888<br>
1889��On�Red�Hat�7.3,�a�glibc-2.2.5�system,�I�get�these�harmless�failures:<br>
1890<br>
1891�����==�84�tests,�2�stderr�failures,�1�stdout�failure�==<br>
1892�����corecheck/tests/pth_atfork1��������������(stdout)<br>
1893�����corecheck/tests/pth_atfork1��������������(stderr)<br>
1894�����memcheck/tests/sigaltstack���������������(stderr)<br>
1895<br>
1896��You�need�to�run�on�a�PII�system,�at�least,�since�some�tests<br>
1897��contain�P6-specific�instructions,�and�the�test�machine�needs<br>
1898��access�to�the�internet�so�that�corecheck/tests/res_search<br>
1899��(a�test�that�the�DNS�resolver�works)�can�function.<br>
1900<br>
1901As�ever,�thanks�for�the�vast�amount�of�feedback�:)�and�bug�reports�:(<br>
1902We�may�not�answer�all�messages,�but�we�do�at�least�look�at�all�of<br>
1903them,�and�tend�to�fix�the�most�frequently�reported�bugs.<br>
1904<br>
1905<br>
1906<br>
1907Version�1.9.6�(7�May�2003�or�thereabouts)<br>
1908~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1909<br>
1910Major�changes�in�1.9.6:<br>
1911<br>
1912-�Improved�threading�support�for�glibc�&gt;=�2.3.2�(SuSE�8.2,<br>
1913��RedHat�9,�to�name�but�two�...)��It�turned�out�that�1.9.5<br>
1914��had�problems�with�threading�support�on�glibc�&gt;=�2.3.2,<br>
1915��usually�manifested�by�threaded�programs�deadlocking�in�system�calls,<br>
1916��or�running�unbelievably�slowly.��Hopefully�these�are�fixed�now.��1.9.6<br>
1917��is�the�first�valgrind�which�gives�reasonable�support�for<br>
1918��glibc-2.3.2.��Also�fixed�a�2.3.2�problem�with�pthread_atfork().<br>
1919<br>
1920-�Majorly�expanded�FAQ.txt.��We've�added�workarounds�for�all<br>
1921��common�problems�for�which�a�workaround�is�known.<br>
1922<br>
1923Minor�changes�in�1.9.6:<br>
1924<br>
1925-�Fix�identification�of�the�main�thread's�stack.��Incorrect<br>
1926��identification�of�it�was�causing�some�on-stack�addresses�to�not�get<br>
1927��identified�as�such.��This�only�affected�the�usefulness�of�some�error<br>
1928��messages;�the�correctness�of�the�checks�made�is�unchanged.<br>
1929<br>
1930-�Support�for�kernels�&gt;=�2.5.68.<br>
1931<br>
1932-�Dummy�implementations�of�__libc_current_sigrtmin,�<br>
1933��__libc_current_sigrtmax�and�__libc_allocate_rtsig,�hopefully<br>
1934��good�enough�to�keep�alive�programs�which�previously�died�for�lack�of<br>
1935��them.<br>
1936<br>
1937-�Fix�bug�in�the�VALGRIND_DISCARD_TRANSLATIONS�client�request.<br>
1938<br>
1939-�Fix�bug�in�the�DWARF2�debug�line�info�loader,�when�instructions�<br>
1940��following�each�other�have�source�lines�far�from�each�other�<br>
1941��(e.g.�with�inlined�functions).<br>
1942<br>
1943-�Debug�info�reading:�read�symbols�from�both�"symtab"�and�"dynsym"<br>
1944��sections,�rather�than�merely�from�the�one�that�comes�last�in�the<br>
1945��file.<br>
1946<br>
1947-�New�syscall�support:�prctl(),�creat(),�lookup_dcookie().<br>
1948<br>
1949-�When�checking�calls�to�accept(),�recvfrom(),�getsocketopt(),<br>
1950��don't�complain�if�buffer�values�are�NULL.<br>
1951<br>
1952-�Try�and�avoid�assertion�failures�in<br>
1953��mash_LD_PRELOAD_and_LD_LIBRARY_PATH.<br>
1954<br>
1955-�Minor�bug�fixes�in�cg_annotate.<br>
1956<br>
1957<br>
1958<br>
1959Version�1.9.5�(7�April�2003)<br>
1960~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
1961<br>
1962It�occurs�to�me�that�it�would�be�helpful�for�valgrind�users�to�record<br>
1963in�the�source�distribution�the�changes�in�each�release.��So�I�now<br>
1964attempt�to�mend�my�errant�ways�:-)��Changes�in�this�and�future�releases<br>
1965will�be�documented�in�the�NEWS�file�in�the�source�distribution.<br>
1966<br>
1967Major�changes�in�1.9.5:<br>
1968<br>
1969-�(Critical�bug�fix):�Fix�a�bug�in�the�FPU�simulation.��This�was<br>
1970��causing�some�floating�point�conditional�tests�not�to�work�right.<br>
1971��Several�people�reported�this.��If�you�had�floating�point�code�which<br>
1972��didn't�work�right�on�1.9.1�to�1.9.4,�it's�worth�trying�1.9.5.<br>
1973<br>
1974-�Partial�support�for�Red�Hat�9.��RH9�uses�the�new�Native�Posix�<br>
1975��Threads�Library�(NPTL),�instead�of�the�older�LinuxThreads.��<br>
1976��This�potentially�causes�problems�with�V�which�will�take�some<br>
1977��time�to�correct.��In�the�meantime�we�have�partially�worked�around<br>
1978��this,�and�so�1.9.5�works�on�RH9.��Threaded�programs�still�work,<br>
1979��but�they�may�deadlock,�because�some�system�calls�(accept,�read,<br>
1980��write,�etc)�which�should�be�nonblocking,�in�fact�do�block.��This<br>
1981��is�a�known�bug�which�we�are�looking�into.<br>
1982<br>
1983��If�you�can,�your�best�bet�(unfortunately)�is�to�avoid�using�<br>
1984��1.9.5�on�a�Red�Hat�9�system,�or�on�any�NPTL-based�distribution.<br>
1985��If�your�glibc�is�2.3.1�or�earlier,�you're�almost�certainly�OK.<br>
1986<br>
1987Minor�changes�in�1.9.5:<br>
1988<br>
1989-�Added�some�#errors�to�valgrind.h�to�ensure�people�don't�include<br>
1990��it�accidentally�in�their�sources.��This�is�a�change�from�1.0.X<br>
1991��which�was�never�properly�documented.��The�right�thing�to�include<br>
1992��is�now�memcheck.h.��Some�people�reported�problems�and�strange<br>
1993��behaviour�when�(incorrectly)�including�valgrind.h�in�code�with�<br>
1994��1.9.1�--�1.9.4.��This�is�no�longer�possible.<br>
1995<br>
1996-�Add�some�__extension__�bits�and�pieces�so�that�gcc�configured<br>
1997��for�valgrind-checking�compiles�even�with�-Werror.��If�you<br>
1998��don't�understand�this,�ignore�it.��Of�interest�to�gcc�developers<br>
1999��only.<br>
2000<br>
2001-�Removed�a�pointless�check�which�caused�problems�interworking�<br>
2002��with�Clearcase.��V�would�complain�about�shared�objects�whose<br>
2003��names�did�not�end�".so",�and�refuse�to�run.��This�is�now�fixed.<br>
2004��In�fact�it�was�fixed�in�1.9.4�but�not�documented.<br>
2005<br>
2006-�Fixed�a�bug�causing�an�assertion�failure�of�"waiters�==�1"<br>
2007��somewhere�in�vg_scheduler.c,�when�running�large�threaded�apps,<br>
2008��notably�MySQL.<br>
2009<br>
2010-�Add�support�for�the�munlock�system�call�(124).<br>
2011<br>
2012Some�comments�about�future�releases:<br>
2013<br>
20141.9.5�is,�we�hope,�the�most�stable�Valgrind�so�far.��It�pretty�much<br>
2015supersedes�the�1.0.X�branch.��If�you�are�a�valgrind�packager,�please<br>
2016consider�making�1.9.5�available�to�your�users.��You�can�regard�the<br>
20171.0.X�branch�as�obsolete:�1.9.5�is�stable�and�vastly�superior.��There<br>
2018are�no�plans�at�all�for�further�releases�of�the�1.0.X�branch.<br>
2019<br>
2020If�you�want�a�leading-edge�valgrind,�consider�building�the�cvs�head<br>
2021(from�SourceForge),�or�getting�a�snapshot�of�it.��Current�cool�stuff<br>
2022going�in�includes�MMX�support�(done);�SSE/SSE2�support�(in�progress),<br>
2023a�significant�(10-20%)�performance�improvement�(done),�and�the�usual<br>
2024large�collection�of�minor�changes.��Hopefully�we�will�be�able�to<br>
2025improve�our�NPTL�support,�but�no�promises.<br>
2026<br>
2027<br>
2028����</p></div>
2029</div>
2030<div>
2031<br><table class="nav" width="100%" cellspacing="3" cellpadding="2" border="0" summary="Navigation footer">
2032<tr>
2033<td rowspan="2" width="40%" align="left">
2034<a accesskey="p" href="dist.news.html">&lt;&lt;�2.�NEWS</a>�</td>
2035<td width="20%" align="center"><a accesskey="u" href="dist.html">Up</a></td>
2036<td rowspan="2" width="40%" align="right">�<a accesskey="n" href="dist.readme.html">4.�README�&gt;&gt;</a>
2037</td>
2038</tr>
2039<tr><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td></tr>
2040</table>
2041</div>
2042</body>
2043</html>
2044