Release3.3.1(4June2008)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.3.1fixesabunchofbugsin3.3.0,addssupportforglibc-2.8based
systems(openSUSE11,FedoraCore9),improvestheexistingglibc-2.7
support,andaddssupportfortheSSSE3(Core2)instructionset.
3.3.1willlikelybethelastreleasethatsupportssomeveryold
systems.Inparticular,thenextmajorrelease,3.4.0,willdrop
supportfortheoldLinuxThreadsthreadinglibrary,andforgcc
versionspriorto3.0.
Thefixedbugsareasfollows.Notethat"n-i-bz"standsfor"notin
bugzilla"--thatis,abugthatwasreportedtousbutnevergota
bugzillaentry.Weencourageyoutofilebugsinbugzilla
(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthanmailingthe
developers(ormailinglists)directly--bugsthatarenotentered
intobugzillatendtogetforgottenaboutorignored.
n-i-bzMassifsegfaultsatexit
n-i-bzMemcheckassertsonAltiveccode
n-i-bzfixsizeofbuginHelgrind
n-i-bzcheckfdonsys_llseek
n-i-bzupdatesyscallliststokernel2.6.23.1
n-i-bzsupportsys_sync_file_range
n-i-bzhandlesys_sysinfo,sys_getresuid,sys_getresgidonppc64-linux
n-i-bzinterceptmemcpyin64-bitld.so's
n-i-bzFixwrappersforsys_{futimesat,utimensat}
n-i-bzMinorfalse-erroravoidancefixesforMemcheck
n-i-bzlibmpiwrap.c:addawrapperforMPI_Waitany
n-i-bzhelgrindsupportforglibc-2.8
n-i-bzpartialfixformc_leakcheck.c:698assert:
'lc_shadows[i]->data+lc_shadows[i]...
n-i-bzMassif/Cachegrindoutputcorruptionwhenprogramsfork
n-i-bzregisterallocatorfix:handlespillstorescorrectly
n-i-bzaddsupportforPA6TPowerPCCPUs
126389vexx86->IR:0xF0xAE(FXRSTOR)
158525==126389
152818vexx86->IR:0xF30xAC(repzlodsb)
153196vexx86->IR:0xF20xA6(repnzcmpsb)
155011vexx86->IR:0xCF(iret)
155091Warning[...]unhandledDW_OP_opcode0x23
156960==155901
155528supportCore2/SSSE3insnsonx86/amd64
155929ms_printfailsonmassifoutputscontaininglonglines
157665valgrindfailsonshmdt(0)aftershmatto0
157748supportx86PUSHFW/POPFW
158212helgrind:handlepthread_rwlock_try{rd,wr}lock.
158425sys_pollincorrectlyemulatedwhenRES==0
158744vexamd64->IR:0xF00x410xF0xC0(xaddb)
160907SupportforacoupleofrecentLinuxsyscalls
161285Patch--supportforeventfd()syscall
161378illegalopcodeindebuglibm(FUCOMPP)
160136==161378
161487numberofsuppressionsfilesislimitedto10
162386ms_printtypoinmillisecondstimeunitformassif
161036exp-drd:clientallocatedmemorywasneverfreed
162663signalfd_wrapperfailson64bitlinux
(3.3.1.RC1:2June2008,vexr1854,valgrindr8169).
(3.3.1:4June2008,vexr1854,valgrindr8180).
Release3.3.0(7December2007)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.3.0isafeaturereleasewithmanysignificantimprovementsandthe
usualcollectionofbugfixes.ThisreleasesupportsX86/Linux,
AMD64/Linux,PPC32/LinuxandPPC64/Linux.Supportforrecentdistros
(usinggcc4.3,glibc2.6and2.7)hasbeenadded.
Themainexcitementin3.3.0isnewandimprovedtools.Helgrind
worksagain,Massifhasbeencompletelyoverhauledandmuchimproved,
Cachegrindnowdoesbranch-mispredictionprofiling,andanewcategory
ofexperimentaltoolshasbeencreated,containingtwonewtools:
OmegaandDRD.Therearemanyothersmallerimprovements.Indetail:
-Helgrindhasbeencompletelyoverhauledandworksforthefirsttime
sinceValgrind2.2.0.Supportedfunctionalityis:detectionof
misusesofthePOSIXPThreadsAPI,detectionofpotentialdeadlocks
resultingfromcycliclockdependencies,anddetectionofdata
races.Comparedtothe2.2.0Helgrind,theracedetectionalgorithm
hassomesignificantimprovementsaimedatreducingthefalseerror
rate.Handlingofvariouskindsofcornercaseshasbeenimproved.
Effortshavebeenmadetomaketheerrormessageseasierto
understand.Extensivedocumentationisprovided.
-Massifhasbeencompletelyoverhauled.Insteadofmeasuring
space-timeusage--whichwasn'talwaysusefulandmanypeoplefound
confusing--itnowmeasuresspaceusageatvariouspointsinthe
execution,includingthepointofpeakmemoryallocation.Its
outputformathasalsochanged:insteadofproducingPostScript
graphsandHTMLtext,itproducesasingletextoutput(viathenew
'ms_print'script)thatcontainsbothagraphandtheoldtextual
information,butinamorecompactandreadableform.Finally,the
newversionshouldbemorereliablethantheoldone,asithasbeen
testedmorethoroughly.
-Cachegrindhasbeenextendedtodobranch-mispredictionprofiling.
Bothconditionalandindirectbranchesareprofiled.Thedefault
behaviourofCachegrindisunchanged.Tousethenewfunctionality,
givetheoption--branch-sim=yes.
-Anewcategoryof"experimentaltools"hasbeencreated.Suchtools
maynotworkaswellasthestandardtools,butareincludedbecause
somepeoplewillfindthemuseful,andbecauseexposuretoawider
usergroupprovidestoolauthorswithmoreend-userfeedback.These
toolshavea"exp-"prefixattachedtotheirnamestoindicatetheir
experimentalnature.Currentlytherearetwoexperimentaltools:
*exp-Omega:aninstantaneousleakdetector.See
exp-omega/docs/omega_introduction.txt.
*exp-DRD:adataracedetectorbasedonthehappens-before
relation.Seeexp-drd/docs/README.txt.
-Scalabilityimprovementsforverylargeprograms,particularlythose
whichhaveamillionormoremalloc'dblocksinuseatonce.These
improvementsmostlyaffectMemcheck.Memcheckisalsoupto10%
fasterforallprograms,withx86-linuxseeingthelargest
improvement.
-WorkswellonthelatestLinuxdistros.HasbeentestedonFedora
Core8(x86,amd64,ppc32,ppc64)andopenSUSE10.3.glibc2.6and
2.7aresupported.gcc-4.3(initscurrentpre-releasestate)is
supported.Atthesametime,3.3.0retainssupportforolder
distros.
-Thedocumentationhasbeenmodestlyreorganisedwiththeaimof
makingiteasiertofindinformationoncommon-usagescenarios.
Someadvancedmaterialhasbeenmovedintoanewchapterinthemain
manual,soastounclutterthemainflow,andothertidyinguphas
beendone.
-ThereisexperimentalsupportforAIX5.3,both32-bitand64-bit
processes.Youneedtoberunninga64-bitkerneltouseValgrind
ona64-bitexecutable.
-Therehavebeensomechangestocommandlineoptions,whichmay
affectyou:
*--log-file-exactlyand
--log-file-qualifieroptionshavebeenremoved.
Tomakeupforthis--log-fileoptionhasbeenmademorepowerful.
Itnowacceptsa%pformatspecifier,whichisreplacedwiththe
processID,anda%q{FOO}formatspecifier,whichisreplacedwith
thecontentsoftheenvironmentvariableFOO.
*--child-silent-after-fork=yes|no[no]
CausesValgrindtonotshowanydebuggingorloggingoutputfor
thechildprocessresultingfromafork()call.Thiscanmakethe
outputlessconfusing(althoughmoremisleading)whendealingwith
processesthatcreatechildren.
*--cachegrind-out-file,--callgrind-out-fileand--massif-out-file
Thesecontrolthenamesoftheoutputfilesproducedby
Cachegrind,CallgrindandMassif.Theyacceptthesame%pand%q
formatspecifiersthat--log-fileaccepts.--callgrind-out-file
replacesCallgrind'sold--baseoption.
*Cachegrind's'cg_annotate'scriptnolongerusesthe--<pid>
optiontospecifytheoutputfile.Instead,thefirstnon-option
argumentistakentobethenameoftheoutputfile,andany
subsequentnon-optionargumentsaretakentobethenamesof
sourcefilestobeannotated.
*CachegrindandCallgrindnowusedirectorynameswherepossiblein
theiroutputfiles.Thismeansthatthe-Ioptionto
'cg_annotate'and'callgrind_annotate'shouldnotbeneededin
mostcases.Italsomeanstheycancorrectlyhandlethecase
wheretwosourcefilesindifferentdirectorieshavethesame
name.
-Memcheckoffersanewsuppressionkind:"Jump".Thisisfor
suppressingjump-to-invalid-addresserrors.Previouslyyouhadto
usean"Addr1"suppression,whichdidn'tmakemuchsense.
-Memcheckhasnewflags--malloc-fill=<hexnum>and
--free-fill=<hexnum>whichfreemalloc'd/free'dareaswiththe
specifiedbyte.Thiscanhelpshakeoutobscurememorycorruption
problems.Thedefinednessandaddressabilityoftheseareasis
unchanged--onlythecontentsareaffected.
-ThebehaviourofMemcheck'sclientrequestsVALGRIND_GET_VBITSand
VALGRIND_SET_VBITShavechangedslightly.Theynolongerissue
addressabilityerrors--ifeitherarrayispartiallyunaddressable,
theyjustreturn3(asbefore).Also,SET_VBITSdoesn'treport
definednesserrorsifanyoftheVbitsareundefined.
-ThefollowingMemcheckclientrequestshavebeenremoved:
VALGRIND_MAKE_NOACCESS
VALGRIND_MAKE_WRITABLE
VALGRIND_MAKE_READABLE
VALGRIND_CHECK_WRITABLE
VALGRIND_CHECK_READABLE
VALGRIND_CHECK_DEFINED
Theyweredeprecatedin3.2.0,whenequivalentbutbetter-namedclient
requestswereadded.Seethe3.2.0releasenotesformoredetails.
-ThebehaviourofthetoolLackeyhaschangedslightly.First,theoutput
from--trace-memhasbeenmademorecompact,toreducethesizeofthe
traces.Second,anewoption--trace-superblockshasbeenadded,which
showstheaddressesofsuperblocks(codeblocks)astheyareexecuted.
-Thefollowingbugshavebeenfixed.Notethat"n-i-bz"standsfor
"notinbugzilla"--thatis,abugthatwasreportedtousbut
nevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthan
mailingthedevelopers(ormailinglists)directly.
n-i-bzx86_linux_REDIR_FOR_index()broken
n-i-bzguest-amd64/toIR.c:2512(dis_op2_E_G):Assertion`0'failed.
n-i-bzSupportx86INTinsn(INT(0xCD)0x40-0x43)
n-i-bzAddsys_utimensatsystemcallforLinuxx86platform
79844Helgrindcomplainsaboutraceconditionwhichdoesnotexist
82871Massifoutputfunctionnamestooshort
89061Massif:ms_main.c:485(get_XCon):Assertion`xpt->max_chi...'
92615WriteoutputfromMassifatcrash
95483massiffeaturerequest:includepeakallocationinreport
112163MASSIFcrashedwithsignal7(SIGBUS)afterrunning2days
119404problemsrunningsetuidexecutables(partialfix)
121629addinstruction-countingmodefortiming
127371javavmgivingunhandledinstructionbytes:0x260x2E0x640x65
129937==150380
129576Massiflosestrackofmemory,incorrectgraphs
132132massif--format=htmloutputdoesnotdohtmlentityescaping
132950Heapalloc/usagesummary
133962unhandledinstructionbytes:0xF20x4C0xF0x10
134990use-fno-stack-protectorifpossible
136382==134990
137396Iwouldreallylikehelgrindtoworkagain...
137714x86/amd64->IR:0x660xF0xF70xC6(maskmovq,maskmovdq)
141631Massif:percentagesdon'taddupcorrectly
142706massifnumbersdon'tseemtoaddup
143062massifcrashesonappexitwithsignal8SIGFPE
144453(get_XCon):Assertion'xpt->max_children!=0'failed.
145559valgrindabortswhenmalloc_statsiscalled
145609valgrindabortsallrunswith'repeatedsection!'
145622--db-attachbrokenagainonx86-64
145837==149519
145887PPC32:getitimer()systemcallisnotsupported
146252==150678
146456(update_XCon):Assertion'xpt->curr_space>=-space_delta'...
146701==134990
146781Addingsupportforprivatefutexes
147325valgrindinternalerroronsyscall(SYS_io_destroy,0)
147498amd64->IR:0xF00xF0xB00xF(lockcmpxchg%cl,(%rdi))
147545Memcheck:mc_main.c:817(get_sec_vbits8):Assertion'n'failed.
147628SALCopcode0xd6unimplemented
147825crashonamd64-linuxwithgcc4.2andglibc2.6(CFI)
148174Incorrecttypeoffreed_list_volumecausesassertion[...]
148447x86_64:newNOPcodes:666666662e0f1f
149182PPCTrapinstructionsnotimplementedinvalgrind
149504Assertionhitonalloc_xpt->curr_space>=-space_delta
149519ppc32:VabortswithSIGSEGVonexecutionofasignalhandler
149892==137714
150044SEGVduringstackderegister
150380dwarf/gccinteroperation(dwarf3readproblems)
150408==148447
150678guest-amd64/toIR.c:3741(dis_Grp5):Assertion`sz==4'failed
151209VunabletoexecuteprogramsforuserswithUID>2^16
151938helpon--db-command=misleading
152022subw$0x28,%%spcausesassertionfailureinmemcheck
152357inbandoutbnotrecognizedin64-bitmode
152501vexx86->IR:0x270x660x890x45(daa)
152818vexx86->IR:0xF30xAC0xFC0x9C(replodsb)
Developer-visiblechanges:
-ThenamesofsomefunctionsandtypeswithintheVexIRhave
changed.Run'svnlog-r1689VEX/pub/libvex_ir.h'forfulldetails.
Anyexistingstandalonetoolswillhavetobeupdatedtoreflect
thesechanges.Thenewnamesshouldbeclearer.Thefile
VEX/pub/libvex_ir.hisalsomuchbettercommented.
-Anumberofnewdebuggingcommandlineoptionshavebeenadded.
Thesearemostlyofusefordebuggingthesymboltableandline
numberreaders:
--trace-symtab-patt=<patt>limitdebuginfotracingtoobjname<patt>
--trace-cfi=no|yesshowcall-frame-infodetails?[no]
--debug-dump=symsmimic/usr/bin/readelf--syms
--debug-dump=linemimic/usr/bin/readelf--debug-dump=line
--debug-dump=framesmimic/usr/bin/readelf--debug-dump=frames
--sym-offsets=yes|noshowsymsinform'name+offset'?[no]
-Internally,thecodebasehasbeenfurtherfactorisedand
abstractified,particularlywithrespecttosupportfornon-Linux
OSs.
(3.3.0.RC1:2Dec2007,vexr1803,valgrindr7268).
(3.3.0.RC2:5Dec2007,vexr1804,valgrindr7282).
(3.3.0.RC3:9Dec2007,vexr1804,valgrindr7288).
(3.3.0:10Dec2007,vexr1804,valgrindr7290).
Release3.2.3(29Jan2007)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unfortunately3.2.2introducedaregressionwhichcancausean
assertionfailure("vex:the`impossible'happened:eqIRConst")when
runningobscurepiecesofSSEcode.3.2.3fixesthisandaddsone
moreglibc-2.5intercept.Inallotherrespectsitisidenticalto
3.2.2.Pleasedonotuse(orpackage)3.2.2;insteaduse3.2.3.
n-i-bzvex:the`impossible'happened:eqIRConst
n-i-bzAddaninterceptforglibc-2.5__stpcpy_chk
(3.2.3:29Jan2007,vexr1732,valgrindr6560).
Release3.2.2(22Jan2007)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.2.2fixesabunchofbugsin3.2.1,addssupportforglibc-2.5based
systems(openSUSE10.2,FedoraCore6),improvessupportforicc-9.X
compiledcode,andbringsmodestperformanceimprovementsinsome
areas,includingamd64floatingpoint,powerpcsupport,andstartup
responsivenessonalltargets.
Thefixedbugsareasfollows.Notethat"n-i-bz"standsfor"notin
bugzilla"--thatis,abugthatwasreportedtousbutnevergota
bugzillaentry.Weencourageyoutofilebugsinbugzilla
(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthanmailingthe
developers(ormailinglists)directly.
129390ppc?->IR:somekindofVMXprefetch(dstt)
129968amd64->IR:0xF0xAE0x0(fxsave)
134319==129968
133054'makeinstall'failswithsyntaxerrors
118903==133054
132998startupfailsinwhenrunningonUML
134207pkg-configoutputcontains@VG_PLATFORM@
134727valgrindexitswith"Valuetoolargefordefineddatatype"
n-i-bzppc32/64:supportmcrfs
n-i-bzCachegrind/Callgrind:Updatecacheparameterdetection
135012x86->IR:0xD70x8A0xE00xD0(xlat)
125959==135012
126147x86->IR:0xF20xA50xF0x77(repnemovsw)
136650amd64->IR:0xC20x80x0
135421x86->IR:unhandledGrp5(R)case6
n-i-bzImproveddocumentationoftheIRintermediaterepresentation
n-i-bzjcxz(x86)(userslist,8Nov)
n-i-bzExeContexthashingfix
n-i-bzfixCFIreadingfailures("DwarfCFI0:240:320:480:7")
n-i-bzfixCachegrind/Callgrindsimulationbug
n-i-bzlibmpiwrap.c:fixhandlingofMPI_LONG_DOUBLE
n-i-bzmakeUsererrorssuppressible
136844corruptedmalloclinewhenusing--gen-suppressions=yes
138507==136844
n-i-bzSpeeduptheJIT'sregisterallocator
n-i-bzFixconfusingleak-checkerflaghints
n-i-bzSupportrecentautoswampversions
n-i-bzppc32/64dispatcherspeedups
n-i-bzppc64frontendrld/rlwimprovements
n-i-bzppc64backendimm64improvements
136300support64Kpagesonppc64-linux
139124==136300
n-i-bzfixppcinsnsettestsforgcc>=4.1
137493x86->IR:recentbinutilsno-ops
137714x86->IR:0x660xF0xF70xC6(maskmovdqu)
138424"failedinUMEwitherror22"(produceabettererrormsg)
138856==138424
138627Enhancementsupportforprctlioctls
138896Addsupportforusbioctls
136059==138896
139050ppc32->IR:mfspr268/269instructionsnothandled
n-i-bzppc32->IR:lvxl/stvxl
n-i-bzglibc-2.5support
n-i-bzmemcheck:providereplacementformempcpy
n-i-bzmemcheck:replacebcmpinld.so
n-i-bzUse'ifndef'inVEX'sMakefilecorrectly
n-i-bzSuppressionsforMVL4.0.1onppc32-linux
n-i-bzlibmpiwrap.c:FixesforMPICH
n-i-bzMorerobusthandlingofhintedclientmmaps
139776InvalidreadinunalignedmemcpywithIntelcompilerv9
n-i-bzGeneratevalidXMLevenforverylongfnnames
n-i-bzDon'tpromptaboutsuppressionsforunshownreachableleaks
139910amd64rclisnotsupported
n-i-bzDWARFCFIreader:handleDW_CFA_undefined
n-i-bzDWARFCFIreader:handleicc9generatedCFIinfobetter
n-i-bzfixfalseuninit-valueerrsinicc9generatedFPcode
n-i-bzreduceextraneousframesinlibmpiwrap.c
n-i-bzsupportpselect6onamd64-linux
(3.2.2:22Jan2007,vexr1729,valgrindr6545).
Release3.2.1(16Sept2006)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.2.1addsx86/amd64supportforallSSE3instructionsexceptmonitor
andmwait,furtherreducesmemcheck'sfalseerrorrateonall
platforms,addssupportforrecentbinutils(inOpenSUSE10.2and
FedoraRawhide)andfixesabunchofbugsin3.2.0.Someofthefixed
bugswerecausinglargeprogramstosegfaultwith--tool=callgrindand
--tool=cachegrind,soanupgradeisrecommended.
Inviewofthefactthatany3.3.0releaseisunlikelytohappenuntil
wellinto1Q07,weintendtokeepthe3.2.Xlinealiveforawhile
yet,andsowetentativelyplana3.2.2releasesometimeinDecember
06.
Thefixedbugsareasfollows.Notethat"n-i-bz"standsfor"notin
bugzilla"--thatis,abugthatwasreportedtousbutnevergota
bugzillaentry.
n-i-bzExpandingbrk()intolastavailablepageasserts
n-i-bzppc64-linuxstackRZfast-casesnafu
n-i-bz'c'in--gen-supps=yesdoesn'twork
n-i-bzVG_N_SEGMENTStoolow(users,28June)
n-i-bzVG_N_SEGNAMEStoolow(StuRobinson)
106852x86->IR:fisttp(SSE3)
117172FUTEX_WAKEdoesnotuseuaddr2
124039LackssupportforVKI_[GP]IO_UNIMAP*
127521amd64->IR:0xF00x480xF0xC7(cmpxchg8b)
128917amd64->IR:0x660xF0xF60xC4(psadbw,SSE2)
129246JJ:ppc32/ppc64syscalls,w/patch
129358x86->IR:fisttpl(SSE3)
129866cachegrind/callgrindcausesexecutabletodie
130020Can'tstat.so/.exeerrorwhilereadingsymbols
130388Valgrindabortswhenprocesscallsmalloc_trim()
130638PATCH:ppc32missingsystemcalls
130785amd64->IR:unhandledinstruction"pushfq"
131481:(HINT_NOP)vexx86->IR:0xF0x1F0x00xF
131298==131481
132146Programswithlongsequencesofbswap[l,q]s
132918vexamd64->IR:0xD90xF8(fprem)
132813Assertionatpriv/guest-x86/toIR.c:652fails
133051'cfsi->len>0&&cfsi->len<2000000'failed
132722valgrindheaderfilesarenotstandardC
n-i-bzLivelocksentiremachine(userslist,TimothyTerriberry)
n-i-bzAlexBenneemmapproblem(9Aug)
n-i-bzBartV:Don'tprintmorelinesofastack-tracethanwereobtained.
n-i-bzppc32SuSE10.1redir
n-i-bzamd64paddingsuppressions
n-i-bzamd64insnprintingfix.
n-i-bzppccmpreg,regfix
n-i-bzx86/amd64iropte/rflagreductionrules
n-i-bzSuSE10.1(ppc32)minorfixes
133678amd64->IR:0x480xF0xC50xC0(pextrw?)
133694aspacemassertion:aspacem_minAddr<=holeStart
n-i-bzcallgrind:fixwarningaboutmalformedcreatorline
n-i-bzcallgrind:fixannotatescriptfordataproducedwith
--dump-instr=yes
n-i-bzcallgrind:fixfailedassertionwhentoggling
instrumentationmode
n-i-bzcallgrind:fixannotatescriptfixwarningswith
--collect-jumps=yes
n-i-bzdocspathhardwired(DennisLubert)
Thefollowingbugswerenotfixed,dueprimarilytolackofdeveloper
time,andalsobecausebugreportersdidnotanswerrequestsfor
feedbackintimefortherelease:
129390ppc?->IR:somekindofVMXprefetch(dstt)
129968amd64->IR:0xF0xAE0x0(fxsave)
133054'makeinstall'failswithsyntaxerrors
n-i-bzSignalracecondition(userslist,13June,JohannesBerg)
n-i-bzUnrecognisedinstructionataddress0x70198EC2(userslist,
19July,Bennee)
132998startupfailsinwhenrunningonUML
Thefollowingbugwastentativelyfixedonthemainlinebutthefix
wasconsideredtooriskytopushinto3.2.X:
133154crashwhenusingclientrequeststoregister/deregisterstack
(3.2.1:16Sept2006,vexr1658,valgrindr6070).
Release3.2.0(7June2006)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.2.0isafeaturereleasewithmanysignificantimprovementsandthe
usualcollectionofbugfixes.ThisreleasesupportsX86/Linux,
AMD64/Linux,PPC32/LinuxandPPC64/Linux.
Performance,especiallyofMemcheck,isimproved,Addrcheckhasbeen
removed,Callgrindhasbeenadded,PPC64/Linuxsupporthasbeenadded,
Lackeyhasbeenimproved,andMPIsupporthasbeenadded.Indetail:
-Memcheckhasimprovedspeedandreducedmemoryuse.Runtimesare
typicallyreducedby15-30%,averagingabout24%forSPECCPU2000.
Theothertoolshavesmallerbutnoticeablespeedimprovements.We
areinterestedtohearwhatimprovementsusersget.
Memcheckuseslessmemoryduetotheintroductionofacompressed
representationforshadowmemory.Thespaceoverheadhasbeen
reducedbyafactorofuptofour,dependingonprogrambehaviour.
Thismeansyoushouldbeabletorunprogramsthatusemorememory
thanbeforewithouthittingproblems.
-Addrcheckhasbeenremoved.Ithasnotworkedsinceversion2.4.0,
andthespeedandmemoryimprovementstoMemcheckmakeitredundant.
IfyoulikedusingAddrcheckbecauseitdidn'tgiveundefinedvalue
errors,youcanusethenewMemcheckoption--undef-value-errors=no
togetthesamebehaviour.
-Thenumberofundefined-valueerrorsincorrectlyreportedby
Memcheckhasbeenreduced(suchfalsereportswerealreadyvery
rare).Inparticular,effortshavebeenmadetoensureMemcheck
worksreallywellwithgcc4.0/4.1-generatedcodeonX86/Linuxand
AMD64/Linux.
-JosefWeidendorfer'spopularCallgrindtoolhasbeenadded.Folding
itinwasalogicalstepgivenitspopularityandusefulness,and
makesiteasierforustoensureitworks"outofthebox"onall
supportedtargets.TheassociatedKDEKCachegrindGUIremainsa
separateproject.
-AnewreleaseoftheValkyrieGUIforMemcheck,version1.2.0,
accompaniesthisrelease.Improvementsoverpreviousreleases
includeimprovedrobustness,manyrefinementstotheuserinterface,
anduseofastandardautoconf/automakebuildsystem.Youcanget
itfromhttp://www.valgrind.org/downloads/guis.html.
-ValgrindnowworksonPPC64/Linux.AswiththeAMD64/Linuxport,
thissupportsprogramsusingto32Gofaddressspace.On64-bit
capablePPC64/Linuxsetups,yougetadualarchitecturebuildso
thatboth32-bitand64-bitexecutablescanberun.LinuxonPOWER5
issupported,andPOWER4isalsobelievedtowork.Both32-bitand
64-bitDWARF2issupported.Thisportisknowntoworkwellwith
bothgcc-compiledandxlc/xlf-compiledcode.
-FloatingpointaccuracyhasbeenimprovedforPPC32/Linux.
Specifically,thefloatingpointroundingmodeisobservedonallFP
arithmeticoperations,andmultiply-accumulateinstructionsare
preservedbythecompilationpipeline.ThismeansyoushouldgetFP
resultswhicharebit-for-bitidenticaltoanativerun.These
improvementsarealsopresentinthePPC64/Linuxport.
-Lackey,theexampletool,hasbeenimproved:
*Ithasanewoption--detailed-counts(offbydefault)which
causesittoprintoutacountofloads,storesandALUoperations
done,andtheirsizes.
*Ithasanewoption--trace-mem(offbydefault)whichcausesit
toprintoutatraceofallmemoryaccessesperformedbya
program.It'sagoodstartingpointforbuildingValgrindtools
thatneedtotrackmemoryaccesses.Readthecommentsatthetop
ofthefilelackey/lk_main.cfordetails.
*Theoriginalinstrumentation(countingnumbersofinstructions,
jumps,etc)isnowcontrolledbyanewoption--basic-counts.It
isonbydefault.
-MPIsupport:partialsupportfordebuggingdistributedapplications
usingtheMPIlibraryspecificationhasbeenadded.Valgrindis
awareofthememorystatechangescausedbyasubsetoftheMPI
functions,andwillcarefullycheckdatapassedtothe(P)MPI_
interface.
-Anewflag,--error-exitcode=,hasbeenadded.Thisallowschanging
theexitcodeinrunswhereValgrindreportederrors,whichis
usefulwhenusingValgrindaspartofanautomatedtestsuite.
-Varioussegfaultswhenreadingold-style"stabs"debuginformation
havebeenfixed.
-Asimpleperformanceevaluationsuitehasbeenadded.See
perf/READMEandREADME_DEVELOPERSfordetails.Thereare
variousbellsandwhistles.
-Newconfigurationflags:
--enable-only32bit
--enable-only64bit
Bydefault,on64bitplatforms(ppc64-linux,amd64-linux)thebuild
systemwillattempttobuildaValgrindwhichsupportsboth32-bit
and64-bitexecutables.Thismaynotbewhatyouwant,andyoucan
overridethedefaultbehaviourusingtheseflags.
PleasenotethatHelgrindisstillnotworking.Wehavemadean
importantsteptowardsmakingitworkagain,however,withthe
additionoffunctionwrapping(seebelow).
Otheruser-visiblechanges:
-Valgrindnowhastheabilitytointerceptandwraparbitrary
functions.ThisisapreliminarysteptowardsmakingHelgrindwork
again,andwasrequiredforMPIsupport.
-TherearesomechangestoMemcheck'sclientrequests.Someofthem
havechangednames:
MAKE_NOACCESS-->MAKE_MEM_NOACCESS
MAKE_WRITABLE-->MAKE_MEM_UNDEFINED
MAKE_READABLE-->MAKE_MEM_DEFINED
CHECK_WRITABLE-->CHECK_MEM_IS_ADDRESSABLE
CHECK_READABLE-->CHECK_MEM_IS_DEFINED
CHECK_DEFINED-->CHECK_VALUE_IS_DEFINED
Thereasonforthechangeisthattheoldnamesaresubtly
misleading.Theoldnameswillstillwork,buttheyaredeprecated
andmayberemovedinafuturerelease.
Wealsoaddedanewclientrequest:
MAKE_MEM_DEFINED_IF_ADDRESSABLE(a,len)
whichislikeMAKE_MEM_DEFINEDbutonlyaffectsabyteifthebyteis
alreadyaddressable.
-Thewayclientrequestsareencodedintheinstructionstreamhas
changed.Unfortunately,thismeans3.2.0willnothonourclient
requestscompiledintobinariesusingheadersfromearlierversions
ofValgrind.Wewilltrytokeeptheclientrequestencodingsmore
stableinfuture.
BUGSFIXED:
108258NPTLpthreadcleanuphandlersnotcalled
117290valgrindissigKILL'donstartup
117295==117290
118703m_signals.c:1427Assertion'tst->status==VgTs_WaitSys'
118466add%reg,%reggeneratesincorrectvalidityforbit0
123210New:strlenfromld-linuxonamd64
123244DWARF2CFIreader:unhandledCFIinstruction0:18
123248syscallsinglibc-2.4:openat,fstatat,symlinkat
123258socketcall.recvmsg(msg.msg_iov[i]pointstouninit
123535mremap(new_addr)requiresMREMAP_FIXEDin4tharg
123836smalltypointhedoc
124029ppccompilefailed:`vor'gcc3.3.5
124222Segfault:@@don'tknowwhattype':'is
124475ppc32:crash(syscall?)timer_settime()
124499amd64->IR:0xF0xE0x480x85(femms)
124528FATAL:aspacemassertionfailed:segment_is_sane
124697vexx86->IR:0xF0x700xC90x0(pshufw)
124892vexx86->IR:0xF30xAE(REPxSCASB)
126216==124892
124808ppc32:sys_sched_getaffinity()nothandled
n-i-bzVerylongstabsstringscrashm_debuginfo
n-i-bzamd64->IR:0x660xF0xF5(pmaddwd)
125492ppc32:supportabunchmoresyscalls
121617ppc32/64:coredumpinggivesassertionfailure
121814Coregrindreturnerrorasexitcodepatch
126517==121814
125607amd64->IR:0x660xF0xA30x2(btwetc)
125651amd64->IR:0xF80x490xFF0xE3(clc?)
126253x86movxiswrong
1264513.2SVNdoesn'tworkonppc32CPU'swithoutFPU
126217increase#threads
126243vexx86->IR:popwmem
126583amd64->IR:0x480xF0xA40xC2(shld$1,%rax,%rdx)
126668amd64->IR:0x1C0xFF(sbb$0xff,%al)
126696supportforCDROMREADRAWioctlandCDROMREADTOCENTRYfix
126722assertion:segment_is_saneatm_aspacemgr/aspacemgr.c:1624
126938badcheckingforsyscallslinkat,renameat,symlinkat
(3.2.0RC1:27May2006,vexr1626,valgrindr5947).
(3.2.0:7June2006,vexr1628,valgrindr5957).
Release3.1.1(15March2006)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.1.1fixesabunchofbugsreportedin3.1.0.Thereisnonew
functionality.Thefixedbugsare:
(note:"n-i-bz"means"notinbugzilla"--thisbugdoesnothave
abugzillaentry).
n-i-bzppc32:fsub3,3,3indispatcherdoesn'tclearNaNs
n-i-bzppc32:__NR_{set,get}priority
117332x86:missinglineinfowithicc8.1
117366amd64:0xDD0x7Cfnstsw
118274==117366
117367amd64:0xD90xF4fxtract
117369amd64:__NR_getpriority(140)
117419ppc32:lfsuf5,-4(r11)
117419ppc32:fsqrt
117936morestabsproblems(segfaultswhilereadingdebuginfo)
119914==117936
120345==117936
118239amd64:0xF0xAE0x3F(clflush)
118939vm86oldsystemcall
n-i-bzmemcheck/tests/mempoolreadsfreedmemory
n-i-bzAshleyP'scustom-allocatorassertion
n-i-bzDirkstrict-aliasingstuff
n-i-bzMorespacefordebuggercmdline(DanThaler)
n-i-bzClarifiedleakcheckeroutputmessage
n-i-bzAshleyP's--gen-suppressionsoutputfix
n-i-bzcg_annotate's--sortoptionbroken
n-i-bzOSet64-bitfastcmpbug
n-i-bzVG_(getgroups)fix(ShinichiNoda)
n-i-bzppc32:allocatefromcallee-savedFP/VMXregs
n-i-bzmisalignedpathword-sizebuginmc_main.c
119297Incorrecterrormessageforssecode
120410x86:prefetchw(0xF0xD0x480x4)
120728TIOCSERGETLSR,TIOCGICOUNT,HDIO_GET_DMAioctls
120658Buildfixesforgcc2.96
120734x86:SupportforchangingEIPinsignalhandler
n-i-bzmemcheck/tests/zeropagede-loopingfix
n-i-bzx86:fxtractdoesn'tworkreliably
121662x86:lockxadd(0xF00xF0xC00x2)
121893callocdoesnotalwaysreturnzeroedmemory
121901nosupportforsyscalltkill
n-i-bzSuppressionupdateforDebianunstable
122067amd64:fcmovnu(0xDB0xD9)
n-i-bzppc32:brokensignalhandlingincpufeaturedetection
n-i-bzppc32:roundingmodeproblems(improved,partialfixonly)
119482ppc32:mtfsb1
n-i-bzppc32:mtocrf/mfocrf
(3.1.1:15March2006,vexr1597,valgrindr5771).
Release3.1.0(25November2005)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.1.0isafeaturereleasewithanumberofsignificantimprovements:
AMD64supportismuchimproved,PPC32supportisgoodenoughtobe
usable,andthehandlingofmemorymanagementandaddressspaceis
muchmorerobust.Indetail:
-AMD64supportismuchimproved.The64-bitvs.32-bitissuesin
3.0.Xhavebeenresolved,anditshould"justwork"nowinall
cases.OnAMD64machinesboth64-bitand32-bitversionsof
Valgrindarebuilt.Therightversionwillbeinvoked
automatically,evenwhenusing--trace-childrenandmixingexecution
between64-bitand32-bitexecutables.Also,manymoreinstructions
aresupported.
-PPC32supportisnowgoodenoughtobeusable.Itshouldworkwith
alltools,butpleaseletusknowifyouhaveproblems.Three
classesofCPUsaresupported:integeronly(noFP,noAltivec),
whichcoversembeddedPPCuses,integerandFPbutnoAltivec
(G3-ish),andCPUscapableofAltivectoo(G4,G5).
-Valgrind'saddressspacemanagementhasbeenoverhauled.Asa
result,Valgrindshouldbemuchmorerobustwithprogramsthatuse
largeamountsofmemory.Thereshouldbemanyfewer"memory
exhausted"messages,anddebugsymbolsshouldbereadcorrectlyon
large(eg.300MB+)executables.On32-bitmachinesthefulladdress
spaceavailabletouserprograms(usually3GBor4GB)canbefully
utilised.On64-bitmachinesupto32GBofspaceisusable;when
usingMemcheckthatmeansyourprogramcanuseuptoabout14GB.
AsideeffectofthischangeisthatValgrindisnolongerprotected
againstwildwritesbytheclient.Thisfeaturewasnicebutrelied
onthex86segmentregistersandsowasn'tportable.
-Mostusersshouldnotnotice,butaspartoftheaddressspace
managerchange,thewayValgrindisbuilthasbeenchanged.Each
toolisnowbuiltasastaticallylinkedstand-aloneexecutable,
ratherthanasasharedobjectthatisdynamicallylinkedwiththe
core.The"valgrind"programinvokestheappropriatetooldepending
onthe--tooloption.Thisslightlyincreasestheamountofdisk
spaceusedbyValgrind,butitgreatlysimplifiedmanythingsand
removedValgrind'sdependenceonglibc.
PleasenotethatAddrcheckandHelgrindarestillnotworking.Work
isunderwaytoreinstatethem(orequivalents).Weapologiseforthe
inconvenience.
Otheruser-visiblechanges:
-The--weird-hacksoptionhasbeenrenamed--sim-hints.
-The--time-stampoptionnolongergivesanabsolutedateandtime.
Itnowprintsthetimeelapsedsincetheprogrambegan.
-Itshouldbuildwithgcc-2.96.
-Valgrindcannowrunitself(seeREADME_DEVELOPERSforhow).
Thisisnotmuchusetoyou,butitmeansthedeveloperscannow
profileValgrindusingCachegrind.Asaresultacoupleof
performancebadcaseshavebeenfixed.
-TheXMLoutputformathaschangedslightly.See
docs/internals/xml-output.txt.
-Coredumpinghasbeenreinstated(itwasdisabledin3.0.0and3.0.1).
IfyourprogramcrasheswhilerunningunderValgrind,acorefilewith
thename"vgcore.<pid>"willbecreated(ifyoursettingsallowcore
filecreation).Notethatthefloatingpointinformationisnotall
there.IfValgrinditselfcrashes,theOSwillcreateanormalcore
file.
Thefollowingaresomeuser-visiblechangesthatoccurredinearlier
versionsthatmaynothavebeenannounced,orwereannouncedbutnot
widelynoticed.Sowe'rementioningthemnow.
-The--toolflagisoptionalonceagain;ifyouomitit,Memcheck
isrunbydefault.
-The--num-callersflagnowhasadefaultvalueof12.Itwas
previously4.
-The--xml=yesflagcausesValgrind'soutputtobeproducedinXML
format.Thisisdesignedtomakeiteasyforotherprogramsto
consumeValgrind'soutput.Theformatisdescribedinthefile
docs/internals/xml-format.txt.
-The--gen-suppressionsflagsupportsan"all"valuethatcausesevery
suppressiontobeprintedwithoutasking.
-The--log-fileoptionnolongerputs"pid"inthefilename,eg.the
oldname"foo.pid12345"isnow"foo.12345".
-Thereareseveralgraphicalfront-endsforValgrind,suchasValkyrie,
AlleyoopandValgui.Seehttp://www.valgrind.org/downloads/guis.html
foralist.
BUGSFIXED:
109861amd64hangsatstartup
110301ditto
111554valgrindcrasheswithCannotallocatememory
111809Memchecktooldoesn'tstartjava
111901cross-platformrunofcachegrindfailsonopteron
113468(vgPlain_mprotect_range):Assertion'r!=-1'failed.
92071Readingdebugginginfousestoomuchmemory
109744memchecklosestrackofmmapfromdirectld-linux.so.2
110183tailofpagewith_end
82301FVmemorylayouttoorigid
98278Infiniterecursionpossiblewhenallocatingmemory
108994Valgrindrunsoutofmemorydueto133xoverhead
115643valgrindcannotallocatememory
105974vg_hashtable.cstatichashtable
109323ppc32:dispatch.SusesAltivecinsn,whichdoesn'tworkonPOWER.
109345ptrace_setregsnotyetimplementedforppc
110831Wouldliketobeabletorunagainstboth32and64bit
binariesonAMD64
110829==110831
111781compileofvalgrind-3.0.0failsonmylinux(gcc2.Xprob)
112670Cachegrind:cg_main.c:486(handleOneStatement...
112941vexx86:0xD90xF4(fxtract)
110201==112941
113015vexamd64->IR:0xE30x140x480x83(jrcxz)
113126Crashwithbinariesbuiltwith-gstabs+/-ggdb
104065==113126
115741==113126
113403PartialSSE3supportonx86
113541vex:Grp5(x86)(altencodinginc/dec)case1
113642valgrindcrasheswhentryingtoreaddebuginformation
113810vexx86->IR:660FF6(66+PSADBW==SSEPSADBW)
113796read()andwrite()donotworkifbufferisinsharedmemory
113851vexx86->IR:(pmaddwd):0x660xF0xF50xC7
114366vexamd64cannnothandle__asm__("fninit")
114412vexamd64->IR:0xF0xAD0xC20xD3(128-bitshift,shrdq?)
114455vexamd64->IR:0xF0xAC0xD00x1(alsoshrdq)
115590:amd64->IR:0x670xE30x90xEB(addresssizeoverride)
115953valgrindsvnr5042doesnotbuildwithparallelmake(-j3)
116057maximuminstructionsize-VG_MAX_INSTR_SZBtoosmall?
116483shmatfaileswithinvalidargument
102202valgrindcrasheswhenrealloc'inguntiloutofmemory
109487==102202
110536==102202
112687==102202
111724vexamd64->IR:0x410xF0xAB(moreBT{,S,R,C}funngames)
111748vexamd64->IR:0xDD0xE2(fucom)
111785makefailsifCCcontainsspaces
111829vexx86->IR:sbbAL,Ib
111851vexx86->IR:0x9F0x89(lahf/sahf)
112031ioplonAMD64andREADME_MISSING_SYSCALL_OR_IOCTLupdate
112152codegenerationforXin_MFenceonx86withSSE0subarch
112167==112152
112789==112152
112199nakedartoolisusedinvexmakefile
112501vexx86->IR:movq(0xF0x7F0xC10xF)(mmxMOVQ)
113583==112501
112538memaligncrash
113190Brokenlinksindocs/html/
113230Valgrindsys_pipeonx86-64wronglythinksfiledescriptors
shouldbe64bit
113996vexamd64->IR:fucomp(0xDD0xE9)
114196vexx86->IR:out%eax,(%dx)(0xEF0xC90xC30x90)
114289Memcheckfailstointerceptmallocwhenusedinanuclibcenvironment
114756mbindsyscallsupport
114757Valgrinddieswithassertion:Assertion'noLargerThan>0'failed
114563stacktrackingmodulenotinformedwhenvalgrindswitchesthreads
114564clone()andstacks
114565==114564
115496glibccrashestryingtousesysinfopage
116200enablefsetxattr,fgetxattr,andfremovexattrforamd64
(3.1.0RC1:20November2005,vexr1466,valgrindr5224).
(3.1.0:26November2005,vexr1471,valgrindr5235).
Release3.0.1(29August2005)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.0.1fixesabunchofbugsreportedin3.0.0.Thereisnonew
functionality.Someofthefixedbugsarecritical,soifyou
use/distribute3.0.0,anupgradeto3.0.1isrecommended.Thefixed
bugsare:
(note:"n-i-bz"means"notinbugzilla"--thisbugdoesnothave
abugzillaentry).
109313(==110505)x86cmpxchg8b
n-i-bzx86:trackbutignorechangesto%eflags.AC(alignmentcheck)
110102dis_op2_E_G(amd64)
110202x86sys_waitpid(#286)
110203clock_getres(,0)
110208execvefailwrongretval
110274SSE1nowmandatoryforx86
110388amd640xDD0xD1
110464amd640xDC0x1DFCOMP
110478amd640xF0xDPREFETCH
n-i-bzXML<unique>printingwrong
n-i-bzDirkr4359(amd64syscallsfromtrunk)
110591amd64andx86:rdtscnotimplementedproperly
n-i-bzNickr4384(stubimplementationsofAddrcheckandHelgrind)
110652AMD64valgrindcrashesoncwtdinstruction
110653AMD64valgrindcrashesonsarb$0x4,foo(%rip)instruction
110656PATH=/usr/bin::/binvalgrindfoobarstats./fooba
110657Smalltestfixes
110671vexx86->IR:unhandledinstructionbytes:0xF30xC3(repret)
n-i-bzNick(Cachegrindshouldnotassertwhenitencountersaclient
request.)
110685amd64->IR:unhandledinstructionbytes:0xE10x56(loopeJb)
110830configuringwith--hostfailstobuild32biton64bittarget
110875Assertionwhenexecvefails
n-i-bzUpdatestoMemcheckmanual
n-i-bzFixedbrokenmalloc_usable_size()
110898opteroninstructionsmissing:btqbtsqbtrqbsfq
110954x86->IR:unhandledinstructionbytes:0xE20xF6(loopJb)
n-i-bzMakesuppressionsworkfor"???"linesinstacktraces.
111006boguswarningsfromlinuxthreads
111092x86:dis_Grp2(Reg):unhandledcase(x86)
111231sctp_getladdrs()andsctp_getpaddrs()returnsuninitialized
memory
111102(comment#4)Fixed64-bitunclean"sillyarg"message
n-i-bzvexx86->IR:unhandledinstructionbytes:0x140x0
n-i-bzminorumount/fcntlwrapperfixes
111090InternalErrorrunningMassif
101204noisywarning
111513IllegalopcodeforSSEinstruction(x86movups)
111555VEX/Makefile:CCissettogcc
n-i-bzFixXMLbugsinFAQ
(3.0.1:29August05,
vex/branches/VEX_3_0_BRANCHr1367,
valgrind/branches/VALGRIND_3_0_BRANCHr4574).
Release3.0.0(3August2005)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.0.0isamajoroverhaulofValgrind.Themostsignificantuser
visiblechangeisthatValgrindnowsupportsarchitecturesotherthan
x86.ThenewarchitecturesitsupportsareAMD64andPPC32,andthe
infrastructureispresentforotherarchitecturestobeaddedlater.
AMD64supportworkswell,buthassomeshortcomings:
-Itgenerallywon'tbeassolidasthex86version.Forexample,
supportformoreobscureinstructionsandsystemcallsmaybemissing.
Wewillfixtheseastheyarise.
-Addressspacemaybelimited;seethepointabout
position-independentexecutablesbelow.
-IfValgrindisbuiltonanAMD64machine,itwillonlyrun64-bit
executables.Ifyouwanttorun32-bitx86executablesunderValgrind
onanAMD64,youwillneedtobuildValgrindonanx86machineand
copyittotheAMD64machine.Anditprobablywon'tworkifyoudo
somethingtrickylikeexec'inga32-bitprogramfroma64-bitprogram
whileusing--trace-children=yes.Wehopetoimprovethissituation
inthefuture.
ThePPC32supportisverybasic.Itmaynotworkreliablyevenfor
smallprograms,butit'sastart.ManythankstoPaulMackerrasfor
hisgreatworkthatenabledthissupport.Weareworkingtomake
PPC32usableassoonaspossible.
Otheruser-visiblechanges:
-Valgrindisnolongerbuiltbydefaultasaposition-independent
executable(PIE),asthiscausedtoomanyproblems.
WithoutPIEenabled,AMD64programswillonlybeabletoaccess2GBof
addressspace.Wewillfixthiseventually,butnotforthemoment.
Use--enable-pieatconfigure-timetoturnthison.
-Supportforprogramsthatusestack-switchinghasbeenimproved.Use
the--max-stackframeflagforsimplecases,andthe
VALGRIND_STACK_REGISTER,VALGRIND_STACK_DEREGISTERand
VALGRIND_STACK_CHANGEclientrequestsfortrickiercases.
-Supportforprogramsthatuseself-modifyingcodehasbeenimproved,
inparticularprogramsthatputtemporarycodefragmentsonthestack.
ThishelpsforCprogramscompiledwithGCCthatusenestedfunctions,
andalsoAdaprograms.Thisiscontrolledwiththe--smc-check
flag,althoughthedefaultsettingshouldworkinmostcases.
-OutputcannowbeprintedinXMLformat.Thisshouldmakeiteasier
fortoolssuchasGUIfront-endsandautomatederror-processing
schemestouseValgrindoutputasinput.The--xmlflagcontrolsthis.
Aspartofthischange,ELFdirectoryinformationisreadfromexecutables,
soabsolutesourcefilepathsareavailableifneeded.
-Programsthatallocatemanyheapblocksmayrunfaster,dueto
improvementsincertaindatastructures.
-Addrcheckiscurrentlynotworking.Wehopetogetitworkingagain
soon.Helgrindisstillnotworking,aswasthecaseforthe2.4.0
release.
-TheJITterhasbeencompletelyrewritten,andisnowinaseparate
library,calledVex.Thisenabledalotoftheuser-visiblechanges,
suchasnewarchitecturesupport.ThenewJITunfortunatelytranslates
moreslowlythantheoldone,soprogramsmaytakelongertostart.
Webelievethecodequalityisproducesisaboutthesame,soonce
started,programsshouldrunataboutthesamespeed.Feedbackabout
thiswouldbeuseful.
Ontheplusside,VexandhenceMemchecktracksvalueflowproperly
throughfloatingpointandvectorregisters,somethingthe2.Xline
couldnotdo.ThatmeansthatMemcheckismuchmorelikelytobe
usablyaccurateonvectorisedcode.
-Thereisasubtlechangetothewayexitingofthreadedprograms
ishandled.In3.0,Valgrind'sfinaldiagnosticoutput(leakcheck,
etc)isnotprinteduntilthelastthreadexits.Ifthelastthread
toexitwasnottheoriginalthreadwhichstartedtheprogram,any
otherprocesswait()-ingonthisonetoexitmayconcludeithas
finishedbeforethediagnosticoutputisprinted.Thismaynotbe
whatyouexpect.2.Xhadadifferentschemewhichavoidedthis
problem,butcauseddeadlocksunderobscurecircumstances,sowe
aretryingsomethingdifferentfor3.0.
-Smallchangesincontrollogfilenamingwhichmakeiteasierto
usevalgrindfordebuggingMPI-basedprograms.Therelevant
newflagsare--log-file-exactly=and--log-file-qualifier=.
-AspartofaddingAMD64support,DWARF2CFI-basedstackunwinding
supportwasadded.InprinciplethismeansValgrindcanproduce
meaningfulbacktracesonx86codecompiledwith-fomit-frame-pointer
providingyoualsocompileyourcodewith-fasynchronous-unwind-tables.
-Thedocumentationbuildsystemhasbeencompletelyredone.
ThedocumentationmastersarenowinXMLformat,andfromthat
HTML,PostScriptandPDFdocumentationisgenerated.Asaresult
themanualisnowavailableinbookform.Notethatthe
documentationinthesourcetarballsispre-built,soyoudon'tneed
anyXMLprocessingtoolstobuildValgrindfromatarball.
Changesthatarenotuser-visible:
-Thecodehasbeenmassivelyoverhauledinordertomodulariseit.
Asaresultwehopeitiseasiertonavigateandunderstand.
-Lotsofcodehasbeenrewritten.
BUGSFIXED:
110046sz==4assertionfailed
109810vexamd64->IR:unhandledinstructionbytes:0xA30x4C0x700xD7
109802Addaplausible_stack_sizecommand-lineparameter?
109783unhandledioctlTIOCMGET(runninghwdetectiontooldiscover)
109780unhandledioctlBLKSSZGET(runningfdisk-l/dev/hda)
109718vexx86->IR:unhandledinstruction:ffreep
109429AMD64unhandledsyscall:127(sigpending)
109401falsepositiveuninitinstrchrfromld-linux.so.2
109385"stabs"parsefailure
109378amd64:unhandledinstructionREPNOP
109376amd64:unhandledinstructionLOOPJb
109363AMD64unhandledinstructionbytes
109362AMD64unhandledsyscall:24(sched_yield)
109358fork()won'tworkwithvalgrind-3.0SVN
109332amd64unhandledinstruction:ADCEv,Gv
109314Bogusmemcheckreportonamd64
108883Crash;vg_memory.c:905(vgPlain_init_shadow_range):
Assertion`vgPlain_defined_init_shadow_page()'failed.
108349mincoresyscallparametercheckedincorrectly
108059buildinfrastructure:smallupdate
107524epoll_ctleventparametercheckedonEPOLL_CTL_DEL
107123Vexdieswithunhandledinstructions:0xD90x310xF0xAE
106841auxmap&openGLproblems
106713SDL_Initcausesvalgrindtoexit
106352setcontextandmakecontextnothandledcorrectly
106293addressesbeyondinitialclientstackallocation
notcheckedinVALGRIND_DO_LEAK_CHECK
106283PIEclientprogramsareloadedataddress0
105831Assertion`vgPlain_defined_init_shadow_page()'failed.
105039longrun-timesprobablyduetomemorymanager
104797valgrindneedstobeawareofBLKGETSIZE64
103594unhandledinstruction:FICOM
103320Valgrind2.4.0failstocompilewithgcc3.4.3and-O0
103168potentiallymemoryleakincoregrind/ume.c
102039badpermissionsformappedregionataddress0xB7C73680
101881weirdassertionproblem
101543Supportfadvise64syscalls
75247x86_64/amd64support(thebiggest"bug"wehaveeverfixed)
(3.0RC1:27July05,vexr1303,valgrindr4283).
(3.0.0:3August05,vexr1313,valgrindr4316).
Stablerelease2.4.1(1August2005)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(Thenotesforthisreleasehavebeenlost.Sorry!Itwouldhave
containedvariousbugfixesbutnonewfeatures.)
Stablerelease2.4.0(March2005)--CHANGESRELATIVETO2.2.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.4.0bringsmanysignificantchangesandbugfixes.Themost
significantuser-visiblechangeisthatwenolongersupplyourown
pthreadimplementation.Instead,Valgrindisfinallycapableof
runningthenativethreadlibrary,eitherLinuxThreadsorNPTL.
Thismeansourlibpthreadhasgone,alongwiththebugsassociated
withit.Valgrindnowsupportsthekernel'sthreadingsyscalls,and
letsyouuseyourstandardsystemlibpthread.Asaresult:
*Therearemanyfewersystemdependenciesandstrangelibrary-related
bugs.Thereisasmallperformanceimprovement,andalarge
stabilityimprovement.
*Onthedownside,ValgrindcannolongerreportmisusesofthePOSIX
PThreadsAPI.ItalsomeansthatHelgrindcurrentlydoesnotwork.
Wehopetofixtheseproblemsinafuturerelease.
NotethatrunningthenativethreadlibrariesdoesnotmeanValgrind
isabletoprovidegenuineconcurrentexecutiononSMPs.Westill
imposetherestrictionthatonlyonethreadisrunningatanygiven
time.
Therearemanyothersignificantchangestoo:
*Memcheckis(onceagain)thedefaulttool.
*Thedefaultstackbacktraceisnow12callframes,ratherthan4.
*Suppressionscanhaveupto25callframematches,ratherthan4.
*MemcheckandAddrcheckuselessmemory.Undersomecircumstances,
theynolongerallocateshadowmemoryiftherearelargeregionsof
memorywiththesameA/Vstates-suchasanmmapedfile.
*Thememory-leakdetectorinMemcheckandAddrcheckhasbeen
improved.Itnowreportsmoretypesofmemoryleak,including
leakedcycles.Whenreportingleakedmemory,itcandistinguish
betweendirectlyleakedmemory(memorywithnoreferences),and
indirectlyleakedmemory(memoryonlyreferredtobyotherleaked
memory).
*Memcheck'sconfusionovertheeffectofmprotect()hasbeenfixed:
previouslymprotectcoulderroneouslymarkundefineddataas
defined.
*Signalhandlingismuchimprovedandshouldbeveryclosetowhat
yougetwhenrunningnatively.
OneresultofthisisthatValgrindobserveschangestosigcontexts
passedtosignalhandlers.Suchmodificationswilltakeeffectwhen
thesignalreturns.Youwillneedtorunwith--single-step=yesto
makethisuseful.
*ValgrindisbuiltinPositionIndependentExecutable(PIE)formatif
yourtoolchainsupportsit.Thisallowsittotakeadvantageofall
theavailableaddressspaceonsystemswith4Gbyteuseraddress
spaces.
*Valgrindcannowrunitself(requiresPIEsupport).
*Syscallargumentsarenowcheckedforvalidity.Previouslyall
memoryusedbysyscallswaschecked,butnowtheactualvalues
passedarealsochecked.
*Syscallwrappersaremorerobustagainstbadaddressesbeingpassed
tosyscalls:theywillfailwithEFAULTratherthankillingValgrind
withSIGSEGV.
*Becauseclone()isdirectlysupported,somenon-pthreadusesofit
willwork.Partialsharing(wheresomeresourcesareshared,and
somearenot)isnotsupported.
*open()andreadlink()on/proc/self/exearesupported.
BUGSFIXED:
88520pipe+fork+dup2killsthemainprogram
88604 ValgrindAbortswhenusing$VALGRIND_OPTSanduserprogra...
88614 valgrind:vg_libpthread.c:2323(read):Assertion`read_pt...
88703 Stabsparserfailstohandle";"
88886 ioctlwrappersforTIOCMBISandTIOCMBIC
89032 valgrindpthread_cond_timedwaitfails
89106 the'impossible'happened
89139 Missingsched_setaffinity&sched_getaffinity
89198 valgrindlackssupportforSIOCSPGRPandSIOCGPGRP
89263 Missingioctltranslationsforscsi-genericandCDplaying
89440 tests/deadlock.clineendings
89481 `impossible'happened:EXECFAILED
89663 valgrind2.2.0crashonRedhat7.2
89792 Reportpthread_mutex_lock()deadlocksinsteadofreturnin...
90111 statvfs64givesinvaliderror/warning
90128 crash+memoryfaultwithstabsgeneratedbygnatforarun...
90778 VALGRIND_CHECK_DEFINED()notasdocumentedinmemcheck.h
90834 cachegrindcrashesatendofprogramwithoutreportingre...
91028 valgrind:vg_memory.c:229(vgPlain_unmap_range):Assertio...
91162 valgrindcrashwhiledebuggingdrivel1.2.1
91199 Unimplementedfunction
91325 Signalroutingdoesnotpropagatethesiginfostructure
91599 Assertion`cv==((void*)0)'
91604 rw_lookupclearsorigandsendstheNULLvaluetorw_new
91821 Smallproblemsbuildingvalgrindwith$top_builddirne$t...
91844 signal11(SIGSEGV)atget_tcb(libpthread.c:86)incorec...
92264 UNIMPLEMENTEDFUNCTION:pthread_condattr_setpshared
92331 per-targetflagsnecessitateAM_PROG_CC_C_O
92420 valgrinddoesn'tcompilewithlinux2.6.8.1/9
92513 Valgrind2.2.0generatessomewarningmessages
92528 vg_symtab2.c:170(addLoc):Assertion`loc->size>0'failed.
93096 unhandledioctl0x4B3Aand0x5601
93117 Toolandcoreinterfaceversionsdonotmatch
93128 Can'trunvalgrind--tool=memcheckbecauseofunimplement...
93174 Valgrindcancrashifpassedbadargstocertainsyscalls
93309 Stackframeinnewthreadisbadlyaligned
93328 Wrongtypesusedwithsys_sigprocmask()
93763 /usr/include/asm/msr.hismissing
93776 valgrind:vg_memory.c:508(vgPlain_find_map_space):Asser...
93810 fcntl()argumentcheckingabittoostrict
94378 Assertion`tst->sigqueue_head!=tst->sigqueue_tail'failed.
94429 valgrind2.2.0segfaultwithmmap64inglibc2.3.3
94645 Impossiblehappened:PINSRWmem
94953 valgrind:the`impossible'happened:SIGSEGV
95667 ValgrinddoesnotworkwithanyKDEapp
96243 Assertion'res==0'failed
96252 stage2loaderofvalgrindfailstoallocatememory
96520 Allprogramscrashingat_dl_start(in/lib/ld-2.3.3.so)...
96660 ioctlCDROMREADTOCENTRYcausesboguswarnings
96747 Afterloopinginasegfaulthandler,theimpossiblehappens
96923 ZerosizedarrayscrashvalgrindtracebackwithSIGFPE
96948 valgrindstopswithassertionfailureregardingmmap2
96966 valgrindfailswhenapplicationopensmorethan16sockets
97398 valgrind:vg_libpthread.c:2667Assertionfailed
97407 valgrind:vg_mylibc.c:1226(vgPlain_safe_fd):Assertion`...
97427 "Warning:invalidfiledescriptor-1insyscallclose()"...
97785 missingbacktrace
97792 buildinobjdirfails-autoconf/makefilecleanup
97880 pthread_mutex_lockfailsfromsharedlibrary(specialker...
97975 programabortswithoutangVGmessages
98129 Failedwhenopenandclosefile230000timesusingstdio
98175 Crasheswhenusingvalgrind-2.2.0withaprogramusingal...
98288 Massifbroken
98303 UNIMPLEMENTEDFUNCTIONpthread_condattr_setpshared
98630 failed--compilationmissingwarnings.pm,failstomakehe...
98756 Cannotvalgrindsignal-heavykdriveXserver
98966 valgrindingtheJVMfailswithasanitycheckassertion
99035 Valgrindcrasheswhileprofiling
99142 loopswithmessage"Signal11beingdroppedfromthread0...
99195 threadedappscrashonthreadstart(usingQThread::start...
99348 Assertion`vgPlain_lseek(core_fd,0,1)==phdrs[i].p_off...
99568 Falsenegativeduetomishandlingofmprotect
99738 valgrindmemcheckcrashesonprogramthatusessigitimer
99923 0-sizedallocationsarereportedasleaks
99949 programsegfaultsafterexit()
100036 "newSuperblock'srequestfor1048576bytesfailed"
100116 valgrind:(pthread_cond_init):Assertion`sizeof(*cond)...
100486 memcheckreports"valgrind:the`impossible'happened:V...
100833 secondcallto"mremap"failswithEINVAL
101156 (vgPlain_find_map_space):Assertion`(addr&((1<<12)-1...
101173 Assertion`recDepth>=0&&recDepth<500'failed
101291 creatingthreadsinaforkedprocessfails
101313 valgrindcausesdifferentbehaviorwhenresizingawindow...
101423 segfaultforc++arrayoffloats
101562 valgrindmassifdiesonSIGINTevenwithsignalhandlerr...
Stablerelease2.2.0(31August2004)--CHANGESRELATIVETO2.0.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.2.0bringsninemonthsworthofimprovementsandbugfixes.We
believeittobeaworthysuccessorto2.0.0.Thereareliterally
hundredsofbugfixesandminorimprovements.Therearealsosome
fairlymajoruser-visiblechanges:
*Acompleteoverhaulofhandlingofsystemcallsandsignals,and
theirinteractionwiththreads.Ingeneral,theaccuracyofthe
systemcall,threadandsignalsimulationsismuchimproved:
-Blockingsystemcallsbehaveexactlyastheydowhenrunning
natively(notonvalgrind).Thatis,ifasyscallblocksonlythe
callingthreadwhenrunningnatively,thanitbehavesthesameon
valgrind.NomoremysterioushangsbecauseVdoesn'tknowthatsome
syscallorother,shouldblockonlythecallingthread.
-Interruptedsyscallsshouldnowgivemorefaithfulresults.
-Signalcontextsinsignalhandlersaresupported.
*ImprovementstoNPTLsupporttotheextentthatVnowworks
properlyonNPTL-onlysetups.
*GreaterisolationbetweenValgrindandtheprogrambeingrun,so
theprogramislesslikelytoinadvertentlykillValgrindby
doingwildwrites.
*Massif:anewspaceprofilingtool.Tryit!It'scool,andit'll
tellyouindetailwhereandwhenyourC/C++codeisallocatingheap.
Drawspretty.pspicturesofmemoryuseagainsttime.Apotentially
powerfultoolformakingsenseofyourprogram'sspaceuse.
*Filedescriptorleakagechecks.Whenenabled,Valgrindwillprintout
alistofopenfiledescriptorsonexit.
*ImprovedSSE2/SSE3support.
*Time-stampedoutput;use--time-stamp=yes
Stablerelease2.2.0(31August2004)--CHANGESRELATIVETO2.1.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.2.0isnotmuchdifferentfrom2.1.2,releasedsevenweeksago.
Anumberofbugshavebeenfixed,mostnotably#85658,whichgave
problemsforquiteafewpeople.Therehavebeenmanyinternal
cleanups,butthosearenotuservisible.
Thefollowingbugshavebeenfixedsince2.1.2:
85658Assertincoregrind/vg_libpthread.c:2326(open64)!=
(void*)0failed
Thisbugwasreportedmultipletimes,andsothefollowing
duplicatesofitarealsofixed:87620,85796,85935,86065,
86919,86988,87917,88156
80716Semaphoremappingbugcausedbyunmap(sem_destroy)
(Wasfixedpriorto2.1.2)
86987semctlandshmctlsyscallsfamilyisnothandledproperly
86696valgrind2.1.2+RHAS2.1+librt
86730valgrindlocksupatendofrunwithassertionfailure
in__pthread_unwind
86641memcheckdoesn'tworkwithMesaOpenGL/ATIonSuse9.1
(alsofixes74298,aduplicateofthis)
85947MMX/SSEunhandledinstruction'sfence'
84978Wrongerror"Conditionaljumpormovedependson
uninitialisedvalue"resultingfrom"sbbl%reg,%reg"
86254ssort()failswhensignedintreturntypefromcomparisonis
toosmalltohandleresultofunsignedintsubtraction
87089memalign(4,xxx)makesvalgrindassert
86407Addsupportforlow-levelparallelportdriverioctls.
70587AddtimestampstoValgrindoutput?(wishlist)
84937vg_libpthread.c:2505(se_remap):Assertion`res==0'
(fixedpriorto2.1.2)
86317cannotloadlibSDL-1.2.so.0usingvalgrind
86989memcpyfrommac_replace_strmem.ccomplainsabout
uninitializedpointerspassedwhenlengthtocopyiszero
85811gnupascalsymbolcausessegmentationfault;okin2.0.0
79138writingtosbrk()'dmemorycausessegfault
77369scheddeadlockwhilesignalreceivedduringpthread_join
andthejoinedthreadexited
88115InsignalhandlerforSIGFPE,siginfo->si_addriswrong
underValgrind
78765MassifcrashesonappexitifFPexceptionsareenabled
Additionallytherearethefollowingchanges,whicharenot
connectedtoanybugreportnumbers,AFAICS:
*Fixscarybugcausingmis-identificationofSSEstoresvs
loadsandsocausingmemchecktosometimesgivenonsenseresults
onSSEcode.
*AddsupportforthePOSIXmessagequeuesystemcalls.
*Fixtoallow32-bitValgrindtorunonAMD64boxes.Note:thisdoes
NOTallowValgrindtoworkwith64-bitexecutables-onlywith32-bit
executablesonanAMD64box.
*Atconfiguretime,onlycheckwhetherlinux/mii.hcanbeprocessed
sothatwedon'tgenerateuglywarningsbytryingtocompileit.
*AddsupportforPOSIXclocksandtimers.
Developer(cvshead)release2.1.2(18July2004)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.1.2containsfourmonthsworthofbugfixesandrefinements.
Althoughofficiallyadeveloperrelease,webelieveittobestable
enoughforwidespreadday-to-dayuse.2.1.2isprettygood,sotryit
first,althoughthereisachanceitwon'twork.Ifsothentry2.0.0
andtelluswhatwentwrong."2.1.2fixesalotofproblemspresent
in2.0.0andisgenerallyamuchbetterproduct.
Relativeto2.1.1,alargenumberofminorproblemswith2.1.1have
beenfixed,andsoifyouuse2.1.1youshouldtry2.1.2.Usersof
thelaststablerelease,2.0.0,mightalsowanttotrythisrelease.
Thefollowingbugs,andprobablymanymore,havebeenfixed.These
arelistedathttp://bugs.kde.org.Reportingabugforvalgrindin
thehttp://bugs.kde.orgismuchmorelikelytogetyouafixthan
mailingdevelopersdirectly,sopleasecontinuetokeepsendingbugs
there.
76869CrasheswhenrunninganytoolunderFedoraCore2test1
Thisfixestheproblemwithreturningfromasignalhandler
whenVDSOsareturnedoffinFC2.
69508java1.4.2clientfailswitherroneous"stacksizetoosmall".
Thisfixmakesmoreofthepthreadstackattributerelated
functionsworkproperly.Javastilldoesn'tworkthough.
71906mallocalignmentshouldbe8,not4
Allmemoryreturnedbymalloc/newetcisnowatleast
8-bytealigned.
81970vg_alloc_ThreadState:nofreeslotsavailable
(closedbecausetheworkaroundissimple:increase
VG_N_THREADS,rebuildandtryagain.)
78514Conditionaljumpormovedependsonuninitializedvalue(s)
(aslightmishandingofFPcodeinmemcheck)
77952pThreadSupport(crash)(duetoinitialisation-orderingprobs)
(also85118)
80942Addrcheckwasn'tdoingoverlapcheckingasitshould.
78048returnNULLonmalloc/newetcfailure,insteadofasserting
73655operatornew()overrideinuser.sofilesoftendoesn'tgetpickedup
83060ValgrinddoesnothandlenativekernelAIO
69872Createpropercoredumpsafterfatalsignals
82026failurewithnewglibcversions:__libc_*functionsarenotexported
70344UNIMPLEMENTEDFUNCTION:tcdrain
81297Cancellationofpthread_cond_waitdoesnotrequiremutex
82872Usingdebuginfofromadditionalpackages(wishlist)
83025SupportforioctlsFIGETBSZandFIBMAP
83340SupportforioctlHDIO_GET_IDENTITY
79714Supportforthesemtimedopsystemcall.
77022SupportforioctlsFBIOGET_VSCREENINFOandFBIOGET_FSCREENINFO
82098hp2psansification(wishlist)
83573ValgrindSIGSEGVonexecve
82999showwhichcmdlineoptionwaserroneous(wishlist)
83040makevalgrindVPATHanddistcheck-clean(wishlist)
83998Assertion`newfd>vgPlain_max_fd'failed(seebelow)
82722Uncheckedmmapinas_padleadstomysteriousfailureslater
78958memchecksegfaultswhilerunningMozilla
85416Argumentswithcolon(e.g.--logsocket)ignored
Additionallytherearethefollowingchanges,whicharenot
connectedtoanybugreportnumbers,AFAICS:
*Rearrangedaddressspacelayoutrelativeto2.1.1,sothat
Valgrind/toolswillrunoutofmemorylaterthancurrentlyinmany
circumstances.Thisisgoodnewsesp.forCalltree.Itshould
bepossibleforclientprogramstoallocateover800MBof
memorywhenusingmemchecknow.
*Improvedcheckingwhenlayingoutmemory.Shouldhopefullyavoid
therandomsegmentationfaultsthat2.1.1sometimescaused.
*SupportforFedoraCore2andSuSE9.1.ImprovementstoNPTL
supporttotheextentthatVnowworksproperlyonNPTL-onlysetups.
*Renamedthefollowingoptions:
--logfile-fd-->--log-fd
--logfile-->--log-file
--logsocket-->--log-socket
tobeconsistentwitheachotherandotheroptions(esp.--input-fd).
*AddsupportforSIOCGMIIPHY,SIOCGMIIREGandSIOCSMIIREGioctlsand
improvethecheckingofotherinterfacerelatedioctls.
*Fixbuildingwithgcc-3.4.1.
*Removelimitonnumberofsemaphoressupported.
*Addsupportforsyscalls:set_tid_address(258),acct(51).
*Supportinstruction"repnemovs"--notofficialbutseemstooccur.
*Implementanemulatedsoftlimitforfiledescriptorsinadditionto
thecurrentreservedarea,whicheffectivelyactsasahardlimit.The
setrlimitsystemcallnowsimplyupdatestheemulatedlimitsasbest
aspossible-thehardlimitisnotallowedtomoveatallandjust
returnsEPERMifyoutryandchangeit.Thisshouldstopreductions
inthesoftlimitcausingassertionswhenvalgrindtriestoallocate
descriptorsfromthereservedarea.
(Thisactuallycamefrombug#83998).
*MajoroverhaulofCachegrindimplementation.Firstuser-visiblechange
isthatcachegrind.outfilesarenowtypically90%smallerthanthey
usedtobe;codeannotationtimesarecorrespondinglymuchsmaller.
Seconduser-visiblechangeisthathit/misscountsforcodethatis
unloadedatrun-timeisnolongerdumpedintoasingle"discard"pile,
butaccuratelypreserved.
*Clientrequestsfortellingvalgrindaboutmemorypools.
Developer(cvshead)release2.1.1(12March2004)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.1.1containssomeinternalstructuralchangesneededforV's
long-termfuture.Thesedon'taffectend-users.Mostnotable
user-visiblechangesare:
*GreaterisolationbetweenValgrindandtheprogrambeingrun,so
theprogramislesslikelytoinadvertentlykillValgrindby
doingwildwrites.
*Massif:anewspaceprofilingtool.Tryit!It'scool,andit'll
tellyouindetailwhereandwhenyourC/C++codeisallocatingheap.
Drawspretty.pspicturesofmemoryuseagainsttime.Apotentially
powerfultoolformakingsenseofyourprogram'sspaceuse.
*Fixesformanybugs,includingsupportformoreSSE2/SSE3instructions,
varioussignal/syscallthings,andvariousproblemswithdebug
inforeaders.
*Supportforglibc-2.3.3basedsystems.
Wearenowdoingautomaticovernightbuild-and-testrunsonavariety
ofdistros.Asaresult,webelieve2.1.1buildsandrunson:
RedHat7.2,7.3,8.0,9,FedoraCore1,SuSE8.2,SuSE9.
Thefollowingbugs,andprobablymanymore,havebeenfixed.These
arelistedathttp://bugs.kde.org.Reportingabugforvalgrindin
thehttp://bugs.kde.orgismuchmorelikelytogetyouafixthan
mailingdevelopersdirectly,sopleasecontinuetokeepsendingbugs
there.
69616glibc2.3.2w/NPTLismassivelydifferentthanwhatvalgrindexpects
69856Idon'tknowhowtoinstrumentMMXishstuff(Helgrind)
73892valgrindsegfaultsstartingwithObjective-Cdebuginfo
(fixforS-typestabs)
73145Valgrindcomplainstoomuchaboutclose(<reservedfd>)
73902ShadowmemoryallocationseemstofailonRedHat8.0
68633VG_N_SEMAPHOREStoolow(Vitselfwasleakingsemaphores)
75099impossibletotracemultiprocessprograms
76839the`impossible'happened:disInstr:INTbutnot0x80!
76762vg_to_ucode.c:3748(dis_push_segreg):Assertion`sz==4'failed.
76747cannotincludevalgrind.hinc++program
76223parsingB(3,10)gaveNULLtype=>impossiblehappens
75604shmdthandlingproblem
76416Problemswithgcc3.4snap20040225
75614using-gstabswhenbuildingyourprogramsthe`impossible'happened
75787PatchforsomeCDROMioctlsCDORM_GET_MCN,CDROM_SEND_PACKET,
75294gcc3.4snapshot'slibstdc++haveunsupportedinstructions.
(REPRET)
73326vg_symtab2.c:272(addScopeRange):Assertion`range->size>0'failed.
72596notrecognizing__libc_malloc
69489Wouldliketoattachdddtorunningprogram
72781Cachegrindcrasheswithkdeprograms
73055IllegaloperandatDXTCV11CompressBlockSSE2(moreSSEopcodes)
73026Descriptorleakcheckreportsportnumberswrongly
71705README_MISSING_SYSCALL_OR_IOCTLoutofdate
72643ImprovesupportforSSE/SSE2instructions
72484valgrindleavesit'sownsignalmaskinplacewhenexecing
72650SignalHandlingalwaysseemstorestartsystemcalls
72006ThemmapsystemcallturnsallerrorsinENOMEM
71781gdbattachisprettyuseless
71180unhandledinstructionbytes:0xF0xAE0x850xE8
69886writestozeropagecausevalgrindtoassertonexit
71791crashwhenvalgrindinggimp1.3(stabsreaderproblem)
69783unhandledsyscall:218
69782unhandledinstructionbytes:0x660xF0x2B0x80
70385valgrindfailsifthesoftfiledescriptorlimitisless
thanabout828
69529"rep;nop"shoulddoayield
70827programswithlotsofsharedlibrariesreport"mmapfailed"
forsomeofthemwhenreadingsymbols
71028glibc'sstrnlenisoptimisedenoughtoconfusevalgrind
Unstable(cvshead)release2.1.0(15December2003)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Forwhateverit'sworth,2.1.0actuallyseemsprettydarnstabletome
(Julian).Itlookseminentlyusable,andgiventhatitfixessome
significantbugs,maywellbeworthusingonaday-to-daybasis.
2.1.0isknowntobuildandpassregressiontestson:SuSE9,SuSE
8.2,RedHat8.
2.1.0mostnotablyincludesJeremyFitzhardinge'scompleteoverhaulof
handlingofsystemcallsandsignals,andtheirinteractionwith
threads.Ingeneral,theaccuracyofthesystemcall,threadand
signalsimulationsismuchimproved.Specifically:
-Blockingsystemcallsbehaveexactlyastheydowhenrunning
natively(notonvalgrind).Thatis,ifasyscallblocksonlythe
callingthreadwhenrunningnatively,thanitbehavesthesameon
valgrind.NomoremysterioushangsbecauseVdoesn'tknowthatsome
syscallorother,shouldblockonlythecallingthread.
-Interruptedsyscallsshouldnowgivemorefaithfulresults.
-Finally,signalcontextsinsignalhandlersaresupported.Asa
result,konqueroronSuSE9nolongersegfaultswhennotifiedof
filechangesindirectoriesitiswatching.
Otherchanges:
-RobertWalsh'sfiledescriptorleakagechecks.Whenenabled,
Valgrindwillprintoutalistofopenfiledescriptorson
exit.Alongwitheachfiledescriptor,Valgrindprintsoutastack
backtraceofwherethefilewasopenedandanydetailsrelatingtothe
filedescriptorsuchasthefilenameorsocketdetails.
Touse,give:--track-fds=yes
-ImplementedafewmoreSSE/SSE2instructions.
-Lesscrudonthestackwhenyoudo'where'insideaGDBattach.
-Fixedthefollowingbugs:
68360:Valgrinddoesnotcompileagainst2.6.0-testXkernels
68525:CVSheaddoesn'tcompileonC90compilers
68566:pkgconfigsupport(wishlist)
68588:Assertion`sz==4'failedinvg_to_ucode.c(disInstr)
69140:valgrindnotabletoexplicitlyspecifyapathtoabinary.
69432:helgrindassertsencounteringaMutexErrwhenthereare
EraserErrsuppressions
-Increasethemaxsizeofthetranslationcachefrom200kaveragebbs
to300kaveragebbs.ProgramsonthesizeofOOo(680m17)are
thrashingthecacheatthesmallersize,creatinglargenumbersof
retranslationsandwastingsignificanttimeasaresult.
Stablerelease2.0.0(5Nov2003)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.0.0improvesSSE/SSE2support,fixessomeminorbugs,and
improvessupportforSuSE9andtheRedHat"Severn"beta.
-FurtherimprovementstoSSE/SSE2support.Theentiretestsuiteof
theGNUScientificLibrary(gsl-1.4)compiledwithIntelIcc7.1
20030307Z'-g-O-xW'nowworks.Ithinkthisgivesprettygood
coverageofSSE/SSE2floatingpointinstructions,oratleastthe
subsetemittedbyIcc.
-Alsoaddedsupportforthefollowinginstructions:
MOVNTDQUCOMISDUNPCKLPSUNPCKHPSSQRTSS
PUSH/POP%{FS,GS},andPUSH%CS(Nb:thereisnoPOP%CS).
-CFIsupportforGDBversion6.NeededtoenablenewerGDBs
tofigureoutwheretheyarewhenusing--gdb-attach=yes.
-Fixthis:
mc_translate.c:1091(memcheck_instrument):Assertion
`u_in->size==4||u_in->size==16'failed.
-Returnanerrorratherthanpanicingwhengivenabadsocketcall.
-Fixcheckingofsyscallrt_sigtimedwait().
-Implement__NR_clock_gettime(syscall265).NeededonRedHatSevern.
-Fixedbuginoverlapcheckinstrncpy()--itwasassumingthesrcwas'n'
byteslong,whenitcouldbeshorter,whichcouldcausefalse
positives.
-Supportuseofselect()forverylargenumbersoffiledescriptors.
-Don'tfailsilentlyiftheexecutableisstaticallylinked,oris
setuid/setgid.Printanerrormessageinstead.
-SupportforoldDWARF-1formatlinenumberinfo.
Snapshot20031012(12October2003)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Threemonthsworthofbugfixes,roughly.Mostsignificantsingle
changeisimprovedSSE/SSE2support,mostlythankstoDirkMueller.
20031012buildsonRedHatFedora("Severn")butdoesn'treallywork
(curiously,mozillarunsOK,butamodest"ls-l"bombs).Ihopeto
getaworkingversionoutsoon.Itmayormaynotworkokonthe
forthcomingSuSE9;Ihearpositivenoisesaboutitbuthaven'tbeen
abletoverifythismyself(notuntilIgetholdofacopyof9).
Adetailedlistofchanges,innoparticularorder:
-Describe--gen-suppressionsintheFAQ.
-Syscall__NR_waitpidsupported.
-MinorMMXbugfix.
--vprintsprogram'sargv[]atstartup.
-Moreglibc-2.3suppressions.
-Suppressionsforstackunderrunbug(s)inthec++supportlibrary
distributedwithIntelIcc7.0.
-Fixproblemsreading/proc/self/maps.
-Fixacoupleofmessagesthatshouldhavebeensuppressedby-q,
butweren't.
-MakeAddrcheckunderstand"Overlap"suppressions.
-Atstartup,checkifprogramisstaticallylinkedandbailoutifso.
-Cachegrind:Auto-detectIntelPentium-M,alsoVIANehemiah
-Memcheck/addrcheck:minorspeedoptimisations
-Handlesyscall__NR_brkmorecorrectlythanbefore.
-Fixedincorrectallocate/freemismatcherrorswhenusing
operatornew(unsigned,std::nothrow_tconst&)
operatornew[](unsigned,std::nothrow_tconst&)
-SupportPOSIXpthreadspinlocks.
-Fixupsforcleancompilationwithgcc-3.3.1.
-Implementedmoreopcodes:
-push%es
-push%ds
-pop%es
-pop%ds
-movntq
-sfence
-pshufw
-pavgb
-ucomiss
-enter
-movimm32,%esp
-all"in"and"out"opcodes
-inc/dec%esp
-AwholebunchofSSE/SSE2instructions
-Memcheck:don'tbombonSSE/SSE2code.
Snapshot20030725(25July2003)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Fixessomeminorproblemsin20030716.
-Fixbugsinoverlapcheckingforstrcpy/memcpyetc.
-DooverlapcheckingwithAddrcheckaswellasMemcheck.
-Fixthis:
Memcheck:the`impossible'happened:
get_error_name:unexpectedtype
-Installheadersneededtocompilenewskins.
-RemoveleadingspacesandcolonintheLD_LIBRARY_PATH/LD_PRELOAD
passedtonon-tracedchildren.
-Fixfiledescriptorleakinvalgrind-listener.
-Fixlongstandingbuginwhichtheallocationpointofa
blockresizedbyreallocwasnotcorrectlyset.Thismay
havecausedconfusingerrormessages.
Snapshot20030716(16July2003)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20030716isasnapshotofourcurrentCVShead(development)branch.
Thisisthebranchwhichwillbecomevalgrind-2.0.Itcontains
significantenhancementsoverthe1.9.Xbranch.
DespitethisbeingasnapshotoftheCVShead,itisbelievedtobe
quitestable--atleastasstableas1.9.6or1.0.4,ifnotmoreso
--andthereforesuitableforwidespreaduse.Pleaseletusknowasap
ifitcausesproblemsforyou.
Tworeasonsforreleasingasnapshotnoware:
-It'sbeenawhilesince1.9.6,andthissnapshotfixes
variousproblemsthat1.9.6haswiththreadedprograms
onglibc-2.3.Xbasedsystems.
-Soastomakeavailableimprovementsinthe2.0line.
Majorchangesin20030716,ascomparedto1.9.6:
-Morefixestothreadingsupportonglibc-2.3.1and2.3.2-based
systems(SuSE8.2,RedHat9).Ifyouhavehadproblems
withinconsistent/illogicalbehaviouroferrno,h_errnoortheDNS
resolverfunctionsinthreadedprograms,20030716shouldimprove
matters.ThissnapshotseemsstableenoughtorunOpenOffice.org
1.1rconRedHat7.3,SuSE8.2andRedHat9,andthat'sabig
threadedappifeverIsawone.
-Automaticgenerationofsuppressionrecords;younolonger
needtowritethembyhand.Use--gen-suppressions=yes.
-strcpy/memcpy/etcchecktheirargumentsforoverlaps,when
runningwiththeMemcheckorAddrcheckskins.
-malloc_usable_size()isnowsupported.
-newclientrequests:
-VALGRIND_COUNT_ERRORS,VALGRIND_COUNT_LEAKS:
usefulwithregressiontesting
-VALGRIND_NON_SIMD_CALL[0123]:forrunningarbitraryfunctions
onrealCPU(usewithcaution!)
-TheGDBattachmechanismismoreflexible.AllowtheGDBto
beruntobespecifiedby--gdb-path=/path/to/gdb,andspecify
whichfiledescriptorVwillreaditsinputfromwith
--input-fd=<number>.
-Cachegrindgivesmoreaccurateresults(wasn'ttrackinginstructionsin
malloc()andfriendspreviously,isnow).
-CompletesupportfortheMMXinstructionset.
-PartialsupportfortheSSEandSSE2instructionsets.Workforthis
isongoing.AbouthalftheSSE/SSE2instructionsaredone,so
someSSEbasedprogramsmaywork.Currentlyyouneedtospecify
--skin=addrcheck.Basicallynotsuitableforrealuseyet.
-Significantspeedups(10%-20%)forstandardmemorychecking.
-Fixassertionfailureinpthread_once().
-Fixthis:
valgrind:vg_intercept.c:598(vgAllRoadsLeadToRome_select):
Assertion`ms_end>=ms_now'failed.
-Implementpthread_mutexattr_setpshared.
-UnderstandPentium4branchhints.Alsoimplementedacouplemore
obscurex86instructions.
-Lotsofotherminorbugfixes.
-Wehaveadecentregressiontestsystem,forthefirsttime.
Thisdoesn'thelpyoudirectly,butitdoesmakeitaloteasier
forustotrackthequalityofthesystem,especiallyacross
multiplelinuxdistributions.
Youcanruntheregressiontestswith'makeregtest'after'make
install'completes.OnSuSE8.2andRedHat9Igetthis:
==84tests,0stderrfailures,0stdoutfailures==
OnRedHat8,Igetthis:
==84tests,2stderrfailures,1stdoutfailure==
corecheck/tests/res_search(stdout)
memcheck/tests/sigaltstack(stderr)
sigaltstackisprobablyharmless.res_searchdoesn'twork
onRH8evenrunningnatively,soI'mnottooworried.
OnRedHat7.3,aglibc-2.2.5system,Igettheseharmlessfailures:
==84tests,2stderrfailures,1stdoutfailure==
corecheck/tests/pth_atfork1(stdout)
corecheck/tests/pth_atfork1(stderr)
memcheck/tests/sigaltstack(stderr)
YouneedtorunonaPIIsystem,atleast,sincesometests
containP6-specificinstructions,andthetestmachineneeds
accesstotheinternetsothatcorecheck/tests/res_search
(atestthattheDNSresolverworks)canfunction.
Asever,thanksforthevastamountoffeedback:)andbugreports:(
Wemaynotanswerallmessages,butwedoatleastlookatallof
them,andtendtofixthemostfrequentlyreportedbugs.
Version1.9.6(7May2003orthereabouts)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Majorchangesin1.9.6:
-Improvedthreadingsupportforglibc>=2.3.2(SuSE8.2,
RedHat9,tonamebuttwo...)Itturnedoutthat1.9.5
hadproblemswiththreadingsupportonglibc>=2.3.2,
usuallymanifestedbythreadedprogramsdeadlockinginsystemcalls,
orrunningunbelievablyslowly.Hopefullythesearefixednow.1.9.6
isthefirstvalgrindwhichgivesreasonablesupportfor
glibc-2.3.2.Alsofixeda2.3.2problemwithpthread_atfork().
-MajorlyexpandedFAQ.txt.We'veaddedworkaroundsforall
commonproblemsforwhichaworkaroundisknown.
Minorchangesin1.9.6:
-Fixidentificationofthemainthread'sstack.Incorrect
identificationofitwascausingsomeon-stackaddressestonotget
identifiedassuch.Thisonlyaffectedtheusefulnessofsomeerror
messages;thecorrectnessofthechecksmadeisunchanged.
-Supportforkernels>=2.5.68.
-Dummyimplementationsof__libc_current_sigrtmin,
__libc_current_sigrtmaxand__libc_allocate_rtsig,hopefully
goodenoughtokeepaliveprogramswhichpreviouslydiedforlackof
them.
-FixbugintheVALGRIND_DISCARD_TRANSLATIONSclientrequest.
-FixbugintheDWARF2debuglineinfoloader,wheninstructions
followingeachotherhavesourcelinesfarfromeachother
(e.g.withinlinedfunctions).
-Debuginforeading:readsymbolsfromboth"symtab"and"dynsym"
sections,ratherthanmerelyfromtheonethatcomeslastinthe
file.
-Newsyscallsupport:prctl(),creat(),lookup_dcookie().
-Whencheckingcallstoaccept(),recvfrom(),getsocketopt(),
don'tcomplainifbuffervaluesareNULL.
-Tryandavoidassertionfailuresin
mash_LD_PRELOAD_and_LD_LIBRARY_PATH.
-Minorbugfixesincg_annotate.
Version1.9.5(7April2003)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Itoccurstomethatitwouldbehelpfulforvalgrinduserstorecord
inthesourcedistributionthechangesineachrelease.SoInow
attempttomendmyerrantways:-)Changesinthisandfuturereleases
willbedocumentedintheNEWSfileinthesourcedistribution.
Majorchangesin1.9.5:
-(Criticalbugfix):FixabugintheFPUsimulation.Thiswas
causingsomefloatingpointconditionaltestsnottoworkright.
Severalpeoplereportedthis.Ifyouhadfloatingpointcodewhich
didn'tworkrighton1.9.1to1.9.4,it'sworthtrying1.9.5.
-PartialsupportforRedHat9.RH9usesthenewNativePosix
ThreadsLibrary(NPTL),insteadoftheolderLinuxThreads.
ThispotentiallycausesproblemswithVwhichwilltakesome
timetocorrect.Inthemeantimewehavepartiallyworkedaround
this,andso1.9.5worksonRH9.Threadedprogramsstillwork,
buttheymaydeadlock,becausesomesystemcalls(accept,read,
write,etc)whichshouldbenonblocking,infactdoblock.This
isaknownbugwhichwearelookinginto.
Ifyoucan,yourbestbet(unfortunately)istoavoidusing
1.9.5onaRedHat9system,oronanyNPTL-baseddistribution.
Ifyourglibcis2.3.1orearlier,you'realmostcertainlyOK.
Minorchangesin1.9.5:
-Addedsome#errorstovalgrind.htoensurepeopledon'tinclude
itaccidentallyintheirsources.Thisisachangefrom1.0.X
whichwasneverproperlydocumented.Therightthingtoinclude
isnowmemcheck.h.Somepeoplereportedproblemsandstrange
behaviourwhen(incorrectly)includingvalgrind.hincodewith
1.9.1--1.9.4.Thisisnolongerpossible.
-Addsome__extension__bitsandpiecessothatgccconfigured
forvalgrind-checkingcompilesevenwith-Werror.Ifyou
don'tunderstandthis,ignoreit.Ofinteresttogccdevelopers
only.
-Removedapointlesscheckwhichcausedproblemsinterworking
withClearcase.Vwouldcomplainaboutsharedobjectswhose
namesdidnotend".so",andrefusetorun.Thisisnowfixed.
Infactitwasfixedin1.9.4butnotdocumented.
-Fixedabugcausinganassertionfailureof"waiters==1"
somewhereinvg_scheduler.c,whenrunninglargethreadedapps,
notablyMySQL.
-Addsupportforthemunlocksystemcall(124).
Somecommentsaboutfuturereleases:
1.9.5is,wehope,themoststableValgrindsofar.Itprettymuch
supersedesthe1.0.Xbranch.Ifyouareavalgrindpackager,please
considermaking1.9.5availabletoyourusers.Youcanregardthe
1.0.Xbranchasobsolete:1.9.5isstableandvastlysuperior.There
arenoplansatallforfurtherreleasesofthe1.0.Xbranch.
Ifyouwantaleading-edgevalgrind,considerbuildingthecvshead
(fromSourceForge),orgettingasnapshotofit.Currentcoolstuff
goinginincludesMMXsupport(done);SSE/SSE2support(inprogress),
asignificant(10-20%)performanceimprovement(done),andtheusual
largecollectionofminorchanges.Hopefullywewillbeableto
improveourNPTLsupport,butnopromises.