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]->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->IR:�0xF�0xAE�(FXRSTOR)<br> 60158525��==126389<br> 61152818��vex�x86->IR:�0xF3�0xAC�(repz�lodsb)�<br> 62153196��vex�x86->IR:�0xF2�0xA6�(repnz�cmpsb)�<br> 63155011��vex�x86->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->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�--<pid><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=<hexnum>�and<br> 204��--free-fill=<hexnum>�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->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->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->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->curr_space�>=�-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->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->curr_space�>=�-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�>�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->IR:�0x27�0x66�0x89�0x45�(daa)�<br> 291��152818��vex�x86->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=<patt>�limit�debuginfo�tracing�to�obj�name�<patt><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?->IR:�some�kind�of�VMX�prefetch�(dstt)<br> 352129968���amd64->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->IR:�0xD7�0x8A�0xE0�0xD0�(xlat)<br> 362125959���==135012<br> 363126147���x86->IR:�0xF2�0xA5�0xF�0x77�(repne�movsw)<br> 364136650���amd64->IR:�0xC2�0x8�0x0<br> 365135421���x86->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�>=�4.1<br> 384137493���x86->IR:�recent�binutils�no-ops<br> 385137714���x86->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->IR:�mfspr�268/269�instructions�not�handled<br> 392n-i-bz���ppc32->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->IR:�fisttp�(SSE3)<br> 437117172���FUTEX_WAKE�does�not�use�uaddr2<br> 438124039���Lacks�support�for�VKI_[GP]IO_UNIMAP*<br> 439127521���amd64->IR:�0xF0�0x48�0xF�0xC7�(cmpxchg8b)<br> 440128917���amd64->IR:�0x66�0xF�0xF6�0xC4�(psadbw,SSE2)<br> 441129246���JJ:�ppc32/ppc64�syscalls,�w/�patch<br> 442129358���x86->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->IR:�unhandled�instruction�"pushfq"<br> 448131481:��(HINT_NOP)�vex�x86->IR:�0xF�0x1F�0x0�0xF<br> 449131298���==131481<br> 450132146���Programs�with�long�sequences�of�bswap[l,q]s<br> 451132918���vex�amd64->IR:�0xD9�0xF8�(fprem)<br> 452132813���Assertion�at�priv/guest-x86/toIR.c:652�fails<br> 453133051���'cfsi->len�>�0�&&�cfsi->len�<�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->IR:�0x48�0xF�0xC5�0xC0�(pextrw?)<br> 465133694���aspacem�assertion:�aspacem_minAddr�<=�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?->IR:�some�kind�of�VMX�prefetch�(dstt)<br> 480129968���amd64->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��-->�MAKE_MEM_NOACCESS<br> 610����MAKE_WRITABLE��-->�MAKE_MEM_UNDEFINED<br> 611����MAKE_READABLE��-->�MAKE_MEM_DEFINED<br> 612<br> 613����CHECK_WRITABLE�-->�CHECK_MEM_IS_ADDRESSABLE<br> 614����CHECK_READABLE�-->�CHECK_MEM_IS_DEFINED<br> 615����CHECK_DEFINED��-->�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->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->IR:�0xF�0xE�0x48�0x85�(femms)<br> 651124528���FATAL:�aspacem�assertion�failed:�segment_is_sane<br> 652124697���vex�x86->IR:�0xF�0x70�0xC9�0x0�(pshufw)<br> 653124892���vex�x86->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->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->IR:�0x66�0xF�0xA3�0x2�(btw�etc)<br> 663125651���amd64->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->IR:�popw�mem<br> 668126583���amd64->IR:�0x48�0xF�0xA4�0xC2�(shld�$1,%rax,%rdx)<br> 669126668���amd64->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.<pid>"�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->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->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->IR:�(pmaddwd):�0x66�0xF�0xF5�0xC7<br> 862114366��vex�amd64�cannnot�handle�__asm__(�"fninit"�)<br> 863114412��vex�amd64->IR:�0xF�0xAD�0xC2�0xD3�(128-bit�shift,�shrdq?)<br> 864114455��vex�amd64->IR:�0xF�0xAC�0xD0�0x1�(also�shrdq)<br> 865115590:�amd64->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->IR:�0x41�0xF�0xAB�(more�BT{,S,R,C}�fun�n�games)<br> 874111748��vex�amd64->IR:�0xDD�0xE2�(fucom)<br> 875111785��make�fails�if�CC�contains�spaces<br> 876111829��vex�x86->IR:�sbb�AL,�Ib<br> 877111851��vex�x86->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->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->IR:�fucomp�(0xDD�0xE9)<br> 890114196��vex�x86->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�>�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�<unique>�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->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->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->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->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->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->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�&�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�&�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->size�>�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->sigqueue_head�!=�tst->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�&�((1�<<�12)-1...<br> 1282101173� Assertion�`recDepth�>=�0�&&�recDepth�<�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->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�>�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��-->��--log-fd<br> 1494��--logfile�����-->��--log-file<br> 1495��--logsocket���-->��--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(<reserved�fd>)�<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�=>�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->size�>�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->size�==�4�||�u_in->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&)<br> 1746��operator�new[](unsigned,�std::nothrow_t�const&)<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=<number>.<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�>=�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�>=�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�>=�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�>=�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"><<�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�>></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