Release3.13.0(15June2017)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.13.0isafeaturereleasewithmanyimprovementsandtheusualcollectionof
bugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM32/Linux,ARM64/Linux,
PPC32/Linux,PPC64BE/Linux,PPC64LE/Linux,S390X/Linux,MIPS32/Linux,
MIPS64/Linux,ARM/Android,ARM64/Android,MIPS32/Android,X86/Android,
X86/Solaris,AMD64/SolarisandAMD64/MacOSX10.12.
*====================CORECHANGES===================
*Thetranslationcachesizehasbeenincreasedtokeepupwiththedemandsof
largeapplications.Themaximumnumberofsectorshasincreasedfrom24to
48.Thedefaultnumberofsectorshasincreasedfrom16to32onall
targetsexceptAndroid,wheretheincreaseisfrom6to12.
*TheamountofmemorythatValgrindcanusehasbeenincreasedfrom64GBto
128GB.Inparticularthismeansyourapplicationcanallocateuptoabout
60GBwhenrunningonMemcheck.
*Valgrind'sdefaultloadaddresshasbeenchangedfrom0x3800'0000to
0x5800'0000,soastomakeitpossibletoloadlargerexecutables.This
shouldmakeitpossibletoloadexecutablesofsizeatleast1200MB.
*Amassivespaceleakcausedbyreadingcompresseddebuginfofileshasbeen
fixed.Valgrindshouldnowbeentirelyusablewithgcc-7.0"-gz"created
debuginfo.
*TheC++demanglerhasbeenupdated.
*SupportfordemanglingRustsymbolshasbeenadded.
*Anewrepresentationofstacktraces,the"XTree",hasbeenadded.AnXTree
isatreeofstacktraceswithdataassociatedwiththestacktraces.Thisis
usedbyvarioustools(Memcheck,Helgrind,Massif)toreportontheheap
consumptionofyourprogram.Reportingiscontrolledbythenewoptions
--xtree-memory=none|allocs|fulland--xtree-memory-file=<file>.
Areportcanalsobeproducedondemandusingthegdbservermonitorcommand
'xtmemory[<filename>]>'.TheXTreecanbeoutputin2formats:'callgrind
format'and'massifformat.Theexistingvisualisersfortheseformats(e.g.
callgrind_annotate,KCachegrind,ms_print)canbeusedtovisualiseand
analysethesereports.
MemcheckcanalsoproduceXTreeleakreportsusingtheCallgrindfile
format.Formoredetails,seetheusermanual.
*==================PLATFORMCHANGES=================
*ppc64:supportforISA3.0Bandvariousfixesforexisting3.0support
*amd64:fixesforJITfailureproblemsonlongAVX2codeblocks
*amd64andx86:supportforCETprefixeshasbeenadded
*arm32:afewmissingARMv8instructionshavebeenimplemented
*arm64,mips64,mips32:analternativeimplementationofLoad-Linkedand
Store-Conditionalinstructionshasbeenadded.Thisistodealwith
processorimplementationsthatimplementtheLL/SCspecificationsstrictly
andasaresultcauseValgrindtohangincertainsituations.The
alternativeimplementationisautomaticallyenabledatstartup,asrequired.
Youcanusetheoption--sim-hints=fallback-llsctoforce-enableitifyou
want.
*SupportforOSX10.12hasbeenimproved.
*OnLinux,clonehandlinghasbeenimprovedtohonourCLONE_VFORKthat
involvesachildstack.NotehoweverthatCLONE_VFORK|CLONE_VMishandled
likeCLONE_VFORK(byremovingCLONE_VM),soapplicationsthatdependon
CLONE_VMexactsemanticswill(still)notwork.
*TheTileGX/Linuxporthasbeenremovedbecauseitappearstobebothunused
andunsupported.
*====================TOOLCHANGES====================
*Memcheck:
-Memcheckshouldgivefewerfalsepositiveswhenrunningoptimised
Clang/LLVMgeneratedcode.
-Supportfor--xtree-memoryand'xtmemory[<filename>]>'.
-Newcommandlineoptions--xtree-leak=no|yesand--xtree-leak-file=<file>
toproducetheendofexecutionleakreportinaxtreecallgrindformat
file.
-Newoption'xtleak'inthememcheckleak_checkmonitorcommand,toproduce
theleakreportinanxtreefile.
*Massif:
-Supportfor--xtree-memoryand'xtmemory[<filename>]>'.
-Forsomeworkloads(typically,forbigapplications),Massifmemory
consumptionandCPUconsumptionhasdecreasedsignificantly.
*Helgrind:
-Supportfor--xtree-memoryand'xtmemory[<filename>]>'.
-additionofclientrequestVALGRIND_HG_GNAT_DEPENDENT_MASTER_JOIN,useful
forAdagnatcompiledapplications.
*====================OTHERCHANGES====================
*ForValgrinddevelopers:inanouter/innersetup,theouterValgrindwill
appendtheinnergueststacktracetotheinnerhoststacktrace.Thishelps
toinvestigatetheerrorsreportedbytheouter,whentheyarecausedbythe
innerguestprogram(suchasaninnerregtest).SeeREADME_DEVELOPERSfor
moreinfo.
*Toallowfastdetectionofcallgrindfilesbydesktopenvironmentsandfile
managers,theformatwasextendedtohaveanoptionalfirstlinethat
uniquelyidentifiestheformat("#callgrindformat").Callgrindcreates
thislinenow,asdoesthenewxtreefunctionality.
*Filenametemplatearguments(suchas--log-file,--xtree-memory-file,...)
haveanew%nformatletterthatisreplacedbyasequencenumber.
*"--version-v"nowshowstheSVNrevisionnumbersfromwhichValgrindwas
built.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
162848--log-fileoutputisn'tsplitwhenaprogramforks
340777Illegalinstructiononmips(ar71xx)
341481MIPS64:Iop_CmpNE32triggersfalsewarningonMIPS64platforms
342040ValgrindmishandlesclonewithCLONE_VFORK|CLONE_VMthatclones
toadifferentstack.
344139x86stack-segoverrides,neededbytheWinepeople
344524storeconditionalofguestapplicationsalwaysfail-observedon
Octeon3(MIPS)
348616Wine/valgrind:notedbutunhandledioctl0x5390[..](DVD_READ_STRUCT)
352395PleaseprovideSVNrevisioninfoin--version-v
352767Wine/valgrind:notedbutunhandledioctl0x5307[..](CDROMSTOP)
356374Assertion'DRD_(g_threadinfo)[tid].pt_threadid!=
INVALID_POSIX_THREADID'failed
358213helgrind/drdbar_badtestcasehangsorcrasheswithnewglibcpthread
barrierimplementation
358697valgrind.h:SomecoderemainsevenwhendefiningNVALGRIND
359202Addmusllibcconfigure/compile
360415amd64instructionsADCXandADOXarenotimplementedinVEX
==372828(vexamd64->IR:0x660xF0x3A0x620x4A0x10)
360429unhandledioctl0x530dwithnosize/directionhints(CDROMREADMODE1)
362223assertionfailedwhen.valgrindrcisadirectoryinsteadofafile
367543bt/btc/btr/btsx86/x86_64instructionsarepoorly-handledwrtflags
367942SegfaultvgPlain_do_sys_sigaction(m_signals.c:1138)
368507can'tmallocchunkslargerthanabout34GB
368529Androidarmtargetlinkerror,missingatexitandpthread_atfork
368863WARNING:unhandledarm64-linuxsyscall:100(get_robust_list)
368865WARNING:unhandledarm64-linuxsyscall:272(kcmp)
368868disInstr(arm64):unhandledinstruction0xD53BE000=cntfrq_el0(ARMv8)
368917WARNING:unhandledarm64-linuxsyscall:218(request_key)
368918WARNING:unhandledarm64-linuxsyscall:127(sched_rr_get_interval)
368922WARNING:unhandledarm64-linuxsyscall:161(sethostname)
368924WARNING:unhandledarm64-linuxsyscall:84(sync_file_range)
368925WARNING:unhandledarm64-linuxsyscall:130(tkill)
368926WARNING:unhandledarm64-linuxsyscall:97(unshare)
369459valgrindonarm64violatestheARMv8spec(ldxr/stxr)
370028ReducethenumberofcompilerwarningsonMIPSplatforms
370635arm64missingsyscallgetcpu
371225Fixorderoftimer_{gettime,getoverrun,settime}syscallsonarm64
371227CleanAArch64syscalltable
371412Renamewrap_sys_shmattosys_shmatlikeotherwrappers
371471Valgrindcomplainsaboutnonlegitmemoryleaksonplacementnew(C++)
371491handleAddrOverrides()is[incorrect]whenASOprefixisused
371503disInstr(arm64):unhandledinstruction0xF89F0000
371869support'%'insymbolZ-encoding
371916executiontreextreeconcept
372120c++demanglerdemanglessymbolswhicharenotc++
372185SupportofvalgrindonARMv8with32bitexecutable
372188vexamd64->IR:0x660xF0x3A0x620x4A0x100x100x48(PCMPxSTRx$0x10)
372195PowerPC,xxselinstructionisnotalwaysrecognized.
372504Hangingonexit_group
372600processloopsforeverwhenfatalsignalsarearrivingquickly
372794LibVEX(arm32frontend):'AssertionszBlg2<=3'failed
373046Stacksregisteredbycoreareneverderegistered
373069memcheck/tests/leak_cpp_interiorfailswithGCC5.1+
373086ImplementadditionalXenhypercalls
373192Callingposix_spawninglibc2.24completelybroken
373488SupportforfanotifyAPIonARM64architecture
==368864WARNING:unhandledarm64-linuxsyscall:262(fanotify_init)
373555RenameBBPTRtoGSPTRasitdenotesgueststatepointeronly
373938constIRExprargumentsformatchIRExpr()
374719somespellingfixes
374963increasevalgrind'sloadaddresstopreventmmapfailure
375514valgrind_get_tls_addr()doesnotworkincaseofstaticTLS
375772+1erroringet_elf_symbol_info()whencomputingvalueof'hi'address
forML_(find_rx_mapping)()
375806Testhelgrind/tests/tc22_exit_w_lockfailswithglibc2.24
375839Temporarystorageexhausted,withlongsequenceofvfmadd231psinsns
==377159"vex:the`impossible'happened"stillpresent
==375150Assertion'tres.status==VexTransOK'failed
==378068valgrindcrashesonAVX2functioninFFmpeg
376142SegfaultsonMIPSCaviumOcteonboards
376279disInstr(arm64):unhandledinstruction0xD50320FF
376455Solaris:unhandledsyscalllgrpsys(180)
376518Solaris:unhandledfasttrapgetlgrp(6)
376611ppc64andarm64don'tknowaboutprlimit64syscall
376729PPC64,removeR2fromtheclobberlist
==371668
376956syswrapofSNDDRVandDRM_IOCTL_VERSIONcausingsomeaddresses
tobewronglymarkedasaddressable
377066SomeValgrindunittestsfailtocompileonUbuntu16.10with
PIEenabledbydefault
377376memcheck/tests/linux/getregsetfailswithglibc2.24
377427PPC64,lxvinstructionfailingonodddestinationregister
377478PPC64:ISA3.0setupfixes
377698Missingmemorycheckforfutex()uaddrargforFUTEX_WAKE
andFUTEX_WAKE_BITSET,checkonly4argsforFUTEX_WAKE_BITSET,
and2argsforFUTEX_TRYLOCK_PI
377717Fixmassivespaceleakwhenreadingcompresseddebuginfosections
377891UpdateXen4.6domctlwrappers
377930fcntlsyscallwrapperismissingflockstructurecheck
378524libvexmultiarch_testregressionons390xandppc64
378535ValgrindreportsINTERNALERRORinexecvesyscallwrapper
378673Updatelibibertydemangler
378931AddISA3.0Badditionalisnstructions,addOV32,CA32settingsupport
379039syscallwrapperforprctl(PR_SET_NAME)mustnotcheckmorethan16bytes
379094ValgrindreportsINTERNALERRORinrt_sigsuspendsyscallwrapper
379371UNKNOWNtaskmessage[id3444,tomach_task_self(),reply0x603]
(task_register_dyld_image_infos)
379372UNKNOWNtaskmessage[id3447,tomach_task_self(),reply0x603]
(task_register_dyld_shared_cache_image_info)
379390unhandledsyscall:mach:70(host_create_mach_voucher_trap)
379473MIPS:addsupportforrdhwrcyclecounterregister
379504removeTileGX/Linuxport
379525Supportmorex86nopopcodes
379838disAMode(x86):notanaddr!
379703PCISA3.0fixes:stxvx,stxv,xscmpexpdpinstructions
379890arm:unhandledinstruction:0xEBAD0x1B05(sub.wfp,sp,r5,lsl#4)
379895clock_gettimedoesnotexecutePOSTsyscallwrapper
379925PPC64,mtffsdoesnotsettheFPCCandCbitsintheFPSCRcorrectly
379966WARNING:unhandledamd64-linuxsyscall:313(finit_module)
380200xtreegeneratedcallgrindfilesrefertofileswithoutdirectoryname
380202Assertionfailureforcachelinesize(cls==64)onaarch64.
380397s390x:__GI_strcspn()replacementneeded
n-i-bzFixpub_tool_basics.hbuildissuewithg++4.4.7.
(3.13.0.RC1:2June2017,vexr3386,valgrindr16434)
(3.13.0.RC2:9June2017,vexr3389,valgrindr16443)
(3.13.0:14June2017,vexr3396,valgrindr16446)
Release3.12.0(20October2016)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.12.0isafeaturereleasewithmanyimprovementsandtheusual
collectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM32/Linux,
ARM64/Linux,PPC32/Linux,PPC64BE/Linux,PPC64LE/Linux,S390X/Linux,
MIPS32/Linux,MIPS64/Linux,ARM/Android,ARM64/Android,
MIPS32/Android,X86/Android,X86/Solaris,AMD64/Solaris,X86/MacOSX
10.10andAMD64/MacOSX10.10.Thereisalsopreliminarysupportfor
X86/MacOSX10.11/12,AMD64/MacOSX10.11/12andTILEGX/Linux.
*==================PLATFORMCHANGES=================
*POWER:SupportforISA3.0hasbeenadded
*mips:supportforO32FPXXABIhasbeenadded.
*mips:improvedrecognitionofdifferentprocessors
*mips:determinationofpagesizenowdoneatruntime
*amd64:PartialsupportforAMDFMA4instructions.
*arm,arm64:Supportforv8cryptoandCRCinstructions.
*ImprovementsandrobustificationoftheSolarisport.
*PreliminarysupportforMacOS10.12(Sierra)hasbeenadded.
Whilst3.12.0continuestosupportthe32-bitx86instructionset,we
wouldpreferuserstomigrateto64-bitx86(a.k.aamd64orx86_64)
wherepossible.Valgrind'ssupportfor32-bitx86hasstagnatedin
recentyearsandhasfallenfarbehindthatfor64-bitx86
instructions.Bycontrast64-bitx86iswellsupported,uptoand
includingAVX2.
*====================TOOLCHANGES====================
*Memcheck:
-Addedmetamempoolsupportfordescribingacustomallocatorwhich:
-Auto-freesallchunksassumingthatdestroyingapooldestroysall
objectsinthepool
-Usesitselftoallocateothermemoryblocks
-Newflag--ignore-range-below-sptoignorememoryaccessesbelow
thestackpointer,ifyoureallyhaveto.Therelatedflag
--workaround-gcc296-bugs=yesisnowdeprecated.Use
--ignore-range-below-sp=1024-1asareplacement.
*DRD:
-Improvedthreadstartuptimesignificantlyonnon-Linuxplatforms.
*DHAT
-Addedcollectionofthemetric"tot-blocks-allocd"
*====================OTHERCHANGES====================
*Replacement/wrappingofmalloc/newrelatedfunctionsisnowdonenotjust
forsystemlibrariesbydefault,butforanygloballydefinedmalloc/new
relatedfunction(bothinsharedlibrariesandstaticallylinkedalternative
mallocimplementations).Thedynamic(runtime)linkerisexcluded,though.
Toonlyinterceptmalloc/newrelatedfunctionsin
systemlibrariesuse--soname-synonyms=somalloc=nouserintercepts(where
"nouserintercepts"canbeanynon-existinglibraryname).
ThisnewfunctionalityisnotimplementedforMacOSX.
*Themaximumnumberofcallersinasuppressionentryisnowequalto
themaximumsizefor--num-callers(500).
Notethat--gen-suppressions=yes|allsimilarlygeneratessuppressions
containingupto--num-callersframes.
*NewandmodifiedGDBservermonitorfeatures:
-Valgrind'sgdbservernowacceptsthecommand'catchsyscall'.
NotethatyoumusthaveGDB>=7.11touse'catchsyscall'with
gdbserver.
*Newoption--run-cxx-freeres=<yes|no>canbeusedtochangewhether
__gnu_cxx::__freeres()cleanupfunctioniscalledornot.Defaultis
'yes'.
*Valgrindisabletoreadcompresseddebuginfosectionsintwoformats:
-zlibELFgABIformatwithSHF_COMPRESSEDflag(gccoption-gz=zlib)
-zlibGNUformatwith.zdebugsections(gccoption-gz=zlib-gnu)
*ModestJIT-costimprovements:thecostofinstrumentingcodeblocks
forthemostcommonusecase(x86_64-linux,Memcheck)hasbeen
reducedby10%-15%.
*Improvedperformanceforprogramsthatdoalotofdiscardingof
instructionaddressrangesof8KBorless.
*TheC++symboldemanglerhasbeenupdated.
*MorerobustnessagainstinvalidsyscallparametersonLinux.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
191069ExitingduetosignalnotreportedinXMLoutput
199468Suppressions:stacksizelimitedto25
while--num-callersallowsmoreframes
212352vexamd64unhandledopc_aux=0x2,first_opcode==0xDC(FCOM)
278744cvtps2pdwithredundantRexW
303877valgrinddoesn'tsupportcompresseddebuginfosections.
345307Warningabout"stillreachable"memorywhenusinglibstdc++fromgcc5
348345Assertionfailsfornegativelineno
348924MIPS:LoaddoublesthroughmemorysothecodecompileswiththeFPXXABI
351282V3.10.1MIPSsoftfloatbuildbrokenwithGCC4.9.3/binutils2.25.1
351692Dumpscreatedbyvalgrindarenotreadablebygdb(mips32specific)
351804Crashongeneratingsuppressionsfor"printf"callonOSX10.10
352197mips:mmap2()notwrappedcorrectlyforpagesize>4096
353083arm64doesn'timplementvariousxattrsystemcalls
353084arm64doesn'tsupportsigpendingsystemcall
353137www:updateinfoforSupportedPlatforms
353138www:update"TheValgrindDevelopers"page
353370don'tadvertiseRDRANDincpuidforCore-i7-4910-likeavx2machine
==365325
==357873
353384amd64->IR:0x660xF0x3A0x620xD10x62(pcmpXstrX$0x62)
353398WARNING:unhandledamd64-solarissyscall:207
353660XMLinauxwhattagnotescapingreservedsymbolsproperly
353680s390x:Crashwithcertainglibcversionsduetonon-implementedTBEGIN
353727amd64->IR:0x660xF0x3A0x620xD10x72(pcmpXstrX$0x72)
353802ELFdebuginforeaderconfusedwithmultiple.rodatasections
353891Assert'bad_scanned_addr<VG_ROUNDDN(start+len,sizeof(Addr))'failed
353917unhandledamd64-solarissyscallfchdir(120)
353920unhandledamd64-solarissyscall:170
354274arm:unhandledinstruction:0xEBAD0x0AC1(sub.wsl,sp,r1,lsl#3)
354392unhandledamd64-solarissyscall:171
354797VbittestdoesnotincludeIopsforPower8instructionsupport
354883tst->os_state.pthread-magic_deltaassertionfailureonOSX10.11
==361351
==362920
==366222
354933Fixdocumentationof--kernel-variant=android-no-hw-tlsoption
355188valgrindshouldinterceptallmallocrelatedglobalfunctions
355454donotinterceptmallocrelatedsymbolsfromtheruntimelinker
355455stderr.expoftestcaseswrapmallocandwrapmallocstaticoverconstrained
356044Dwarflineinforeadermisinterpretsis_stmtregister
356112mips:replaceaddiwithaddiu
356393valgrind(vex)crashesbecauseisZeroUhappened
==363497
==364497
356676arm64-linux:unhandledsyscalls125,126(sched_get_priority_max/min)
356678arm64-linux:unhandledsyscall232(mincore)
356817valgrind.htriggerscompilererrorsonMSVCwhendefiningNVALGRIND
356823UnsupportedARMinstruction:stlex
357059x86/amd64:SSEcvtpi2pswithmemorysourcedoestransitiontoMMXstate
357338UnhandledinstructionforSHAinstructionslibcryptoBoringSSL
357673crashifItrytorunvalgrindwithabinarylinkwithlibcurl
357833SettingRLIMIT_DATAtozerobreakswithlinux4.5+
357871pthread_spin_destroynotproperlywrapped
357887CallstoVG_(fclose)donotclosethefiledescriptor
357932amd64->IR:acceptredundantREXprefixesfor{minsd,maxsd}m128,xmm.
358030supportdirectsocketcallsonx8632bit(newinlinux4.3)
358478drd/tests/std_thread.cppdoesn'tbuildwithGCC6
359133Assertion'eltSzB<=ddpa->poolSzB'failed
359181BufferOverflowduringDemangling
359201futexsyscall"skips"argument5ifopisFUTEX_WAIT_BITSET
359289s390x:popcnt(B9E1)notimplemented
359472ThePowerPCvsubuqminstructiondoesn'talwaysgivethecorrectresult
359503Addmissingsyscallsforaarch64(arm64)
359645"Youneedlibc6-dbg"helpmessagecouldbemorehelpful
359703s390:wireupseparatesocketcallssystemcalls
359724getsocknamemightcrash-deref_UIntshouldcallsafe_to_deref
359733amd64implementld.sostrchr/indexoverridelikex86
359767ValgrinddoesnotsupporttheIBMPOWERISA3.0instructions,part1/5
359829PowerPCtestsuitenone/tests/ppc64/test_isa_2_07.cuses
uninitializeddata
359838arm64:Unhandledinstruction0xD5033F5F(clrex)
359871Incorrectmaskhandlinginppoll
359952UnrecognisedPCMPESTRMvariants(0x70,0x19)
360008ContentsofPowervrregisterscontentsisnotprintedcorrectlywhen
the--vgdb-shadow-registers=yesoptionisused
360035POWERPCinstructionbcdaddandbcdsubtractgenerateresultwith
non-zeroshadowbits
360378arm64:Unhandledinstruction0x5E280844(sha1hs4,s2)
360425arm64unsupportedinstructionldpsw
==364435
360519none/tests/arm64/memory.vgtestmightfailwithnewergcc
360571ErrorabouttheAndroidRuntimereadingbelowthestackpointeronARM
360574Wrongparametertypeforanashmemioctl()callonAndroidandARM64
360749kludgeformultiple.rodatasectionsonSolarisnolongerneeded
360752raisethenumberofreservedfdsinm_main.cfrom10to12
361207ValgrinddoesnotsupporttheIBMPOWERISA3.0instructions,part2/5
361226s390x:risbgn(EC59)notimplemented
361253[s390x]ex_clone.c:42:undefinedreferenceto`pthread_create'
361354ppc64[le]:wireupseparatesocketcallssystemcalls
361615Inconsistentterminationformultithreadedprocessterminatedbysignal
361926UnhandledSolarissyscall:sysfs(84)
362009Vdumpscoreonunimplementedfunctionalitybeforethreadsarecreated
362329ValgrinddoesnotsupporttheIBMPOWERISA3.0instructions,part3/5
362894missing(broken)supportforwbitfieldonmtfsfiinstruction(ppc64)
362935[AsusWRT]Assertion'sizeof(TTEntryC)<=88'failed
362953RequestforanupdatetotheValgrindDeveloperspage
363680addrenameat2()support
363705arm64missingsyscallname_to_handle_atandopen_by_handle_at
363714ppc64missingsyscallssync,waitidandname_to/open_by_handle_at
363858ValgrinddoesnotsupporttheIBMPOWERISA3.0instructions,part4/5
364058clarifyinmanuallimitationsofarrayoverrunsdetections
364413pselectsycallwrappermishandlesNULLsigmask
364728PowerPC,missingsupportforseveralHWregistersin
get_otrack_shadow_offset_wrk()
364948ValgrinddoesnotsupporttheIBMPOWERISA3.0instructions,part5/5
365273Invalidwritetostacklocationreportedaftersignalhandlerruns
365912ppc64BEsegfaultduringjm-insnstest(RELRO)
366079FPXXSupportforMIPS32Valgrind
366138FixconfigureerrorsoutwhenusingXcode8(clang8.0.0)
366344MultipleunhandledinstructionforAarch64
(0x0EE0E020,0x1AC15800,0x4E284801,0x5E040023,0x5E056060)
367995Integrationofmemcheckwithcustommemoryallocator
368120x86_linuxasm_startfunctionsdonotkeep16-bytealignedstackpointer
368412Falsepositiveresultforaltiveccapabilitycheck
368416Addtc06_two_races_xml.expoutputforppc64
368419PerfEventsioctlsnotimplemented
368461mmapunmaptestfailsonppc64
368823run_a_thread_NORETURNassemblycodetypoforVGP_arm64_linuxtarget
369000AMD64fma4instructionsunsupported.
369169ppc64failsjm_int_isa_2_07test
369175jm_vec_isa_2_07testcrashesonppc64
369209valgrindloopsandeatsupallmemoryifcwddoesn'texist.
369356pre_mem_read_sockaddrsyscallwrappercancrashwithbadsockaddr
369359msghdr_foreachfieldcancrashwhenhandlingbadiovec
369360Badsigprocmaskoldornewsetscancrashvalgrind
369361vmsplicesyscallwrappercrashesonbadiovec
369362Badsigactionargumentscrashvalgrind
369383x86sys_modify_ldtwrappercrashesonbadptr
369402Badset/get_thread_areapointercrashesvalgrind
369441badlvecargumentcrashesprocess_vm_readv/writevsyscallwrappers
369446valgrindcrashesonunknownfcntlcommand
369439S390x:UnhandledinsnsRISBLG/RISBHGandLDE/LDER
369468RemovequadraticmetapoolalgorithmusingVG_(HT_remove_at_Iter)
370265ISA3.0HWcapstuffneedsupdating
371128BCDaddandsubtractinstructionsonPowerBEin32-bitmodedonotwork
372195PowerPC,xxselinstructionisnotalwaysrecognized
n-i-bzFixincorrect(orinfiniteloop)unwindonRHEL7x86andamd64
n-i-bzmassif--pages-as-heap=yesdoesnotreportpeakcausedbymmap+munmap
n-i-bzfalsepositiveleaksduetoaspacemgrmergingheap&nonheapsegments
n-i-bzFixppoll_alarmexclusiononOSX
n-i-bzDocumentbrksegmentlimitation,referencemanualinlimitreachedmsg.
n-i-bzFixclobberlistinnone/tests/amd64/xacq_xrel.c[valgrindr15737]
n-i-bzBumpallowedshiftvaluefor"add.wreg,sp,reg,lsl#N"[vexr3206]
n-i-bzamd64:memcheckfalsepositivewithshr%edx
n-i-bzarm3:AllowearlywritebackofSPbaseregisterin"strdrD,[sp,#-16]"
n-i-bzppc:FixtwocasesofPPCAvFpOpvsPPCFpOpenumconfusion
n-i-bzarm:Fixincorrectregister-numberconstraintcheckforLDAEX{,B,H,D}
n-i-bzDHAT:addedcollectionofthemetric"tot-blocks-allocd"
(3.12.0.RC1:20October2016,vexr3282,valgrindr16094)
(3.12.0.RC2:20October2016,vexr3282,valgrindr16096)
(3.12.0:21October2016,vexr3282,valgrindr16098)
Release3.11.0(22September2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.11.0isafeaturereleasewithmanyimprovementsandtheusual
collectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM32/Linux,
ARM64/Linux,PPC32/Linux,PPC64BE/Linux,PPC64LE/Linux,S390X/Linux,
MIPS32/Linux,MIPS64/Linux,ARM/Android,ARM64/Android,
MIPS32/Android,X86/Android,X86/Solaris,AMD64/Solaris,X86/MacOSX
10.10andAMD64/MacOSX10.10.Thereisalsopreliminarysupportfor
X86/MacOSX10.11,AMD64/MacOSX10.11andTILEGX/Linux.
*==================PLATFORMCHANGES=================
*SupportforSolaris/x86andSolaris/amd64hasbeenadded.
*PreliminarysupportforMacOSX10.11(ElCapitan)hasbeenadded.
*PreliminarysupportfortheTileraTileGXarchitecturehasbeenadded.
*s390x:Itisnowrequiredforthehosttohavethe"longdisplacement"
facility.Theoldestsupportedmachinemodelisz990.
*x86:onanSSE2onlyhost,Valgrindin32bitmodenowclaimstobea
Pentium4.3.10.1wronglyclaimedtobeaCore2,whichisSSSE3.
*TheJIT'sregisterallocatorissignificantlyfaster,makingtheJIT
asawholesomewhatfaster,soJIT-intensiveactivities,forexample
programstartup,aremodestlyfaster,around5%.
*Therehavebeenchangestothedefaultsettingsofseveralcommand
lineflags,asdetailedbelow.
*IntelAVX2supportismorecomplete(64bittargetsonly).OnAVX2
capablehosts,thesimulatedCPUIDwillnowindicateAVX2support.
*====================TOOLCHANGES====================
*Memcheck:
-Thedefaultvaluefor--leak-check-heuristicshasbeenchangedfrom
"none"to"all".Thishelpstoreducethenumberofpossibly
lostblocks,inparticularforC++applications.
-Thedefaultvaluefor--keep-stacktraceshasbeenchangedfrom
"malloc-then-free"to"malloc-and-free".Thishasasmallcostin
memory(onewordpermalloc-edblock)butallowsMemchecktoshowthe
3stacktracesofadanglingreference:wheretheblockwasallocated,
whereitwasfreed,andwhereitisacccessedafterbeingfreed.
-Thedefaultvaluefor--partial-loads-okhasbeenchangedfrom"no"to
"yes",soastoavoidfalsepositiveerrorsresultingfromsomekinds
ofvectorisedloops.
-Anewmonitorcommand'xb<addr><len>'showsthevaliditybitsof
<len>bytesat<addr>.Themonitorcommand'xb'iseasiertouse
thanget_vbitswhenyouneedtoassociatebytedatavaluewith
theircorrespondingvaliditybits.
-The'block_list'monitorcommandhasbeenenhanced:
oitcanprintarangeoflossrecords
oitnowacceptsanoptionalargument'limited<max_blocks>'
tocontrolthenumberofblocksprinted.
oifablockhasbeenfoundusingaheuristic,then
'block_list'nowshowstheheuristicaftertheblocksize.
othelossrecords/blockstoprintcanbelimitedtotheblocks
foundviaspecifiedheuristics.
-TheChelperfunctionsusedtoinstrumentloadson
x86-{linux,solaris}andarm-linux(both32-bitonly)havebeen
replacedbyhandwrittenassemblysequences.Thisgivesspeedups
intheregionof0%to7%forthosetargetsonly.
-Anewcommandlineoption,--expensive-definedness-checks=yes|no,
hasbeenadded.Thisisusefulforavoidingoccasionalinvalid
uninitialised-valueerrorsinoptimisedcode.Watchoutfor
runtimedegradation,asthiscanbeupto25%.Asalways,though,
theslowdownishighlyapplicationspecific.Thedefaultsetting
is"no".
*Massif:
-Anewmonitorcommand'all_snapshots<filename>'dumpsall
snapshotstakensofar.
*Helgrind:
-Significantmemoryreductionandmoderatespeedupsfor
--history-level=fullforapplicationsaccessingalotofmemory
withmanydifferentstacktraces.
-Thedefaultvaluefor--conflict-cache-size=Nhasbeendoubledto
2000000.Usersthatwerenotusingthedefaultvalueshould
preferablyalsodoublethevaluetheygive.
Thedefaultwaschangedduetothechangesinthe"fullhistory"
implementation.Doublingthevaluegivesonaverageaslightlymore
completehistoryandusessimilarmemory(orsignificantlylessmemory
intheworstcase)thanthepreviousimplementation.
-TheHelgrindmonitorcommand'infolocks'nowacceptsanoptional
argument'lock_addr',whichshowsinformationaboutthelockatthe
givenaddressonly.
-Whenusing--history-level=full,thenewHelgrindmonitorcommand
'accesshistory<addr>[<len>]'willshowtherecordedaccessesfor
<len>(or1)bytesat<addr>.
*====================OTHERCHANGES====================
*Thedefaultvalueforthe--smc-checkoptionhasbeenchangedfrom
"stack"to"all-non-file"ontargetsthatprovideautomaticD-I
cachecoherence(x86,amd64ands390x).Theresultistoprovide,
bydefault,transparentsupportforJITgeneratedandself-modifying
codeonalltargets.
*MacOSXonly:thedefaultvalueforthe--dsymutiloptionhasbeen
changedfrom"no"to"yes",sinceanyserioususageonMacOSX
alwaysrequiredittobe"yes".
*Thecommandlineoptions--db-attachand--db-commandhavebeenremoved.
Theyweredeprecatedin3.10.0.
*Whenaprocessdiesduetoasignal,Valgrindnowshowsthesignal
andthestacktraceatdefaultverbosity(i.e.verbosity1).
*TheaddressdescriptionlogicusedbyMemcheckandHelgrindnow
describesaddressesinanonymoussegments,filemmap-edsegments,
sharedmemorysegmentsandthebrkdatasegment.
*Thenewoption--error-markers=<begin>,<end>canbeusedtomarkthe
begin/endoferrorsintextualoutputmode,tofacilitate
searching/extractingerrorsinoutputfilesthatmixvalgrinderrors
withprogramoutput.
*Thenewoption--max-threads=<number>canbeusedtochangethenumber
ofthreadsvalgrindcanhandle.Thedefaultis500threadswhich
shouldbemorethanenoughformostapplications.
*Thenewoption--valgrind-stacksize=<number>canbeusedtochangethe
sizeoftheprivatethreadstacksusedbyValgrind.Thisisuseful
forreducingmemoryuseorincreasingthestacksizeifValgrind
segfaultsduetostackoverflow.
*Thenewoption--avg-transtab-entry-size=<number>canbeusedtospecify
theexpectedinstrumentedblocksize,eithertoreducememoryuseor
toavoidexcessiveretranslation.
*ValgrindcanbebuiltwithIntel'sICCcompiler,version14.0orlater.
*NewandmodifiedGDBservermonitorfeatures:
-WhenasignalisreportedinGDB,youcannowusetheGDBconvenience
variable$_siginfotoexaminedetailedsignalinformation.
-Valgrind'sgdbservernowallowstheusertochangethesignal
todelivertotheprocess.So,use'signalSIGNAL'tocontinueexecution
withSIGNALinsteadofthesignalreportedtoGDB.Use'signal0'to
continuewithoutpassingthesignaltotheprocess.
-WithGDB>=7.10,thecommand'targetremote'
willautomaticallyloadtheexecutablefileoftheprocessrunning
underValgrind.Thismeansyoudonotneedtospecifytheexecutable
fileyourself,GDBwilldiscoverititself.SeeGDBdocumentationabout
'qXfer:exec-file:read'packetformoreinfo.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
116002VG_(printf):Problemswithjustificationofstringsandintegers
155125avoidcuttingawayfile:linenoafterlongfunctionname
197259Unsupportedarch_prtctlPR_SET_GSoption
201152ppc64:Assertioninppc32g_dirtyhelper_MFSPR_268_269
201216FixValgrinddoesnotsupportpthread_sigmask()onOSX
201435FixDarwin:-vdoesnotshowkernelversion
208217"Warning:notedbutunhandledioctl0x2000747b"onMacOSX
211256Fixedanoutdatedcommentregardingthedefaultplatform.
211529IncompletecallstacksforcodecompiledbynewerversionsofMSVC
211926Avoidcompilationwarningsinvalgrind.hwith-pedantic
212291Fixunhandledsyscall:unix:132(mkfifo)onOSX
==263119
226609Creditingupstreamauthorsinmanpage
231257Valgrindomitspathwhenexecutingscriptfromshebangline
254164OSXtask_info:UNKNOWNtaskmessage[id3405,tomach_task_self()[..]
294065Improvethepdbfilereaderbyavoidinghardwiredabsolutepathnames
269360s390x:Fixaddressingmodeselectionforcompare-and-swap
302630Memcheck:Assertionfailed:'sizeof(UWord)==sizeof(UInt)'
==326797
312989ioctlhandlingneedstodoPOSThandlingongenericioctlsand[..]
319274Fixunhandledsyscall:unix:410(sigsuspend_nocancel)onOSX
324181mmapdoesnothandleMAP_32BIT(handleitnow,ratherthanfailit)
327745Fixvalgrind3.9.0buildfailsonMacOSX10.6.8
330147libmpiwrapPMPI_Get_countreturnsundefinedvalue
333051mmapofhugepagesfailsduetoincorrectalignment
==339163
334802valgrinddoesnotalwaysexplainwhyagivenoptionisbad
335618mov.wrN,pc/sp(ARM32)
335785amd64->IR0xC40xE20x750x2F(vmaskmovpd)
==307399
==343175
==342740
==346912
335907segfaultwhenrunningwine'sddrawex/tests/surface.cundervalgrind
338602AVX2bitinCPUIDmissing
338606Strangemessageforscriptswithinvalidinterpreter
338731ppc:Fixtestuitebuildfortoolchainsnotsupporting-maltivec
338995shmatwithhugepages(SHM_HUGETLB)failswithEINVAL
339045GettingvalgrindtocompileandrunonOSXYosemite(10.10)
==340252
339156gdbsrvnotcalledforfatalsignal
339215Valgrind3.10.0contain2013incopyrightsnotice
339288supportCaviumOcteonMIPSspecificBBIT*32instructions
339636Usefxsave64andfxrstor64mnemonicsinsteadofold-schoolrex64prefix
339442FixtestsuitebuildfailureonOSX10.9
339542EnablecompilationwithIntel'sICCcompiler
339563TheDVBdemuxDMX_STOPioctldoesn'thaveawrapper
339688Mac-specificASMdoesnotsupport.versiondirective(cpuid,
tronicalandpushfpopftests)
339745ValgrindcrashwhencheckMarmaladeapp(partialfix)
339755Fixknowndeliberatememoryleakinsetenv()onMacOSX10.9
339778Linux/TileGxplatformsupportforValgrind
339780Fixknownuninitialisedreadinpthread_rwlock_init()onMacOSX10.9
339789Fixnone/tests/execvetestonMacOSX10.9
339808Fixnone/tests/rlimit64_nofiletestonMacOSX10.9
339820vexamd64->IR:0x660xF0x3A0x630xA0x420x740x9(pcmpistri$0x42)
340115Fixnone/tests/cmdline[1|2]testsonsystemswhichdefineTMPDIR
340392Allowusertoselectmoreaccuratedefinednesscheckinginmemcheck
toavoidinvalidcomplaintsonoptimisedcode
340430Fixsomegrammaticalweirdnessinthemanual.
341238RecognizeGCC5/DWARFv5DW_LANGconstants(Go,C11,C++11,C++14)
341419Signalhandlerucontext_tnotfilledoutcorrectlyonOSX
341539VG_(describe_addr)shouldnotdescribeaddressasbelongingtoclient
segmentifitispasttheheapend
341613Enablebuildingofmanythreadsandthread-exitstestsonMacOSX
341615Fixnone/tests/darwin/access_extendedtestonMacOSX
341698Valgrind'sAESKEYGENASSISTgiveswrongresultinwords0and2[..]
341789aarch64:shmatfailswithvalgrindonARMv8
341997MIPS64:CaviumOCTEONinsns-immediateoperandhandledincorrectly
342008valgrind.hneedstypecast[..]forclang/llvmin64-bitmode
342038Unhandledsyscallsonaarch64(mbind/get/set_mempolicy)
342063wrongformatspecifierfortestmcblocklistsearchingdbserver_tests
342117HangwhenloadingPDBfileforMSVCcompiledFirefoxunderWine
342221socketconnectfalsepositiveuninitmemoryforunknownaffamily
342353Allowdumpingfullmassifoutputwhilevalgrindisstillrunning
342571ValgrindchokesonAVXcompareintrinsicwith_CMP_GE_QS
==346476
==348387
==350593
342603AddI2C_SMBUSioctlsupport
342635OSX10.10(Yosemite)-missingsystemcallsandfcntlcode
342683Markmemorypasttheinitialbrklimitasunaddressable
342783arm:unhandledinstruction0xEEFE1ACA="vcvt.s32.f32s3,s3,#12"
342795Internalglibc__GI_mempcpycallshouldbeintercepted
342841s390x:Supportinstructionsfiebr(a)andfidbr(a)
343012Unhandledsyscall319(memfd_create)
343069Patchupdatingv4l2APIsupport
343173helgrindcrashduringstackunwind
343219fixGET_STARTREGSforarm
343303Fixknowndeliberatememoryleakinsetenv()onMacOSX10.10
343306OSX10.10:UNKNOWNmach_msgunhandledMACH_SEND_TRAILERoption
343332Unhandledinstruction0x9E310021(fcvtmu)onaarch64
343335unhandledinstruction0x1E638400(fccmp)aarch64
343523OSXmach_ports_register:UNKNOWNtaskmessage[id3403,to[..]
343525OSXhost_get_special_port:UNKNOWNhostmessage[id412,to[..]
343597ppc64le:incorrectuseofoffseofmacro
343649OSXhost_create_mach_voucher:UNKNOWNhostmessage[id222,to[..]
343663OSX10.10Memchecjalwaysreportsaleakregardlessof[..]
343732Unhandledsyscall144(setgid)onaarch64
343733Unhandledsyscall187(msgctlandrelated)onaarch64
343802s390x:Falsepositive"conditionaljumpormovedependson[..]
343902--vgdb=yesdoesn'tbreakwhen--xml=yesisused
343967Don'twarnaboutsetuid/setgid/setcapexecutablefordirectories
343978RecognizeDWARF5/GCC5DW_LANG_Fortran2003and2008constants
344007accept4syscallunhandledonarm64(242)andppc64(344)
344033HelgrindonARM32losestrackofmutexstateinpthread_cond_wait
344054www-updateinfoforSolaris/illumos
344416'makeregtest'doesnotworkcleanlyonOSX
344235Removeduplicateincludeofpub_core_aspacemgr.h
344279syscallsendmmsgonarm64(269)andppc32/64(349)unhandled
344295syscallrecvmmsgonarm64(243)andppc32/64(343)unhandled
3443072unhandledsyscallsonaarch64/arm64:umount2(39),mount(40)
344314callgrind_annotate...warningsaboutcommandscontainingnewlines
344318socketcallshouldwraprecvmmsgandsendmmsg
344337Fixunhandledsyscall:mach:41(_kernelrpc_mach_port_guard_trap)
344416Fix'makeregtest'doesnotworkcleanlyonOSX
344499FixcompilationforLinuxkernel>=4.0.0
344512OSX:unhandledsyscall:unix:348(__pthread_chdir),
unix:349(__pthread_fchdir)
344559Garbagecollectionofunusedsegmentnamesinaddressspacemanager
344560FixstacktracesmissingpenultimateframeonOSX
344621Fixmemcheck/tests/err_disable4testonOSX
344686Fixsuppressionforpthread_rwlock_initonOSX10.10
344702FixmissinglibobjcsuppressionsonOSX10.10
==344543
344936Fixunhandledsyscall:unix:473(readlinkat)onOSX10.10
344939Fixmemcheck/tests/xml1onOSX10.10
345016helgrind/tests/locked_vs_unlocked2isfailingsometimes
345079FixbuildproblemsinVEX/useful/test_main.c
345126IncorrecthandlingofVIDIOC_G_AUDIOandG_AUDOUT
345177arm64:prfm(reg)notimplemented
345215Performanceimprovementsfortheregisterallocator
345248addsupportforSolarisOSinvalgrind
345338TIOCGSERIALandTIOCSSERIALioctlsupportonLinux
345394Fixmemcheck/tests/strchronOSX
345637Fixmemcheck/tests/sendmsgonOSX
345695AddPOWERPCsupportforAT_DCACHESIZEandHWCAP2
345824Fixaspacemsegmentmismatch:seenwithnone/tests/bigcode
345887Fixanassertionintheaddressspacemanager
345928amd64:callstackonlycontainscurrentfunctionforsmallstacks
345984disInstr(arm):unhandledinstruction:0xEE193F1E
345987MIPS64:ImplementcaviumLHXinstruction
346031MIPS:ImplementsupportfortheCvmCountregister(rhwr%0,31)
346185Fixtyposavingaltivecregisterv24
346267CompilerwarningsforPPC64codeoncalltoLibVEX_GuestPPC64_get_XER()
andLibVEX_GuestPPC64_get_CR()
346270Regressiontestsnone/tests/jm_vec/isa_2_07and
none/tests/test_isa_2_07_part2havefailuresonPPC64littleendian
346307fusefilesystemsyscalldeadlocks
346324PPC64missingsupportforlbarx,lharx,stbcxandsthcxinstructions
346411MIPS:SysRes::_valExhandlingisincorrect
346416AddsupportforLL_IOC_PATH2FIDandLL_IOC_GETPARENTLustreioctls
346474PPC64Power8,sprTEXASRUregisternotsupported
346487Compilergenerates"note"aboutafutureABIchangeforPPC64
346562MIPS64:lwl/lwrinstructionsareperforming64bitloads
andcausingspurious"invalidreadofsize8"warnings
346801FixlinkerroronOSX:_vgModuleLocal_sf_maybe_extend_stack
347151Fixsuppressionforpthread_rwlock_initonOSX10.8
347233Fixmemcheck/tests/strchronOSX10.10(Haswell)
347322PowerPCregressiontestcleanup
347379valgrind--leak-check=fullleakerrorsfromsystemlibsonOSX10.8
==217236
347389unhandledsyscall:373(LinuxARMsyncfs)
347686PatchsettocleanupPPC64regtests
347978Removebashdependencieswherenotneeded
347982OSX:undefinedsymbolsforarchitecturex86_64:"_global"[..]
347988Memcheck:the'impossible'happened:unexpectedsizeforAddr(OSX/wine)
==345929
348102Patchupdatingv4l2APIsupport
348247amd64frontend:jnojumpswronglywhenoverflowisnotset
348269ImprovemmapMAP_HUGETLBsupport.
348334(ppc)valgrinddoesnotsimulatedcbfl-thenmyprogramterminates
348345Assertionfailsfornegativelineno
348377UnsupportedARMinstruction:yield
348565Fixdetectionofcommandlineoptionavailabilityforclang
348574vexamd64->IRpcmpistriSSE4.2unsupported(pcmpistri$0x18)
348728FixbrokencheckforVIDIOC_G_ENC_INDEX
348748Fixredundantcondition
348890Fixclangwarningaboutunsupported--paraminline-unit-growth=900
348949Bogus"ERROR:--ignore-ranges:suspiciouslylargerange"
349034AddLustreioctlsLL_IOC_GROUP_LOCKandLL_IOC_GROUP_UNLOCK
349086FixUNKNOWNtaskmessage[id3406,tomach_task_self(),[..]
349087FixUNKNOWNtaskmessage[id3410,tomach_task_self(),[..]
349626ImplementedadditionalXenhypercalls
349769Clang/osx:ld:warning:-read_only_relocscannotbeusedwithx86_64
349790Cleanupofthehardwarecapabilitycheckingutilities.
349828memcpyinterceptsmemmovecausingsrc/dstoverlaperror(ppc64ld.so)
349874Fixtyposinsourcecode
349879memcheck:addhandwrittenassemblyforhelperc_LOADV*
349941di_notify_mmapmightcreatewrongstart/sizeDebugInfoMapping
350062vexx86->IR:0x660xF0x3A0xB(ROUNDSD)onOSX
350202Addlimitedparamto'monitorblock_list'
350290s390x:Supportinstructionsfixbr(a)
350359memcheck/tests/x86/fxsavehangsindefinetelyonOSX
350809Fixnone/tests/async-sigsforSolaris
350811Removereferenceto--db-attachwhichhasbeenremoved.
350813Memcheck/x86:enablehandwrittenassemblyhelpersforx86/Solaristoo
350854hard-to-understandcodeinVG_(load_ELF)()
351140arm64syscallssetuid(146)andsetresgid(149)notimplemented
351386Solaris:Cannotrunld.so.1underValgrind
351474FixVG_(iseqsigset)asobvious
351531Typoin/include/vki/vki-xen-physdev.hheaderguard
351756Interceptplatform_memchr$VARIANT$HaswellonOSX
351858ldsoexecsupportonSolaris
351873Newergccdoesn'tallow__builtin_tabortdc[i]inppc32mode
352130helgrindreportsfalseracesforprintfsusingmempcpyonFILE*state
352284s390:Conditionaljumpdependsonuninitialisedvalue(s)invfprintf
352320arm64crashonnone/tests/nestedfs
352765VbittestfailsonPower6
352768ThembarinstructionismissingfromthePowerPCsupport
352769PowerPCprogrampriorityregister(PPR)isnotsupported
n-i-bzProvideimplementationsofcertaincompilerbuiltinstosupport
compilersthatmaynotprovidethose
n-i-bzOldSTABScodeisstillbeingcompiled,butneverused.Removeit.
n-i-bzFixcompilationondistroswithglibc<2.5
n-i-bz(vex3098)AvoidgenerationofNeoninsnsonnon-Neonhosts
n-i-bzEnablert_sigpendingsyscallonppc64linux.
n-i-bzmremapdidnotworkproperlyonsharedmemory
n-i-bzFixincorrectsizeofexpressioninsyswrap-xen.creportedbyCoverity
n-i-bzInVALGRIND_PRINTFwriteoutthreadname,ifany,toxml
(3.11.0.TEST1:8September2015,vexr3187,valgrindr15646)
(3.11.0.TEST2:21September2015,vexr3193,valgrindr15667)
(3.11.0:22September2015,vexr3195,valgrindr15674)
Release3.10.1(25November2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.10.1isabugfixrelease.Itfixesvariousbugsreportedin3.10.0
andbackportsfixesforallreportedmissingAArch64ARMv8instructions
andsyscallsfromthetrunk.Ifyoupackageordeliver3.10.0forothers
touse,youmightwanttoconsiderupgradingto3.10.1instead.
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
335440arm64:ld1(singlestructure)isnotimplemented
335713arm64:unhandedinstruction:prfm(immediate)
339020ppc64:memcheck/tests/ppc64/power_ISA2_05failinginnightlybuild
339182ppc64:AvSplatoughttoloaddestinationvectorregisterwith[..]
339336PPC64storequadinstruction(stq)isnotsupposedtochange[..]
339433ppc64lxvw4xinstructionusesfour32-byteloads
339645Usecorrecttagnamesinsys_getdents/64wrappers
339706Fixfalsepositiveforioctl(TIOCSIG)onlinux
339721assertion'check_sibling==sibling'failedinreaddwarf3.c...
339853arm64timessyscallunknown
339855arm64unhandledgetsid/setsidsyscalls
339858arm64dmbsynotimplemented
339926Unhandledinstruction0x1E674001(frintx)onaarm64
339927Unhandledinstruction0x9E7100C6(fcvtmu)onaarch64
339938disInstr(arm64):unhandledinstruction0x4F8010A4(fmla)
==339950
339940arm64:unhandledsyscall:83(sys_fdatasync)+patch
340033arm64:unhandledinsndmbishldandsomeotherisb-dmb-dsbvariants
340028unhandledsyscallsforarm64(msync,pread64,setreuidandsetregid)
340036arm64:Unhandledinstructionld4(multiplestructures,nooffset)
340236arm64:unhandledsyscalls:mknodat,fchdir,chroot,fchownat
340509arm64:unhandledinstructionfcvtas
340630arm64:fchmod(52)andfchown(55)syscallsnotrecognized
340632arm64:unhandledinstructionfcvtas
340722Resolve"UNKNOWNattrlistflags0:0x10000000"
340725AVX2:Incorrectdecodingofvpbroadcast{b,w}reg,regforms
340788warning:unhandledsyscall:318(getrandom)
340807disInstr(arm):unhandledinstruction:0xEE989B20
340856disInstr(arm64):unhandledinstruction0x1E634C45(fcsel)
340922arm64:unhandledgetgroups/setgroupssyscalls
350251FixtypoinVEXutilityprogram(test_main.c).
350407arm64:unhandledinstructionucvtf(vector,integer)
350809none/tests/async-sigsbreakswhenrunundercrononSolaris
350811updateREADME.solarisafterr15445
350813Usehandwrittenmemcheckassemblyhelpersonx86/Solaris[..]
350854strangecodeinVG_(load_ELF)()
351140arm64syscallssetuid(146)andsetresgid(149)notimplemented
n-i-bzDRDandHelgrind:HandleImbe_CancelReservation(clrexonARM)
n-i-bzAddmissing]]toterminateCDATA.
n-i-bzGlibcversionspriorto2.5donotdefinePTRACE_GETSIGINFO
n-i-bzEnablesys_fadvise64_64onarm32.
n-i-bzAddtestcasesforallremainingAArch64SIMD,FPandmemoryinsns.
n-i-bzAddtestcasesforallknownarm64load/storeinstructions.
n-i-bzPRE(sys_openat):whencheckingwhetherARG1==VKI_AT_FDCWD[..]
n-i-bzAdddetectionofoldppc32magicinstructionsfrombug278808.
n-i-bzexp-dhat:Implementmissingfunction"dh_malloc_usable_size".
n-i-bzarm64:Implement"fcvtpuw,s".
n-i-bzarm64:implementADDPandvariousothers
n-i-bzarm64:Implement{S,U}CVTF(scalar,fixedpt).
n-i-bzarm64:enableFCVT{A,N}SX,S.
(3.10.1:25November2014,vexr3026,valgrindr14785)
Release3.10.0(10September2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.10.0isafeaturereleasewithmanyimprovementsandtheusual
collectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM32/Linux,ARM64/Linux,
PPC32/Linux,PPC64BE/Linux,PPC64LE/Linux,S390X/Linux,MIPS32/Linux,
MIPS64/Linux,ARM/Android,MIPS32/Android,X86/Android,X86/MacOSX10.9
andAMD64/MacOSX10.9.SupportforMacOSX10.8and10.9is
significantlyimprovedrelativetothe3.9.0release.
*==================PLATFORMCHANGES=================
*Supportforthe64-bitARMArchitecture(AArch64ARMv8).Thisport
ismostlycomplete,andisusable,butsomeSIMDinstructionsareas
yetunsupported.
*Supportforlittle-endianvariantofthe64-bitPOWERarchitecture.
*SupportforAndroidonMIPS32.
*Supportfor64bitFPUonMIPS32platforms.
*Both32-and64-bitexecutablesaresupportedonMacOSX10.8and10.9.
*ConfigurationforandrunningonAndroidtargetshaschanged.
SeeREADME.androidinthesourcetreefordetails.
*==================DEPRECATEDFEATURES=================
*--db-attachisnowdeprecatedandwillberemovedinthenext
valgrindfeaturerelease.Thebuilt-inGDBservercapabilitiesare
superiorandshouldbeusedinstead.Learnmorehere:
http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver
*====================TOOLCHANGES====================
*Memcheck:
-Clientcodecannowselectivelydisableandre-enablereportingof
invalidaddresserrorsinspecificrangesusingthenewclient
requestsVALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGEand
VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE.
-Leakchecker:thereisanewleakcheckheuristiccalled
"length64".Thisisusedtodetectinteriorpointerspointing8
bytesinsideablock,ontheassumptionthatthefirst8bytes
holdsthevalue"blocksize-8".Thisisusedby
sqlite3MemMalloc,forexample.
-Checkingofsystemcallparameters:ifasyscallparameter
(e.g.bindstructsockaddr,sendmsgstructmsghdr,...)has
severalfieldsnotinitialised,anerrorisnowreportedforeach
field.Previously,anerrorwasreportedonlyforthefirst
uninitialisedfield.
-Mismatchedalloc/freechecking:anewflag
--show-mismatched-frees=no|yes[yes]makesitpossibletoturnoff
suchchecksifnecessary.
*Helgrind:
-Improvementstoerrormessages:
oRaceconditionerrormessageinvolvingheapallocatedblocksalso
showthethreadnumberthatallocatedtheraced-onblock.
oAlllocksreferencedbyanerrormessagearenowannounced.
Previously,someerrormessagesonlyshowedthelockaddresses.
oThemessageindicatingwherealockwasfirstobservednowalso
describestheaddress/locationofthelock.
-HelgrindnowunderstandstheAdataskterminationrulesand
createsahappens-beforerelationshipbetweenaterminatedtask
anditsmaster.Thisavoidssomefalsepositivesandavoidsabig
memoryleakwhenalotofAdatasksarecreatedandterminated.
Theinterceptionsareonlyactivatedwithforthcomingreleasesof
gnatpro>=7.3.0w-20140611andgcc>=5.0.
-AnewGDBservermonitorcommand"infolocks"givingthelistof
locks,theirlocation,andtheirstatus.
*Callgrind:
-callgrind_controlnowsupportsthe--vgdb-prefixargument,
whichisneededifvalgrindwasstartedwiththissameargument.
*====================OTHERCHANGES====================
*Unwindingthroughinlinedfunctioncalls.Stackunwindingcannow
makeuseofDwarf3inlined-unwindinformationifitisavailable.
Thepracticaleffectisthatinlinedcallsbecomevisibleinstack
traces.Thesuppressionmatchingmachineryhasbeenadjusted
accordingly.Thisiscontrolledbythenewoption
--read-inline-info=yes|no.Currentlythisisenabledbydefault
onlyonLinuxandAndroidtargetsandonlyforthetoolsMemcheck,
HelgrindandDRD.
*ValgrindcannowreadEXIDXunwindinformationon32-bitARM
targets.IfanobjectcontainsbothCFIandEXIDXunwind
information,ValgrindwillprefertheCFIovertheEXIDX.This
facilitatesunwindingthroughsystemlibrariesonarm-android
targets.
*Addressdescriptionlogichasbeenimprovedandisnowcommon
betweenMemcheckandHelgrind,resultinginbetteraddress
descriptionsforsomekindsoferrormessages.
*Errormessagesaboutdubiousarguments(eg,tomallocorcalloc)are
outputlikeothererrors.Thismeansthattheycanbesuppressed
andtheyhaveastacktrace.
*TheC++demanglerhasbeenupdatedforbetterC++11support.
*NewandmodifiedGDBservermonitorfeatures:
-Threadlocalvariables/storage(__thread)cannowbedisplayed.
-TheGDBservermonitorcommand"v.infolocation<address>"
displaysinformationaboutanaddress.Theinformationproduced
dependsonthetoolandontheoptionsgiventovalgrind.
Possibly,thefollowingaredescribed:globalvariables,local
(stack)variables,allocatedorfreedblocks,...
-Theoption"--vgdb-stop-at=event1,event2,..."allowstheuserto
asktheGDBservertostopatthestartofprogramexecution,at
theendoftheprogramexecutionandonValgrindinternalerrors.
-Anewmonitorcommand"v.infostats"showsvariousValgrindcore
andtoolstatistics.
-Anewmonitorcommand"v.sethostvisibility"allowstheGDBserver
toprovideaccesstoValgrindinternalhoststatus/memory.
*Anewoption"--aspace-minaddr=<address>"caninsomesituations
allowtheuseofmorememorybydecreasingtheaddressabovewhich
Valgrindmapsmemory.Itcanalsobeusedtosolveaddress
conflictswithsystemlibrariesbyincreasingthedefaultvalue.
Seeusermanualfordetails.
*TheamountofmemoryusedbyValgrindtostoredebuginfo(unwind
info,linenumberinformationandsymboldata)hasbeen
significantlyreduced,eventhoughValgrindnowreadsmore
informationinordertosupportunwindingofinlinedfunctioncalls.
*Dwarf3handlingwith--read-var-info=yeshasbeenimproved:
-AdaandCstructcontainingVLAsnolongercausea"badDIE"error
-Codecompiledwith
-ffunction-sections-fdata-sections-Wl,--gc-sections
nolongercausesassertionfailures.
*Improvedcheckingforthe--sim-hints=and--kernel-variant=
options.Unknownstringsarenowdetectedandreportedtotheuser
asausageerror.
*Thesemanticsofstackstart/endboundariesinthevalgrind.h
VALGRIND_STACK_REGISTERclientrequesthasbeenclarifiedand
documented.Theconventionisthatstartandendarerespectively
thelowestandhighestaddressablebytesofthestack.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
175819Supportforipv6socketreportingwith--track-fds
232510makedistcheckfails
249435Analyzingwineprogramswithcallgrindtriggersacrash
278972supportforinlinedfunctioncallsinstacktracesandsuppression
==199144
291310FXSAVEinstructionmarksmemoryasundefinedonamd64
303536ioctlforSIOCETHTOOL(ethtool(8))isn'twrapped
308729vexx86->IR:unhandledinstructionbytes0xf0x5(syscall)
315199vgcorefileforthreadedappdoesnotshowwhichthreadcrashed
315952tun/tapioctlsarenotsupported
323178Unhandledinstruction:PLDWregister(ARM)
323179Unhandledinstruction:PLDWimmediate(ARM)
324050Helgrind:SEGVbecauseofunalignedstackwhenusingmovdqa
325110Addtest-casesforPowerISA2.06insns:divdo/divdo.anddivduo/divduo.
325124[MIPSEL]Compilationerror
325477Phase4supportforIBMPowerISA2.07
325538caviumocteonmips64,valgrindreported"dumpingcore"[...]
325628Phase5supportforIBMPowerISA2.07
325714EmptyvgcorebutRLIMIT_COREisbigenough(toobig)
325751MissingthetwoprivilegedPowerPCTransactionalMemoryInstructions
325816Phase6supportforIBMPowerISA2.07
325856MakeSGCheckfailgracefullyonunsupportedplatforms
326026Iopnamesforcountleadingzeros/signbitsincorrectlyimply[..]
326436DRD:Falsepositiveinlibstdc++std::list::push_back
326444CaviumMIPSOcteonSpecificLoadIndexedInstructions
326462Refactorvgdbtoisolateinvokerstuffintoseparatemodule
326469amd64->IR:0x660xF0x3A0x630xC10xE(pcmpistri0x0E)
326623DRD:falsepositiveconflictreportinafieldassignment
326724ValgrinddoesnotcompileonOSX1.9Mavericks
326816Interceptfor__strncpy_sse2_unalignedmissing?
326921coregrindfailstocompilem_trampoline.SwithMIPS/LinuxportofV
326983Cleardirectionflagaftertestsonamd64.
327212Donotprependthecurrentdirectorytoabsolutepathnames.
327223SupportforCaviumMIPSOcteonAtomicandCountInstructions
327238CallgrindAssertion'passed<=last_bb->cjmp_count'failed
327284s390x:Fixtranslationoftherisbginstruction
327639vexamd64->IRpcmpestriSSE4.2instructionisunsupported0x34
327837dwzcompressedalternate.debug_infoand.debug_strnotreadcorrectly
327916DW_TAG_typedefmayhavenoname
327943s390x:addaredirectionforthe'index'function
328100XABORTnotimplemented
328205ImplementadditionalXenhypercalls
328454addsupportBacktraceswithARMunwindtables(EXIDX)
328455s390x:SIGILLafteremittingwrongregisterpairforldxbr
328711valgrind.1manpage"memcheckoptions"sectionisbadlygenerated
328878vexamd64->IRpcmpestriSSE4.2instructionisunsupported0x14
329612IncorrecthandlingofAT_BASEforimageexecution
329694clangwarnsaboutusinguninitializedvariable
329956valgrindcrasheswhenlmw/stmwinstructionsareusedonppc64
330228mmapmustaligntoVKI_SHMLBAonmips32
330257LLVMdoesnotsupport`-mno-dynamic-no-pic`option
330319amd64->IR:unhandledinstructionbytes:0xF0x10xD5(xend)
330459--track-fds=yesdoesn'ttrackeventfds
330469Addclock_adjtimesyscallsupport
330594MissingsysallsonPowerPC/uClibc
330622AddtesttoregressionsuiteforPOWERinstruction:dcbzl
330939SupportforAMD'ssyscallinstructiononx86
==308729
330941TypoinPRE(poll)syscallwrapper
331057unhandledinstruction:0xEEE01B20(vfma.f64)(haspatch)
331254Fixexpectedoutputformemcheck/tests/dw4
331255Fixraceconditionintestnone/tests/coolo_sigaction
331257Fixtypeofjumpbufferintestnone/tests/faultstatus
331305configureusesbashspecificsyntax
331337s390xWARNING:unhandledsyscall:326(dup3)
331380Syscallparamtimer_create(evp)pointstouninitialisedbyte(s)
331476Patchtohandleioctl0x5422onLinux(x86andamd64)
331829Unexpectedioctlopcodesignextension
331830ppc64:WARNING:unhandledsyscall:96/97
331839drd/tests/sem_openspecifiesinvalidsemaphorename
331847outcomeofdrd/tests/thread_nameisnondeterministic
332037ValgrindcannothandleThumb"addpc,reg"
332055drdassertsonplatformswithVG_STACK_REDZONE_SZB==0and
consistencychecksenabled
332263interceptsforpthread_rwlock_timedrdlockand
pthread_rwlock_timedwrlockareincorrect
332265drdcoulddowithpost-rwlock_initandpre-rwlock_destroy
clientrequests
332276ImplementadditionalXenhypercalls
332658ldrd.wr1,r2,[PC,#imm]doesnotadjustfor32bitalignment
332765Fixms_printtocreatetemporaryfilesinaproperdirectory
333072drd:Addsemaphoreannotations
333145TestsformissalignedPC+#immaccessforarm
333228AAarch64Missinginstructionencoding:mrs%[reg],ctr_el0
333230AAarch64missinginstructionencodings:dc,ic,dsb.
333248WARNING:unhandledsyscall:unix:443
333428ldr.wpc[rD,#imm]instructionleadstoassertion
333501cachegrind:assertion:Cachesetcountisnotapoweroftwo.
==336577
==292281
333666RecognizeMPXinstructionsandbndprefix.
333788ValgrinddoesnotsupporttheCDROM_DISC_STATUSioctl(haspatch)
333817ValgrindreportsthememoryareaswrittentobytheSG_IO
ioctlasuntouched
334049lzcntfailssilently(x86_32)
334384ValgrinddoesnothavesupportLittleEndiansupportfor
IBMPOWERPPC64
334585recvmmsgunhandled(+patch)(arm)
334705sendmsgandrecvmsgshouldguardagainstbogusmsghdrfields.
334727Buildfailswith-Werror=format-security
334788clarifydocabout--log-fileinitialprogramdirectory
334834PPC64LittleEndiansupport,patch2
334836PPC64LittleEndiansupport,patch3testcasefixes
334936patchtofixfalsepositivesonalsaSNDRV_CTL_*ioctls
335034Unhandledioctl:HCIGETDEVLIST
335155vgdb,fixerrorprintstatement.
335262arm64:movi8bitversionisnotsupported
335263arm64:dmbinstructionisnotimplemented
335441unhandledioctl0x8905(SIOCATMARK)whenrunningwineundervalgrind
335496arm64:sbc/abcinstructionsarenotimplemented
335554arm64:unhandledinstruction:abs
335564arm64:unhandledinstruction:fcvtpuXn,Sn
335735arm64:unhandledinstruction:cnt
335736arm64:unhandledinstruction:uaddlv
335848arm64:unhandledinstruction:{s,u}cvtf
335902arm64:unhandledinstruction:sli
335903arm64:unhandledinstruction:umull(vector)
336055arm64:unhandledinstruction:mov(element)
336062arm64:unhandledinstruction:shrn{,2}
336139mip64:[...]valgrindhangsandspinsonasinglecore[...]
336189arm64:unhandledInstruction:mvn
336435Valgrindhangsinpthread_spin_lockconsuming100%CPU
336619valgrind--read-var-info=yesdoesn'thandleDW_TAG_restrict_type
336772Makemoansaboutunknownioctlsmoreinformative
336957AddasectionabouttheSolaris/illumosportonthewebpage
337094ifuncwrapperisbrokenonppc64
337285fcntlcommandsF_OFD_SETLK,F_OFD_SETLKW,andF_OFD_GETLKnotsupported
337528leakcheckheuristicforblockprefixedbylengthas64bitnumber
337740ImplementadditionalXenhypercalls
337762guest_arm64_toIR.c:4166(dis_ARM64_load_store):Assertion`0'failed.
337766arm64-linux:unhandledsyscallsmlock(228)andmlockall(230)
337871deprecate--db-attach
338023AddsupportforallV4L2/mediaioctls
338024inlinedfunctionsarenotshownifDW_AT_rangesisused
338106Addsupportfor'kcmp'syscall
338115DRD:computedconflictsetdiffersfromactualafterfork
338160implementdisplayofthreadlocalstorageingdbsrv
338205configure.acandcheckfor-Wno-tautological-compare
338300coredumpsaremissingonebyteofeverysegment
338445amd64vbit-testfailswithunknownopcodesusedbyarm64VEX
338499--sim-hintsparsingbrokenduetowrongorderintokens
338615suppressglibc2.20optimizedstrcmpimplementationforARMv7
338681Unabletounwindthroughclonethreadcreatedoni386-linux
338698raceconditionbetweengdbsrvandvgdbonstartup
338703helgrindonarm-linuxgetsfalsepositivesindynamicloader
338791altdwzfilescanberelativeofdebug/mainfile
338878onMacOS:assertion'VG_IS_PAGE_ALIGNED(clstack_end+1)'failed
338932buildV-trunkwithgcc-trunk
338974glibc2.20changedsizeofstructsigactionsa_flagsfieldons390
345079FixbuildproblemsinVEX/useful/test_main.c
n-i-bzFixKVM_CREATE_IRQCHIPioctlhandling
n-i-bzs390x:Fixmemorycorruptionformultithreadedapplications
n-i-bzvexarm->IR:allowPCasbasereginsomeLDRDcases
n-i-bzinternalerrorinValgrindifvgdbtransmitsignalswhenptraceinvoked
n-i-bzFixmingw64supportinvalgrind.h(dev@,9May2014)
n-i-bzdrdmanual:DocumenthowtoC++11programsthatuseclass"std::thread"
n-i-bzAddcommand-lineoption--default-suppressions
n-i-bzAddsupportforBLKDISCARDZEROESioctl
n-i-bzppc32/64:fixaregressionwiththemtfsb0/mtfsb1instructions
n-i-bzAddsupportfor sys_pivot_rootandsys_unshare
(3.10.0.BETA1:2September2014,vexr2940,valgrindr14428)
(3.10.0.BETA2:8September2014,vexr2950,valgrindr14503)
(3.10.0:10September2014,vexr2950,valgrindr14514)
Release3.9.0(31October2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.9.0isafeaturereleasewithmanyimprovementsandtheusual
collectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM/Linux,PPC32/Linux,
PPC64/Linux,S390X/Linux,MIPS32/Linux,MIPS64/Linux,ARM/Android,
X86/Android,X86/MacOSX10.7andAMD64/MacOSX10.7.Supportfor
MacOSX10.8issignificantlyimprovedrelativetothe3.8.0release.
*==================PLATFORMCHANGES=================
*SupportforMIPS64LEandBErunningLinux.Valgrindhasbeen
testedonMIPS64DebianSqueezeandDebianWheezydistributions.
*SupportforMIPSDSPASEonMIPS32platforms.
*Supportfors390xDecimalFloatingPointinstructionsonhoststhat
havetheDFPfacilityinstalled.
*SupportforPOWER8(PowerISA2.07)instructions
*SupportforIntelAVX2instructions.Thisisavailableonlyon64
bitcode.
*InitialsupportforIntelTransactionalSynchronizationExtensions,
bothRTMandHLE.
*InitialsupportforHardwareTransactionalMemoryonPOWER.
*ImprovedsupportforMacOSX10.8(64-bitonly).Memcheckcannow
runlargeGUIappstolerablywell.
*====================TOOLCHANGES====================
*Memcheck:
-Improvementsinhandlingofvectorisedcode,leadingto
significantlyfewerfalseerrorreports.Youneedtousetheflag
--partial-loads-ok=yestogetthebenefitsofthesechanges.
-Bettercontrolovertheleakchecker.Itisnowpossibleto
specifywhichleakkinds(definite/indirect/possible/reachable)
shouldbedisplayed,whichshouldberegardedaserrors,andwhich
shouldbesuppressedbyagivenleaksuppression.Thisisdone
usingtheoptions--show-leak-kinds=kind1,kind2,..,
--errors-for-leak-kinds=kind1,kind2,..andanoptional
"match-leak-kinds:"lineinsuppressionentries,respectively.
Notethatgeneratedleaksuppressionscontainthisnewlineand
arethereforemorespecificthaninpreviousreleases.Togetthe
samebehaviouraspreviousreleases,removethe"match-leak-kinds:"
linefromgeneratedsuppressionsbeforeusingthem.
-Reduced"possibleleak"reportsfromtheleakcheckerbytheuse
ofbetterheuristics.Theavailableheuristicsprovidedetection
ofvalidinteriorpointerstostd::stdstring,tonew[]allocated
arrayswithelementshavingdestructorsandtointeriorpointers
pointingtoaninnerpartofaC++objectusingmultiple
inheritance.Theycanbeselectedindividuallyusingthe
option--leak-check-heuristics=heur1,heur2,...
-Bettercontrolofstacktraceacquisitionforheap-allocated
blocks.Usingthe--keep-stacktracesoption,itispossibleto
controlindependentlywhetherastacktraceisacquiredforeach
allocationanddeallocation.Thiscanbeusedtocreatebetter
"useafterfree"errorsortodecreaseValgrind'sresource
consumptionbyrecordinglessinformation.
-Betterreportingofleaksuppressionusage.Thelistofused
suppressions(shownwhenthe-voptionisgiven)nowshows,for
eachleaksuppressions,howmanyblocksandbytesitsuppressed
duringthelastleaksearch.
*Helgrind:
-Falseerrorsresultingfromtheuseofstaticallyinitialised
mutexesandconditionvariables(PTHREAD_MUTEX_INITIALISER,etc)
havebeenremoved.
-Falseerrorsresultingfromtheuseofpthread_cond_waitsthat
timeout,havebeenremoved.
*====================OTHERCHANGES====================
*SomeattempttotuneValgrind'sspacerequirementstotheexpected
capabilitiesofthetarget:
-Thedefaultsizeofthetranslationcachehasbeenreducedfrom8
sectorsto6onAndroidplatforms,sinceeachsectoroccupies
about40MBwhenusingMemcheck.
-Thedefaultsizeofthetranslationcachehasbeenincreasedto16
sectorsonallotherplatforms,reflectingthefactthatlarge
applicationsrequireinstrumentationandstorageofhugeamounts
ofcode.Forsimilarreasons,thenumberofmemorymapped
segmentsthatcanbetrackedhasbeenincreasedbyafactorof6.
-Inallcases,themaximumnumberofsectorsinthetranslation
cachecanbecontrolledbythenewflag--num-transtab-sectors.
*Changesinhowdebuginfo(linenumbers,etc)isread:
-Valgrindnolongertemporarilymmapstheentireobjecttoread
fromit.Instead,readingisdonethroughasmallfixedsized
buffer.ThisavoidsvirtualmemoryusagespikeswhenValgrind
readsdebuginfofromlargesharedobjects.
-Anewexperimentalremotedebuginfoserver.Valgrindcanread
debuginfofromadifferentmachine(typically,abuildhost)
wheredebuginfoobjectsarestored.Thiscansavealotoftime
andhasslewhenrunningValgrindonresource-constrainedtargets
(phones,tablets)whenthefulldebuginfoobjectsarestored
somewhereelse.Thisisenabledbythe--debuginfo-server=
option.
-Consistencycheckingbetweenmainanddebugobjectscanbe
disabledusingthe--allow-mismatched-debuginfooption.
*Stackunwindingbystackscanning,onARM.Unwindingbystack
scanningcanrecoverstacktracesinsomecaseswhenthenormal
unwindmechanismsfail.Stackscanningisbestdescribedas"a
nasty,dangerousandmisleadinghack"andsoisdisabledbydefault.
Use--unw-stack-scan-threshand--unw-stack-scan-framestoenable
andcontrolit.
*Detectionandmergingofrecursivestackframecycles.Whenyour
programhasrecursivealgorithms,thislimitsthememoryusedby
Valgrindforrecordedstacktracesandavoidsrecording
uninterestingrepeatedcalls.Thisiscontrolledbythecommand
lineoption--merge-recursive-frameandbythemonitorcommand
"v.setmerge-recursive-frames".
*Filenameandlinenumbersforusedsuppressions.Thelistofused
suppressions(shownwhenthe-voptionisgiven)nowshows,foreach
usedsuppression,thefilenameandlinenumberwherethesuppression
isdefined.
*NewandmodifiedGDBservermonitorfeatures:
-valgrind.hhasanewclientrequest,VALGRIND_MONITOR_COMMAND,
thatcanbeusedtoexecutegdbservermonitorcommandsfromthe
clientprogram.
-Anewmonitorcommand,"v.infoopen_fds",thatgivesthelistof
openfiledescriptorsandadditionaldetails.
-Anoptionalmessageinthe"v.infon_errs_found"monitorcommand,
forexample"v.infon_errs_foundtest1234finished",allowinga
commentstringtobeaddedtotheprocessoutput,perhapsforthe
purposeofseparatingerrorsofdifferenttestsortestphases.
-Anewmonitorcommand"v.infoexecontext"thatshowsinformation
aboutthestacktracesrecordedbyValgrind.
-Anewmonitorcommand"v.doexpensive_sanity_check_general"torun
someinternalconsistencychecks.
*Newflag--sigill-diagnosticstocontrolwhetheradiagnostic
messageisprintedwhentheJITencountersaninstructionitcan't
translate.Theactualbehavior--deliveryofSIGILLtothe
application--isunchanged.
*ThemaximumamountofmemorythatValgrindcanuseon64bittargets
hasbeenincreasedfrom32GBto64GB.Thisshouldmakeitpossible
torunapplicationsonMemcheckthatnativelyrequireuptoabout35GB.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
123837systemcall:4thargumentisoptional,dependingoncmd
135425memcheckshouldtellyouwhereFreedblockswereMallocd
164485VG_N_SEGNAMESandVG_N_SEGMENTSare(still)toosmall
207815Addssomeofthedrmioctlstosyswrap-linux.c
251569vexamd64->IR:0xF0x10xF90xBF0x900xD00x30x0(RDTSCP)
252955Impossibletocompilewithccache
253519Memcheckreportsauxvpointeraccessesasinvalidreads.
263034CrashwhenloadingsomePPC64binaries
269599Increasedeepestbacktrace
274695s390x:Support"compareto/fromlogical"instructions(z196)
275800s390x:Autodetectcacheinfo(part2)
280271Valgrindreportspossiblememoryleaksonstill-reachablestd::string
284540Memcheckshouldn'tcountsuppressionsmatchingstill-reachable[..]
289578BacktraceswithARMunwindtables(stackscanflags)
296311Wrongstacktracesdueto-fomit-frame-pointer(x86)
304832ppc32:buildfailure
305431Usefind_buildidshdrfallbackforseparate.debugfiles
305728AddsupportforAVX2instructions
305948ppc64:codegenerationforShlD64/ShrD64asserts
306035s390x:FixIRgenerationforLAAGandfriends
306054s390x:Conditioncodecomputationforconvert-to-int/logical
306098s390x:alternateopcodeformforconvertto/fromfixed
306587FixcachelinedetectionfromauxiliaryvectorforPPC.
306783Mipsunhandledsyscall:4025/4079/4182
307038DWARF2CFIreader:unhandledDW_OP_opcode0x8(DW_OP_const1uetal)
307082HGfalsepositive:pthread_cond_destroy:destructionofunknownCV
307101sys_capgetsecondargumentcanbeNULL
307103sys_openat:Ifpathnameisabsolute,thendirfdisignored.
307106amd64->IR:f00fc002(lockxaddbyte)
307113s390x:DFPsupport
307141valgrinddoes'tworkinmips-linuxsystem
307155filter_gdbshouldfilteroutsyscall-template.ST_PSEUDO
307285x86_amd64featuretestforavxintestsuiteiswrong
307290memcheckoverlaptestcaseneedsmemcpyversionfilter
307463Pleaseadd"&limit=0"tothe"allopenbugs"link
307465--show-possibly-lost=noshouldreducetheerrorcount/exitcode
307557LeaksonMacOSX10.7.5librariesatImageLoader::recursiveInit[..]
307729pkgconfigsupportbrokenvalgrind.pc
307828MemcheckfalseerrorsSSEoptimizedwcscpy,wcscmp,wcsrchr,wcschr
307955Buildingvalgrind3.7.0-r4failsinGentooAMD64whenusingclang
308089Unhandledsyscallonppc64:prctl
308135PPC32MPC8xxhas16bytescachesize
308321testsuitememcheckfilterinterfereswithgdb_filter
308333==307106
308341vgdbshouldreportprocessexit(orfatalsignal)
308427s390memcheckreportstsearchcjump/cmovedependsonuninit
308495RemovebuilddependencyoninstalledXenheaders
308573Internalerroron64-bitinstructionexecutedin32-bitmode
308626==308627
308627pmovmskbvaliditybitpropagationisimprecise
308644vgdbcommandforhavingtheinfoforthetrack-fdsoption
308711givemoreinfoaboutaspacemgrandarenasinout_of_memory
308717ARM:implementfixed-pointVCVT.F64.[SU]32
308718ARMimplementSMLALBBfamilyofinstructions
308886MissingsupportforPTRACE_SET/GETREGSET
308930syscallname_to_handle_at(303onamd64)nothandled
309229V-bittesterdoesnotreportnumberoftestsgenerated
309323printunrecognizedinstuctiononMIPS
309425Providea--sigill-diagnosticsflagtosuppressillegal[..]
309427SSEoptimizedstpncpytriggeruninitialisedvalue[..]errors
309430Selfhostingppc64encountersavasserterroronoperandtype
309600valgrindisabitconfusedabout0-sizedsections
309823Generateerrorsforstillreachableblocks
309921PCMPISTRIvaliditybitpropagationisimprecise
309922none/tests/ppc64/test_dfp5sometimesfails
310169TheIop_CmpORDclassofIopsisnotsupportedbythevbitchecker.
310424--read-var-infodoesnotproperlydescribestaticvariables
310792searchadditionalpathfordebugsymbols
310931s390x:Message-securityassist(MSA)instructionextension[..]
311100PPCDFPimplementationoftheintegeroperandsisinconsistent[..]
311318ARM:"128-bitconstantisnotimplemented"errormessage
311407ssse3bcopy(actuallyconvertedmemcpy)causesinvalidread[..]
311690Vcrashesbecauseitredirectsbranchesinsideofaredirectedfunction
311880x86_64:makeregtesthangsatshell_valid1
311922WARNING:unhandledsyscall:170
311933==251569
312171ppc:insnselectionforDFP
312571RoundingmodecallwrongfortheDFPIops[..]
312620ChangetoIop_D32toD64[..]fors390DFPsupportbrokeppc[..]
312913Danglingpointerserrorshouldalsoreporttheallocstacktrace
312980BuildingonMountainLiongeneratessomecompilerwarnings
313267AddingMIPS64/LinuxporttoValgrind
313348==251569
313354==251569
313811Bufferoverflowinassert_fail
314099coveritypointedouterrorinVEXguest_ppc_toIR.cinsn_suffix
314269ppc:deadcodeininsnselection
314718ARM:implementintegerdivideinstruction(sdivandudiv)
315345cl-format.xmlandcallgrind/dump.cdon'tagreeonusingcfl=orcfi=
315441sendmsgsyscallshouldignoreunsetmsghdrmsg_flags
315534msgrcvinsideathreadcausesvalgrindtohang(block)
315545Assertion'(UChar*)sec->tt[tteNo].tcptr<=(UChar*)hcode'failed
315689disInstr(thumb):unhandledinstruction:0xF8520x0E10(LDRT)
315738disInstr(arm):unhandledinstruction:0xEEBE0BEE(vcvt.s32.f64)
315959valgrindmanpagehasbogusSGCHECK(andnoBBV)OPTIONSsection
316144valgrind.1manpagecontainsunknown???strings[..]
316145callgrindcommandlineoptionsinmanpagereference(unknown)[..]
316145callgrindcommandlineoptionsinmanpagereference[..]
316181drd:Fixeda4xslowdownforcertainapplications
316503ValgrinddoesnotsupportSSE4"movntdqa"instruction
316535Useof|signedint|insteadof|size_t|invalgrindmessages
316696fluidanimateprogramofparsec2.1stuck
316761syscallopen_by_handle_at(304onamd64,342onx86)nothandled
317091Use-Wl,-Ttext-segmentwhenstaticlinkingifpossible[..]
317186"Impossiblehappens"whenoccursVCVTinstructiononARM
317318SupportforThreadingBuildingBlocks"scalable_malloc"
317444amd64->IR:0xC40x410x2C0xC20xD20x8(vcmpeq_uqps)
317461FixBMIassemblerconfigurecheckandavx2/bmi/fmavgtestprereqs
317463bmitestcaseIRSANITYCHECKFAILURE
317506memcheck/tests/vbit-testfailswithunknownopcodeafter[..]
318050libmpiwrapfailstocompilewithout-of-sourcebuild
318203setsockopthandlingneedstohandleSOL_SOCKET/SO_ATTACH_FILTER
318643annotate_trace_memorytestsinfinitelooponarmandppc[..]
318773amd64->IR:0xF30x480x0F0xBC0xC20xC30x660x0F
318929Crashwith:disInstr(thumb):0xF3210x0001(ssat16)
318932AddmissingPPC64andPPC32systemcallsupport
319235--db-attach=yesisbrokenwithYama(ptracescoping)enabled
319395CrashwithunhandledinstructiononSTRT(Thumb)instructions
319494VEXMakefile-gccstandalonebuildupdateafterr2702
319505[MIPSEL]Crash:unhandledUNRAYoperator.
319858disInstr(thumb):unhandledinstructiononinstructionSTRBT
319932disInstr(thumb):unhandledinstructiononinstructionSTRHT
320057Problemswhenwetrytommapmorethan12memorypagesonMIPS32
320063MemoryfromPTRACE_GET_THREAD_AREAisreporteduninitialised
320083disInstr(thumb):unhandledinstructiononinstructionLDRBT
320116bindonAF_BLUETOOTHproduceswarningsbecauseofsockaddr_rcpadding
320131WARNING:unhandledsyscall:369onARM(prlimit64)
320211Stackbufferoverflowin./coregrind/m_main.cwithhugeTMPDIR
320661vgModuleLocal_read_elf_debug_info():"Assertion'!di->soname'
320895addfanotifysupport(patchincluded)
320998vexamd64->IRpcmpestriandpcmpestrmSSE4.2instruction
321065ValgrindupdatesforXen4.3
321148Unhandledinstruction:PLI(Thumb1,2,3)
321363Unhandledinstruction:SSAX(ARM+Thumb)
321364Unhandledinstruction:SXTAB16(ARM+Thumb)
321466Unhandledinstruction:SHASX(ARM+Thumb)
321467Unhandledinstruction:SHSAX(ARM+Thumb)
321468Unhandledinstruction:SHSUB16(ARM+Thumb)
321619Unhandledinstruction:SHSUB8(ARM+Thumb)
321620Unhandledinstruction:UASX(ARM+Thumb)
321621Unhandledinstruction:USAX(ARM+Thumb)
321692Unhandledinstruction:UQADD16(ARM+Thumb)
321693Unhandledinstruction:LDRSBT(Thumb)
321694Unhandledinstruction:UQASX(ARM+Thumb)
321696Unhandledinstruction:UQSAX(Thumb+ARM)
321697Unhandledinstruction:UHASX(ARM+Thumb)
321703Unhandledinstruction:UHSAX(ARM+Thumb)
321704Unhandledinstruction:REVSH(ARM+Thumb)
321730Addcg_diffandcg_mergemanpages
321738Addvgdbandvalgrind-listenermanpages
321814==315545
321891Unhandledinstruction:LDRHT(Thumb)
321960pthread_create()thenalloca()causinginvalidstackwriteerrors
321969ppc32andppc64don'tsupport[lf]setxattr
322254Showthreadnametogetherwithtidifsetbyapplication
322294AddinitialsupportforIBMPowerISA2.07
322368Assertionfailureinwqthread_hijackunderOSX10.8
322563vexmips->IR:0x700x830xF00x3A
322807VALGRIND_PRINTF_BACKTRACEwritescallstacktoxmlandtexttostderr
3228510bXXXbinaryliteralsyntaxisnotstandard
323035Unhandledinstruction:LDRSHT(Thumb)
323036Unhandledinstruction:SMMLS(ARMandThumb)
323116Thememcheck/tests/ppc64/power_ISA2_05.cfailstobuild[..]
323175Unhandledinstruction:SMLALD(ARM+Thumb)
323177Unhandledinstruction:SMLSLD(ARM+Thumb)
323432Callingpthread_cond_destroy()orpthread_mutex_destroy()[..]
323437Phase2supportforIBMPowerISA2.07
323713Supportmmxext(integersse)subsetoni386(athlon)
323803TransactionalmemoryinstructionsarenotsupportedforPower
323893SSE3notavailableonamdcpusinvalgrind
323905ProbablefalsepositivefromValgrind/drdonclose()
323912valgrind.hheaderisn'tcompatibleformingw64
324047Valgrinddoesn'tsupport[LDR,ST]{S}[B,H]TARMinstructions
324149helgrind:Whenpthread_cond_timedwaitreturnsETIMEDOUT[..]
324181mmapdoesnothandleMAP_32BIT
324227memcheckfalsepositiveleakwhenathreadcallsexit+block[..]
324421SupportforfanotifyAPIonARMarchitecture
324514gdbservermonitorcmdoutputbehaviourconsistency[..]
324518ppc64:Emulationofdcbtinstructionsdoesnothandle[..]
324546none/tests/ppc32test_isa_2_07_part2requests-m64
324582Whenaccessismadetofreedmemory,reportbothallocation[..]
324594FixoverflowcomputationforPowerISA2.06insns:mulldo/mulldo.
324765ppc64:illegalinstructionwhenexecutingnone/tests/ppc64/jm-misc
324816IncorrectVEXimplementationforxscvspdp/xvcvspdpforSNaNinputs
324834UnhandledinstructionsinMicrosoftCrun-timeforx86_64
324894Phase3supportforIBMPowerISA2.07
326091drd:Avoidfalseracereportsfromoptimizedstrlen()impls
326113valgrindlibvexhwcapserroronAMD64
n-i-bzSomewrongcommandlineoptionscouldbeignored
n-i-bzpatchtoallowfair-schedonandroid
n-i-bzreporterrorforvgdbsnapshotrequestedbeforeexecution
n-i-bzsameas303624(fixedin3.8.0),butforx86android
(3.9.0:31October2013,vexr2796,valgrindr13708)
Release3.8.1(19September2012)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.8.1isabugfixrelease.Itfixessomeassertionfailuresin3.8.0
thatoccurmoderatelyfrequentlyinrealusecases,addssupportfor
somemissinginstructionsonARM,andfixesadeadlockconditionon
MacOSX.Ifyoupackageordeliver3.8.0forotherstouse,youmight
wanttoconsiderupgradingto3.8.1instead.
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
284004==301281
289584Unhandledinstruction:0xF0x290xE5(MOVAPS)
295808amd64->IR:0xF30xF0xBC0xC0(TZCNT)
298281wcslencausesfalse(?)uninitialisedvaluewarnings
301281valgrindhangsonOSXwhentheprocesscallssystem()
304035disInstr(arm):unhandledinstruction0xE1023053
304867implementMOVBEinstructioninx86mode
304980Assertion'lo<=hi'failedinvgModuleLocal_find_rx_mapping
305042amd64:implement0F7Fencodingofmovqbetweentworegisters
305199ARM:implementQDADDandQDSUB
305321amd64->IR:0xF0xD0xC(prefetchw)
305513killedbyfatalsignal:SIGSEGV
305690DRDreportinginvalidsemaphorewhensem_trywaitfails
305926InvalidalignmentchecksforsomeAVXinstructions
306297disInstr(thumb):unhandledinstruction0xE8830x000C
3063103.8.0releasetarballmissingsomefiles
306612RHEL6glibc-2.Xdefaultsuppressionsneed/lib*/libc-*patterns
306664vexamd64->IR:0x660xF0x3A0x620xD10x460x660xF
n-i-bzshmatofasegment>4Gbdoesnotwork
n-i-bzsimulate_control_cscriptwrongUSR1signalnumberonmips
n-i-bzvgdbptracecallswrongonmips[...]
n-i-bzFixesformoreMPIfalsepositives
n-i-bzexp-sgcheck'smemcpycausesprogramstosegfault
n-i-bzOSXbuildw/clang:assertsatstartup
n-i-bzIncorrectundef'dnesspropforIop_DPBtoBCDandIop_BCDtoDPB
n-i-bzfixacoupleofuniontag-vs-fieldmixups
n-i-bzOSX:use__NR_poll_nocancelratherthan__NR_poll
Thefollowingbugswerefixedin3.8.0butnotlistedinthisNEWS
fileatthetime:
254088ValgrindshouldknowaboutUD2instruction
301280==254088
301902==254088
304754NEWSblowsTeX'slittlemind
(3.8.1:19September2012,vexr2537,valgrindr12996)
Release3.8.0(10August2012)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.8.0isafeaturereleasewithmanyimprovementsandtheusual
collectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM/Linux,PPC32/Linux,
PPC64/Linux,S390X/Linux,MIPS/Linux,ARM/Android,X86/Android,
X86/MacOSX10.6/10.7andAMD64/MacOSX10.6/10.7.Supportforrecent
distrosandtoolchaincomponents(glibc2.16,gcc4.7)hasbeenadded.
ThereisinitialsupportforMacOSX10.8,butitisnotusablefor
seriousworkatpresent.
*==================PLATFORMCHANGES=================
*SupportforMIPS32platformsrunningLinux.Valgrindhasbeen
testedonMIPS32andMIPS32r2platformsrunningdifferentDebian
SqueezeandMeeGodistributions.Bothlittle-endianandbig-endian
coresaresupported.ThetoolsMemcheck,MassifandLackeyhave
beentestedandareknowntowork.SeeREADME.mipsformoredetails.
*PreliminarysupportforAndroidrunningonx86.
*Preliminary(as-yetlargelyunusable)supportforMacOSX10.8.
*SupportforIntelAVXinstructionsandforAESinstructions.This
supportisavailableonlyfor64bitcode.
*SupportforPOWERDecimalFloatingPointinstructions.
*====================TOOLCHANGES====================
*Non-libcmallocimplementationsarenowsupported.Thisisuseful
fortoolsthatreplacemalloc(Memcheck,Massif,DRD,Helgrind).
Usingthenewoption--soname-synonyms,suchtoolscanbeinformed
thatthemallocimplementationiseitherlinkedstaticallyintothe
executable,orispresentinsomeothersharedlibrarydifferent
fromlibc.so.Thismakesitpossibletoprocessstaticallylinked
programs,andprogramsusingothermalloclibraries,forexample
TCMallocorJEMalloc.
*Fortoolsthatprovidetheirownreplacementformallocetal,the
option--redzone-size=<number>allowsuserstospecifythesizeof
thepaddingblocks(redzones)addedbeforeandaftereachclient
allocatedblock.Smallerredzonesdecreasethememoryneededby
Valgrind.Biggerredzonesincreasethechancetodetectblocks
overrunorunderrun.Priortothischange,theredzonesizewas
hardwiredto16bytesinMemcheck.
*Memcheck:
-Theleak_checkGDBservermonitorcommandnowcan
controlthemaximumnroflossrecordstooutput.
-Reductionofmemoryuseforapplicationsallocating
manyblocksand/orhavingmanypartiallydefinedbytes.
-AdditionofGDBservermonitorcommand'block_list'thatlists
theaddresses/sizesoftheblocksofaleaksearchlossrecord.
-AdditionofGDBservermonitorcommand'who_points_at'thatlists
thelocationspointingatablock.
-Ifaredzonesize>0isgiven,VALGRIND_MALLOCLIKE_BLOCKnowwill
detectaninvalidaccessoftheseredzones,bymarkingthem
noaccess.Similarly,ifaredzonesizeisgivenforamemory
pool,VALGRIND_MEMPOOL_ALLOCwillmarktheredzonesnoaccess.
Thisstillallowstofindsomebugsiftheuserhasforgottento
markthepoolsuperblocknoaccess.
-Performanceofmemoryleakcheckhasbeenimproved,especiallyin
caseswheretherearemanyleakedblocksand/ormanysuppression
rulesusedtosuppressleakreports.
-Reducednoise(falsepositive)levelonMacOSX10.6/10.7,dueto
morepreciseanalysis,whichisimportantforLLVM/Clang
generatedcode.Thisisatthecostofsomewhatreduced
performance.Notethereisnochangetoanalysisprecisionor
costsonLinuxtargets.
*DRD:
-Addedevenmorefacilitiesthatcanhelpfindingthecauseofadata
race,namelythecommand-lineoption--ptrace-addrandthemacro
DRD_STOP_TRACING_VAR(x).Moreinformationcanbefoundinthemanual.
-Fixedasubtlebugthatcouldcausefalsepositivedataracereports.
*====================OTHERCHANGES====================
*TheC++demanglerhasbeenupdatedsoastoworkwellwithC++
compiledbyuptoatleastg++4.6.
*Tooldeveloperscanmakereplacement/wrappingmoreflexiblethanks
tothenewoption--soname-synonyms.Thiswasreportedabove,but
infactisverygeneralandappliestoallfunction
replacement/wrapping,notjusttomalloc-familyfunctions.
*Round-robinschedulingofthreadscanbeselected,usingthenew
option--fair-sched=yes.Priortothischange,thepipe-based
threadserialisationmechanism(whichisstillthedefault)could
giveveryunfairscheduling.--fair-sched=yesimproves
responsivenessofinteractivemultithreadedapplications,and
improvesrepeatabilityofresultsfromthethreadcheckersHelgrind
andDRD.
*Fortooldevelopers:supporttorunValgrindonValgrindhasbeen
improved.WecannowroutinelyValgrindonHelgrindorMemcheck.
*gdbservernowshowsthefloatshadowregistersasinteger
ratherthanfloatvalues,astheshadowvaluesaremostly
usedasbitpatterns.
*Increasedlimitforthe--num-callerscommandlineflagto500.
*Performanceimprovementsforerrormatchingwhentherearemany
suppressionrecordsinuse.
*ImprovedsupportforDWARF4debugginginformation(bug284184).
*InitialsupportforDWZcompressedDwarfdebuginfo.
*ImprovedcontrolovertheIRoptimiser'shandlingofthetradeoff
betweenperformanceandprecisionofexceptions.Specifically,
--vex-iropt-precise-memory-exnshasbeenremovedandreplacedby
--vex-iropt-register-updates,withextendedfunctionality.This
allowstheValgrindgdbservertoalwaysshowuptodateregister
valuestoGDB.
*Modestperformancegainsthroughtheuseoftranslationchainingfor
JIT-generatedcode.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(https://bugs.kde.org/enter_bug.cgi?product=valgrind)rather
thanmailingthedevelopers(ormailinglists)directly--bugsthat
arenotenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
197914Buildingvalgrindfromsvnnowrequiresautomake-1.10
203877increaseto16Mbmaximumallowedalignmentformemalignetal
219156Handlestaticallylinkedmallocorothermalloclib(e.g.tcmalloc)
247386makeperfdoesnotrunallperformancetests
270006Valgrindschedulerunfair
270777AddingMIPS/LinuxporttoValgrind
270796s390x:RemovedbrokensupportfortheTSinsn
271438FixconfigureforproperSSE4.2detection
273114s390x:SupportTR,TRE,TROO,TROT,TRTO,andTRTTinstructions
273475AddsupportforAVXinstructions
274078improvedconfigurelogicformpicc
276993fixmremap'nothrashchecks'
278313Fedora15/x64:errreaddebuginfowith--read-var-info=yesflag
281482memcheckincorrectbyteallocationcountinrealloc()forsillyargument
282230groupallocatorforsmallfixedsize,useitforMC_Chunk/SEcvbit
283413Fixwrongsanitycheck
283671RobustizealignmentcomputationinLibVEX_Alloc
283961AddingsupportforsomeHCIIOCTLs
284124parse_type_DIE:confusedby:DWARF4
284864==273475(AddsupportforAVXinstructions)
285219Too-restrictiveconstraintsforThumb2"SPplus/minusregister"
285662(MacOSX):Memcheckneedstoreplacememcpy/memmove
285725==273475(AddsupportforAVXinstructions)
286261addwrapperforlinuxI2C_RDWRioctl
286270vgpreloadisnotfriendlyto64->32bitexecs,givesld.sowarnings
286374Runningcachegrindwith--branch-sim=yeson64-bitPowerPCprogramfails
286384configurefails"checkingforasupportedversionofgcc"
286497==273475(AddsupportforAVXinstructions)
286596==273475(AddsupportforAVXinstructions)
286917disInstr(arm):unhandledinstruction:QADD(alsoQSUB)
287175ARM:scalarVFPfixed-pointVCVTinstructionsnothandled
287260Incorrectconditionaljumpormovedependsonuninitialisedvalue(s)
287301vexamd64->IR:0x660xF0x380x410xC00xB80x00x0(PHMINPOSUW)
287307==273475(AddsupportforAVXinstructions)
287858VG_(strerror):unknownerror
288298(MacOSX)unhandledsyscallshm_unlink
288995==273475(AddsupportforAVXinstructions)
289470LoadingoflargeMach-Othinbinariesfails.
289656==273475(AddsupportforAVXinstructions)
289699vgdbconnectioninrelaymodeerroneouslyclosedduetobufferoverrun
289823==293754(PCMPxSTRxnotimplementedfor16-bitcharacters)
289839s390x:Providesupportforunicodeconversioninstructions
289939monitorcmd'leak_check'withdetailsaboutleakedorreachableblocks
290006memcheckdoesn'tmark%xmmasinitializedafter"pcmpeqw%xmm%xmm"
290655AddsupportforAESKEYGENASSISTinstruction
290719valgrind-3.7.0failswithautomake-1.11.2dueto"pkglibdir"usage
290974vgdbmustalignpagestoVKI_SHMLBA(16KB)onARM
291253ESregisternotinitialisedinvalgrindsimulation
291568Fix3DNOW-relatedcrasheswithbaselinex86_64CPU(wpatch)
291865s390x:Supportthe"CompareDoubleandSwap"familyofinstructions
292300==273475(AddsupportforAVXinstructions)
292430unrecognizedinstructionin__intel_get_new_mem_ops_cpuid
292493==273475(AddsupportforAVXinstructions)
292626MissingfcntlF_SETOWN_EXandF_GETOWN_EXsupport
292627MissingsupportforsomeSCSIioctls
292628none/tests/x86/bug125959-x86.ctriggersundefinedbehavior
292841==273475(AddsupportforAVXinstructions)
292993implementthegetcpusyscallonamd64-linux
292995Implementthe“crossmemoryattach”syscallsintroducedinLinux3.2
293088AddsomeVEXsanitychecksforppc64unhandledinstructions
293751==290655(AddsupportforAESKEYGENASSISTinstruction)
293754PCMPxSTRxnotimplementedfor16-bitcharacters
293755==293754(NotestsforPCMPxSTRxon16-bitcharacters)
293808CLFLUSHnotsupportedbylatestVEXforamd64
294047valgrinddoesnotcorrectlyemulateprlimit64(...,RLIMIT_NOFILE,...)
294048MPSADBWinstructionnotimplemented
294055regtestnone/tests/shellfailswhenlocaleisnotsettoC
294185INT0x44(andothers)notsupportedonx86guest,butusedbyJikesRVM
294190--vgdb-error=xxxcanbeoutofsyncwitherrorsshowntotheuser
294191amd64:fnsave/frstorand0x66sizeprefixesonFPinstructions
294260disInstr_AMD64:disInstrmiscalculatednext%rip
294523--partial-loads-ok=yescausesfalsenegatives
294617vexamd64->IR:0x660xF0x3A0xDF0xD10x10xE80x6A
294736vexamd64->IR:0x480xF0xD70xD60x480x83
294812patchallowingtorun(onx86atleast)helgrind/drdontool.
295089cannotannotatesourceforbothhelgrindanddrd
295221POWERProcessordecimalfloatingpointinstructionsupportmissing
295427buildingfori386withclangondarwin11requires"-new_linkerlinker"
295428coregrind/m_main.chasincorrectx86assemblyfordarwin
295590Helgrind:Assertion'cvi->nWaiters>0'failed
295617ARM-Addsomemissingsyscalls
295799Missing\nwithget_vbitsingdbserverwhenlineis%80[...]
296229Linuxuserinputdeviceioctlsmissingwrappers
296318ELFDebuginfoimprovements(morethanonerx/rwmapping)
296422Addtranslationchainingsupport
296457vexamd64->IR:0x660xF0x3A0xDF0xD10x10xE80x6A(dupofAES)
296792valgrind3.7.0:addSIOCSHWTSTAMP(0x89B0)ioctlwrapper
296983Fixbuildissuesonx86_64/ppc64without32-bittoolchains
297078gdbserversignalhandlingproblems[..]
297147drdfalsepositivesonnewlyallocatedmemory
297329disallowdecodingofIBMPowerDFPinsnsonsomemachines
297497POWERProcessordecimalfloatingpointinstructionsupportmissing
297701Anotheraliasforstrncasecmp_linlibc-2.13.so
297911'invalidwrite'notreportedwhenusingAPIsforcustommemallocators.
297976s390x:revisitEXimplementation
297991Valgrindinterfereswithmmap()+ftell()
297992SupportsystemsmissingWIFCONTINUED(e.g.pre-2.6.10Linux)
297993Fixcompilationofvalgrindwithgcc-g3.
298080POWERProcessorDFPsupportmissing,part3
298227==273475(AddsupportforAVXinstructions)
298335==273475(AddsupportforAVXinstructions)
298354UnhandledARMThumbinstruction0xEB0D0x0585(streq)
298394s390x:Don'tbailoutonanunknownmachinemodel.[..]
298421accept4()syscall(366)supportismissingforARM
298718vexamd64->IR:0xF0xB10xCB0x9C0x8F0x45
298732valgrindinstallationprobleminubuntuwithkernelversion3.x
298862POWERProcessorDFPinstructionsupportmissing,part4
298864DWARFreadermis-parsesDW_FORM_ref_addr
298943massifassertswith--pages-as-heap=yeswhenbrkischanging[..]
299053SupportDWARF4DW_AT_high_pcconstantform
299104==273475(AddsupportforAVXinstructions)
299316Helgrind:hg_main.c:628(map_threads_lookup):Assertion'thr'failed.
299629dup3()syscall(358)supportismissingforARM
299694POWERProcessorDFPinstructionsupportmissing,part5
299756Ignore--free-fillforMEMPOOL_FREEandFREELIKEclientrequests
299803==273475(AddsupportforAVXinstructions)
299804==273475(AddsupportforAVXinstructions)
299805==273475(AddsupportforAVXinstructions)
300140ARM-Missing(T1)SMMUL
300195==296318(ELFDebuginfoimprovements(morethanonerx/rwmapping))
300389Assertion`are_valid_hwcaps(VexArchAMD64,[..])'failed.
300414FCOMandFCOMPunimplementedforamd64guest
301204infiniteloopincanonicaliseSymtabwithifuncsymbol
301229==203877(increaseto16Mbmaximumallowedalignmentformemalignetc)
301265addx86supporttoAndroidbuild
301984configurescriptdoesn'tdetectcertainversionsofclang
302205FixcompilerwarningsforPOWERVEXcodeandPOWERtestcases
302287UnhandledmovbeinstructiononAtomprocessors
302370PPC:fnmadd,fnmsub,fnmadds,fnmsubsinsnsalwaysnegatetheresult
302536FixforthePOWERValgrindregressiontest:memcheck-ISA2.0.
302578Unrecognizedisntruction0xc50x320xc20xca0x09vcmpngess
302656==273475(AddsupportforAVXinstructions)
302709valgrindforARMneedsextratlssupportforandroidemulator[..]
302827addwrapperforCDROM_GET_CAPABILITY
302901Valgrindcrasheswithdwzoptimizeddebuginfo
302918Enabletestingofthevmaddfpandvnsubfpinstructionsinthetestsuite
303116AddsupportforthePOWERinstructionpopcntb
303127Powertestsuitefixesforfrsqrte,vrefp,andvrsqrtefpinstructions.
303250Assertion`instrs_in->arr_used<=10000'failedw/OpenSSLcode
303466==273475(AddsupportforAVXinstructions)
303624segmentationfaultonAndroid4.1(e.g.onGalaxyNexusOMAP)
303963strstr()functionproduceswrongresultsundervalgrindcallgrind
304054CALL_FN_xxmacrosneedtoenforcestackalignment
304561teesystemcallnotsupported
715750(MacOSX):Incorrectinvalid-addresserrorsnear0xFFFFxxxx(mozbug#)
n-i-bzAddmissinggdbserverxmlfilesforshadowregistersforppc32
n-i-bzBypassgcc4.4/4.5codegenbugscausingoutofmemoryorasserts
n-i-bzFixassertingdbserverforwatchpointswatchingthesameaddress
n-i-bzFixfalsepositiveinsys_cloneonamd64whenoptionalargs[..]
n-i-bzs390x:Shadowregisterscannowbeexaminedusingvgdb
(3.8.0-TEST3:9August2012,vexr2465,valgrindr12865)
(3.8.0:10August2012,vexr2465,valgrindr12866)
Release3.7.0(5November2011)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.7.0isafeaturereleasewithmanysignificantimprovementsandthe
usualcollectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM/Linux,PPC32/Linux,
PPC64/Linux,S390X/Linux,ARM/Android,X86/DarwinandAMD64/Darwin.
Supportforrecentdistrosandtoolchaincomponents(glibc2.14,gcc
4.6,MacOSX10.7)hasbeenadded.
*==================PLATFORMCHANGES=================
*SupportforIBMz/Architecture(s390x)runningLinux.Valgrindcan
analyse64-bitprogramsrunningonz/Architecture.Mostuserspace
instructionsuptoandincludingz10aresupported.Valgrindhas
beentestedextensivelyonz9,z10,andz196machinesrunningSLES
10/11,RedHat5/6m,andFedora.TheMemcheckandMassiftoolsare
knowntoworkwell.Callgrind,Helgrind,andDRDworkreasonably
wellonz9andlatermodels.SeeREADME.s390formoredetails.
*PreliminarysupportforMacOSX10.7andXCode4.Both32-and
64-bitprocessesaresupported.Somecomplexthreadedapplications
(Firefox)areobservedtohangwhenrunas32bitapplications,
whereas64-bitversionsrunOK.Thecauseisunknown.Memcheck
willlikelyreportsomefalseerrors.Ingeneral,expectsomerough
spots.ThisreleasealsosupportsMacOSX10.6,butdropssupport
for10.5.
*PreliminarysupportforAndroid(onARM).Valgrindcannowrun
largeapplications(eg,Firefox)on(eg)aSamsungNexusS.See
README.androidformoredetails,plusinstructionsonhowtoget
started.
*SupportfortheIBMPowerISA2.06(Power7instructions)
*GeneralcorrectnessandperformanceimprovementsforARM/Linux,and,
byextension,ARM/Android.
*FurthersolidificationofsupportforSSE4.2in64-bitmode.AVX
instructionsetsupportisunderdevelopmentbutisnotavailablein
thisrelease.
*SupportforAIX5hasbeenremoved.
*====================TOOLCHANGES====================
*Memcheck:someincrementalchanges:
-reductionofmemoryuseinsomecircumstances
-improvedhandlingoffreedmemory,whichinsomecircumstances
cancausedetectionofuse-after-freethatwouldpreviouslyhave
beenmissed
-fixofalongstandingbugthatcouldcausefalsenegatives(missed
errors)inprogramsdoingvectorsaturatednarrowinginstructions.
*Helgrind:performanceimprovementsandmajormemoryusereductions,
particularlyforlarge,longrunningapplicationswhichperformmany
synchronisation(lock,unlock,etc)events.Plusmanysmaller
changes:
-displayoflocksetsforboththreadsinvolvedinarace
-generalimprovementsinformatting/clarityoferrormessages
-additionoffacilitiesanddocumentationregardingannotation
ofthreadsafereferencecountedC++classes
-newflag--check-stack-refs=no|yes[yes],todisableracechecking
onthreadstacks(aperformancehack)
-newflag--free-is-write=no|yes[no],toenabledetectionofraces
whereonethreadaccessesheapmemorybutanotheronefreesit,
withoutanycoordinatingsynchronisationevent
*DRD:enabledXMLoutput;addedsupportfordelayedthreaddeletion
inordertodetectracesthatoccurclosetotheendofathread
(--join-list-vol);fixedamemoryleaktriggeredbyrepeatedclient
memoryallocatationanddeallocation;improvedDarwinsupport.
*exp-ptrcheck:thistoolhasbeenrenamedtoexp-sgcheck
*exp-sgcheck:thistoolhasbeenreducedinscopesoastoimprove
performanceandremovecheckingthatMemcheckdoesbetter.
Specifically,theabilitytocheckforoverrunsforstackandglobal
arraysisunchanged,buttheabilitytocheckforoverrunsofheap
blockshasbeenremoved.Thetoolhasaccordinglybeenrenamedto
exp-sgcheck("StackandGlobalArrayChecking").
*====================OTHERCHANGES====================
*GDBserver:ValgrindnowhasanembeddedGDBserver.Thatmeansit
ispossibletocontrolaValgrindrunfromGDB,doingalltheusual
thingsthatGDBcando(singlestepping,breakpoints,examining
data,etc).Tool-specificfunctionalityisalsoavailable.For
example,itispossibletoquerythedefinednessstateofvariables
ormemoryfromwithinGDBwhenrunningMemcheck;arbitrarilylarge
memorywatchpointsaresupported,etc.TousetheGDBserver,start
Valgrindwiththeflag--vgdb-error=0andfollowtheon-screen
instructions.
*Improvedsupportforunfriendlyself-modifyingcode:anewoption
--smc-check=all-non-fileisavailable.Thisaddstherelevant
consistencychecksonlytocodethatoriginatesinnon-file-backed
mappings.Ineffectthisconfinestheconsistencycheckingonlyto
codethatisormightbeJITgenerated,andavoidschecksoncode
thatmusthavebeencompiledaheadoftime.Thissignificantly
improvesperformanceonapplicationsthatgeneratecodeatruntime.
*ItisnowpossibletobuildaworkingValgrindusingClang-2.9on
Linux.
*newclientrequestsVALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING.
Theseenableanddisableerrorreportingonaper-thread,and
nestable,basis.Thisisusefulforhidingerrorsinparticularly
troublesomepiecesofcode.TheMPIwrapperlibrary(libmpiwrap.c)
nowusesthisfacility.
*Addedthe--mod-funcnameoptiontocg_diff.
*====================FIXEDBUGS====================
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthan
mailingthedevelopers(ormailinglists)directly--bugsthatare
notenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
79311mallocsillyargwarningdoesnotgivestacktrace
210935portvalgrind.h(notvalgrind)towin32tosupportclientrequests
214223valgrindSIGSEGVonstartupgcc4.4.1ppc32(G4)Ubuntu9.10
243404PorttozSeries
243935Helgrind:incorrecthandlingofANNOTATE_HAPPENS_BEFORE()/AFTER()
247223non-x86:Suppresswarning:'regparm'attributedirectiveignored
250101huge"free"memoryusageduetom_mallocfree.cfragmentation
253206Somefixesforthefaultstatustestcase
255223capgettestcasefailswhenrunningasroot
256703xlc_dbl_u32.ctestcasebroken
256726Helgrindtestshavebrokeninlineasm
259977==214223(Valgrindsegfaultsdoing__builtin_longjmp)
264800testcasecompilefailureonzseries
265762makepublicVEXheaderscompilablebyG++3.x
265771assertioninjumps.c(r11523)failswithglibc-2.3
266753configurescriptdoesnotgivetheusertheoptiontonotuseQtCore
266931gen_insn_test.plisbroken
266961ld-linux.so.2i?86-linuxstrlenissues
266990setnsinstructioncausesfalsepositive
267020Makedirectoryfortemporaryfilesconfigurableatrun-time.
267342==267997(segmentationfaultonMacOS10.6)
267383Assertion'vgPlain_strlen(dir)+vgPlain_strlen(file)+1<256'failed
267413Assertion'DRD_(g_threadinfo)[tid].synchr_nesting>=1'failed.
267488regtest:darwinsupportfor64-bitbuild
267552SIGSEGV(misaligned_stack_error)withDRD,butnotwithothertools
267630AddsupportforIBMPowerISA2.06--stage1
267769==267997(Darwin:memchecktriggerssegmentationfault)
267819Addclientrequestforinformingthecoreaboutreallocation
267925laogdatastructurequadraticforasinglesequenceoflock
267968drd:(vgDrd_thread_set_joinable):Assertion'0<=(int)tid..'failed
267997MacOSX:64-bitVsegfaultsonlaunchwhenbuiltwithXcode4.0.1
268513missedoptimizationsinfold_Expr
268619s390x:fpr-gprtransferfacility
268620s390x:reconsider"longdisplacement"requirement
268621s390x:improveIRgenerationforXC
268715s390x:FLOGRisnotuniversallyavailable
268792==267997(valgrindsegfaultsonstartupwhencompiledwithXcode4)
268930s390x:MHYisnotuniversallyavailable
269078arm->IR:unhandledinstructionSUB(SPminusimmediate/register)
269079SupportptracesystemcallonARM
269144missing"Badoption"errormessage
269209conditionalloadandstorefacility(z196)
269354Shiftbyzeroonx86canincorrectlyclobberCC_NDEP
269641==267997(valgrindsegfaultsimmediately(segmentationfault))
269736s390x:minorcodegenerationtweaks
269778==272986(valgrind.h:swaprolesofVALGRIND_DO_CLIENT_REQUEST()..)
269863s390x:removeunusedfunctionparameters
269864s390x:tweaks390_emit_load_cc
269884==250101(overheadforhugeblocksexhaustsspacetoosoon)
270082s390x:MakesuretopointthePSWaddresstothenextaddressonSIGILL
270115s390x:rewritesometestcases
270309==267997(valgrindcrashonstartup)
270320addsupportforLinuxFIOQSIZEioctl()call
270326segfaultwhiletryingtosanitizetheenvironmentpassedtoexecle
270794IBMPOWER7supportpatchcausesregressioninnone/tests
270851IBMPOWER7fcfidusinstructioncausesmemchecktofail
270856IBMPOWER7xsnmaddadpinstructioncausesmemchecktofailon32bitapp
270925hyper-optimizedstrspn()in/lib64/libc-2.13.soneedsfix
270959s390x:invaliduseofR0asbaseregister
271042VSXconfigurecheckfailswhenitshouldnot
271043Valgrindbuildfailswithassemblererroronppc64withbinutils2.21
271259s390x:fixcodeconfusion
271337==267997(ValgrindsegfaultsonMacOSX)
271385s390x:ImplementIst_MBE
271501s390x:misccleanups
271504s390x:promotelikelyandunlikely
271579ppc:usingwrongenumtype
271615unhandledinstruction"popcnt"(arch=amd10h)
271730Fixbugwhencheckingioctls:duplicatecheck
271776s390x:provideSTFLEinstructionsupport
271779s390x:provideclockinstructionslikeSTCK
271799Darwin:ioctlswithoutanargreportamemoryerror
271820arm:fixtypeconfusion
271917pthread_cond_timedwaitfailureleadstonot-lockedfalsepositive
272067s390x:fixDISP20macro
272615Atypoindebugoutputinmc_leakcheck.c
272661callgrind_annotatechokeswhenrunfrompathscontainingregexchars
272893amd64->IR:0x660xF0x380x2B0xC10x660xF0x7F==(closedasdup)
272955Unhandledsyscallerrorforpwrite64onppc64arch
272967makedocumentationbuild-systemmorerobust
272986Fixgcc-4.6warningswithvalgrind.h
273318amd64->IR:0x660xF0x3A0x610xC10x38(missingPCMPxSTRxcase)
273318unhandledPCMPxSTRxcase:vexamd64->IR:0x660xF0x3A0x610xC10x38
273431valgrindsegfaultsinevalCfiExpr(debuginfo.c:2039)
273465Callgrind:jumps.c:164(new_jcc):Assertion'(0<=jmp)&&...'
273536Builderror:multipledefinitionof`vgDrd_pthread_cond_initializer'
273640ppc64-linux:unhandledsyscallssetresuid(164)andsetresgid(169)
273729==283000(IllegalopcodeforSSE2"roundsd"instruction)
273778exp-ptrcheck:unhandledsysno==259
274089exp-ptrcheck:unhandledsysno==208
274378s390x:Variousdispatchertweaks
274447WARNING:unhandledsyscall:340
274776amd64->IR:0x660xF0x380x2B0xC50x66
274784==267997(valgrindls-lresultsinSegmentationFault)
274926valgrinddoesnotbuildagainstlinux-3
275148configureFAILwithglibc-2.14
275151Fedora15/glibc-2.14'makeregtest'FAIL
275168MakeValgrindworkforMacOSX10.7Lion
275212==275284(lotsoffalsepositivesfrom__memcpy_ssse3_backetal)
275278valgrinddoesnotbuildonLinuxkernel3.0.*duetosilly
275284Valgrindmemcpy/memmoveredirectionstoppedworkinginglibc2.14/x86_64
275308Fiximplementationforppc64fresinstruc
275339s390x:fixtestcasecompilewarnings
275517s390x:ProvidesupportforCKSMinstruction
275710s390x:getridofredundantaddressmodecalculation
275815==247894(Valgrinddoesn'tknowaboutLinuxreadahead(2)syscall)
275852==250101(valgrindusesallswapspaceandiskilled)
276784AddsupportforIBMPowerISA2.06--stage3
276987gdbsrv:fixtestsfollowingrecentcommits
277045ValgrindcrasheswithunhandledDW_OP_opcode0x2a
277199Thetest_isa_2_06_part1.cinnone/tests/ppc64shouldbeasymlink
277471Unhandledsyscall:340
277610valgrindcrashesinVG_(lseek)(core_fd,phdrs[idx].p_offset,...)
277653ARM:supportThumb2PLDinstruction
277663ARM:NEONfloatVMULbyscalarincorrect
277689ARM:testsforVSTnwithregisterpost-indexarebroken
277694ARM:BLXLRinstructionbrokeninARMmode
277780ARM:VMOV.F32(immediate)instructionisbroken
278057fusefilesystemsyscalldeadlocks
278078Unimplementedsyscall280onppc32
278349F_GETPIPE_SZandF_SETPIPE_SZLinuxfcntlcommands
278454VALGRIND_STACK_DEREGISTERhaswrongoutputtype
278502==275284(Valgrindconfusesmemcpy()andmemmove())
278892gdbsrv:factorizegdbversionhandling,fixdocandtypos
279027SupportforMVCLandCLCLinstruction
279027s390x:ProvidesupportforCLCLandMVCLinstructions
279062Removearedundantcheckintheinsnselectorforppc.
279071JDKcreatesPTESTwithredundantREX.Wprefix
279212gdbsrv:addmonitorcmdv.infoscheduler.
279378exp-ptrcheck:the'impossible'happenedonmkfifocall
279698memcheckdiscardsvalid-bitsforpackuswb
279795memcheckreportsuninitialisedvaluesformincoreonamd64
279994AddsupportforIBMPowerISA2.06--stage3
280083mempolicysyscallcheckerrors
280290vexamd64->IR:0x660xF0x380x280xC10x660xF0x6F
280710s390x:configfilesfornightlybuilds
280757/tmpdirstillusedbyvalgrindevenifTMPDIRisspecified
280965Valgrindbreaksfcntllockswhenprogramdoesmmap
281138WARNING:unhandledsyscall:340
281241==275168(valgrinduselessonMacos10.7.1Lion)
281304==275168(Darwin:dyld"cannotloadinsertedlibrary")
281305==275168(unhandledsyscall:unix:357onDarwin11.1)
281468s390x:handledo_cloneandgccclonesincalltraces
281488ARM:VFPregistercorruption
281828==275284(falsememmovewarning:"Sourceanddestinationoverlap")
281883s390x:Fixsystemcallwrapperfor"clone".
282105generalise'reclaimSuperBlock'toalsoreclaimsplittablesuperblock
282112Unhandledinstructionbytes:0xDE0xD90x9B0xDF(fcompp)
282238SLES10:makecheckfails
282979strcasestrneedsreplacementwithrecent(>=2.12)glibc
283000vexamd64->IR:0x660xF0x3A0xA0xC00x90xF30xF
283243Regressioninppc64memchecktests
283325==267997(Darwin:VsegfaultsonstartupwhenbuiltwithXcode4.0)
283427re-connectepoll_pwaitsyscallonARMlinux
283600gdbsrv:android:portvgdb.c
283709none/tests/faultstatusneedstoaccountforpagesize
284305filter_gdbneedsenhancementtoworkonppc64
284384clang3.1-Wunused-valuewarningsinvalgrind.h,memcheck.h
284472Thumb2ROR.WencodingT2notimplemented
284621XML-escapeprocesscommandlineinXMLoutput
n-i-bzcachegrind/callgrind:handleCPUIDinformationforCoreiXIntelCPUs
thathavenon-power-of-2sizes(alsoAMDs)
n-i-bzdon'tbespookedbylibrariesmashedbyelfhack
n-i-bzdon'tbespookedbylibxul.solinkedwithgold
n-i-bzimprovedcheckingforVALGRIND_CHECK_MEM_IS_DEFINED
(3.7.0-TEST1:27October2011,vexr2228,valgrindr12245)
(3.7.0.RC1:1November2011,vexr2231,valgrindr12257)
(3.7.0:5November2011,vexr2231,valgrindr12258)
Release3.6.1(16February2011)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.6.1isabugfixrelease.ItaddssupportforsomeSSE4
instructionsthatwereomittedin3.6.0duetolackoftime.Initial
supportforglibc-2.13hasbeenadded.Anumberofbugscausing
crashingorassertionfailureshavebeenfixed.
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthan
mailingthedevelopers(ormailinglists)directly--bugsthatare
notenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
188572ValgrindonMacshouldsuppresssetenv()memleak
194402vexamd64->IR:0x480xF0xAE0x4(properFX{SAVE,RSTOR}support)
210481vexamd64->IR:Assertion`sz==2||sz==4'failed(REX.WPOPQ)
246152callgrindinternalerrorafterpthread_cancelon32BitLinux
250038ppc64:AltivecLVSRandLVSLinstructionsfailtheirregtest
254420memorypooltrackingbroken
254957Testcodefailingtocompileduetochangesinmemcheck.h
255009helgrind/drd:crashonchmodwithinvalidparameter
255130readdwarf3.cparse_type_DIEconfusedbyGNATAdatypes
255355helgrind/drd:crashonthreadedprogramsdoingfork
255358==255355
255418(SSE4.x)rintcallcompiledwithICC
255822--gen-suppressionscancreateinvalidfiles:"toomanycallers[...]"
255888closingvalgrindoutputtagoutputtedtolog-streamonerror
255963(SSE4.x)vexamd64->IR:0x660xF0x3A0x90xDB0x0(ROUNDPD)
255966Slownesswhenusingmempoolannotations
256387vexx86->IR:0xD40xA0x20x7(AADandAAM)
256600super-optimizedstrcasecmp()falsepositive
256669vexamd64->IR:UnhandledLOOPNELinsnonamd64
256968(SSE4.x)vexamd64->IR:0x660xF0x380x100xD30x66(BLENDVPx)
257011(SSE4.x)vexamd64->IR:0x660xF0x3A0xE0xFD0xA0(PBLENDW)
257063(SSE4.x)vexamd64->IR:0x660xF0x3A0x80xC00x0(ROUNDPS)
257276Missingcaseinmemcheck--track-origins=yes
258870(SSE4.x)AddsupportforEXTRACTPSSSE4.1instruction
261966(SSE4.x)supportforCRC32BandCRC32Qislacking(alsoCRC32{W,L})
262985VEXregressioninvalgrind3.6.0inhandlingPowerPCVMX
262995(SSE4.x)crashwhentryingtovalgrindgcc-snapshot(PCMPxSTRx$0)
263099callgrind_annotatecountsIrimproperly[...]
263877undefinedcoprocessorinstructiononARMv7
265964configureFAILwithglibc-2.13
n-i-bzFixcompileerrorw/icc-12.xinguest_arm_toIR.c
n-i-bzDocs:fixbogusdescriptionsforVALGRIND_CREATE_BLOCKetal
n-i-bzMassif:don'tassertonshmat()with--pages-as-heap=yes
n-i-bzBugfixesandmajorspeedupsfortheexp-DHATspaceprofiler
n-i-bzDRD:disable--free-is-writeduetoimplementationdifficulties
(3.6.1:16February2011,vexr2103,valgrindr11561).
Release3.6.0(21October2010)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.6.0isafeaturereleasewithmanysignificantimprovementsandthe
usualcollectionofbugfixes.
ThisreleasesupportsX86/Linux,AMD64/Linux,ARM/Linux,PPC32/Linux,
PPC64/Linux,X86/DarwinandAMD64/Darwin.Supportforrecentdistros
andtoolchaincomponents(glibc2.12,gcc4.5,OSX10.6)hasbeenadded.
-------------------------
Herearesomehighlights.Detailsareshownfurtherdown:
*SupportforARM/Linux.
*SupportforrecentLinuxdistros:Ubuntu10.10andFedora14.
*SupportforMacOSX10.6,both32-and64-bitexecutables.
*SupportfortheSSE4.2instructionset.
*EnhancementstotheCallgrindprofiler,includingtheabilityto
handleCPUswiththreelevelsofcache.
*Anewexperimentalheapprofiler,DHAT.
*Ahugenumberofbugfixesandsmallenhancements.
-------------------------
Herearedetailsoftheabovechanges,togetherwithdescriptionsof
manyotherchanges,andalistoffixedbugs.
*==================PLATFORMCHANGES=================
*SupportforARM/Linux.ValgrindnowrunsonARMv7capableCPUs
runningLinux.ItisknowntoworkonUbuntu10.04,Ubuntu10.10,
andMaemo5,soyoucanrunValgrindonyourNokiaN900ifyouwant.
ThisrequiresaCPUcapableofrunningtheARMv7-Ainstructionset
(CortexA5,A8andA9).Valgrindprovidesfairlycompletecoverage
oftheuserspaceinstructionset,includingARMandThumbinteger
code,VFPv3,NEONandV6mediainstructions.TheMemcheck,
CachegrindandMassiftoolsworkproperly;othertoolsworkto
varyingdegrees.
*SupportforrecentLinuxdistros(Ubuntu10.10andFedora14),along
withsupportforrecentreleasesoftheunderlyingtoolchain
components,notablygcc-4.5andglibc-2.12.
*SupportforMacOSX10.6,both32-and64-bitexecutables.64-bit
supportalsoworksmuchbetteronOSX10.5,andisassolidas
32-bitsupportnow.
*SupportfortheSSE4.2instructionset.SSE4.2issupportedin
64-bitmode.In32-bitmode,supportisonlyavailableuptoand
includingSSSE3.Someexceptions:SSE4.2AESinstructionsarenot
supportedin64-bitmode,and32-bitmodedoesinfactsupportthe
bareminimumSSE4instructionstoneededtorunprogramsonMacOSX
10.6on32-bittargets.
*SupportforIBMPOWER6cpushasbeenimproved.ThePowerISAupto
andincludingversion2.05issupported.
*====================TOOLCHANGES====================
*Cachegrindhasanewprocessingscript,cg_diff,whichfindsthe
differencebetweentwoprofiles.It'sveryusefulforevaluating
theperformanceeffectsofachangeinaprogram.
Relatedtothischange,themeaningofcg_annotate's(rarely-used)
--thresholdoptionhaschanged;thisisunlikelytoaffectmany
people,ifyoudouseitpleaseseetheusermanualfordetails.
*Callgrindnowcandobranchpredictionsimulation,similarto
Cachegrind.Inaddition,itoptionallycancountthenumberof
executedglobalbusevents.Bothcanbeusedforabetter
approximationofa"CycleEstimation"asderivedevent(youneedto
updatetheeventformulainKCachegrindyourself).
*CachegrindandCallgrindnowrefertotheLL(last-level)cache
ratherthantheL2cache.Thisistoaccommodatemachineswith
threelevelsofcaches--ifCachegrind/Callgrindauto-detectsthe
cacheconfigurationofsuchamachineitwillrunthesimulationas
iftheL2cacheisn'tpresent.Thismeanstheresultsareless
likelytomatchthetrueresultforthemachine,but
Cachegrind/Callgrind'sresultsarealreadyonlyapproximate,and
shouldnotbeconsideredauthoritative.Theresultsarestill
usefulforgivingageneralideaaboutaprogram'slocality.
*Massifhasanewoption,--pages-as-heap,whichisdisabledby
default.Whenenabled,insteadoftrackingallocationsatthelevel
ofheapblocks(asallocatedwithmalloc/new/new[]),itinstead
tracksmemoryallocationsatthelevelofmemorypages(asmappedby
mmap,brk,etc).Eachmappedpageistreatedasitsownblock.
Interpretingthepage-leveloutputisharderthantheheap-level
output,butthisoptionisusefulifyouwanttoaccountforevery
byteofmemoryusedbyaprogram.
*DRDhastwonewcommand-lineoptions:--free-is-writeand
--trace-alloc.Theformerallowstodetectreadingfromalreadyfreed
memory,andthelatterallowstracingofallmemoryallocationsand
deallocations.
*DRDhasseveralnewannotations.Custombarrierimplementationscan
nowbeannotated,aswellasbenignracesonstaticvariables.
*DRD'shappensbefore/happensafterannotationshavebeenmademore
powerful,sothattheycannowalsobeusedtoannotatee.g.asmart
pointerimplementation.
*Helgrind'sannotationsethasalsobeendrasticallyimproved,soas
toprovidetousersageneralsetofannotationstodescribelocks,
semaphores,barriersandconditionvariables.Annotationsto
describethread-safereferencecountedheapobjectshavealsobeen
added.
*Memcheckhasanewcommand-lineoption,--show-possibly-lost,which
isenabledbydefault.Whendisabled,theleakdetectorwillnot
showpossibly-lostblocks.
*Anewexperimentalheapprofiler,DHAT(DynamicHeapAnalysisTool),
hasbeenadded.DHATkeepstrackofallocatedheapblocks,andalso
inspectseverymemoryreferencetoseewhichblock(ifany)isbeing
accessed.Thisgivesalotofinsightintoblocklifetimes,
utilisation,turnover,liveness,andthelocationofhotandcold
fields.YoucanuseDHATtodohot-fieldprofiling.
*====================OTHERCHANGES====================
*Improvedsupportforunfriendlyself-modifyingcode:theextra
overheadincurredby--smc-check=allhasbeenreducedby
approximatelyafactorof5ascomparedwith3.5.0.
*Abilitytoshowdirectorynamesforsourcefilesinerrormessages.
Thisiscombinedwithaflexiblemechanismforspecifyingwhich
partsofthepathsshouldbeshown.Thisisenabledbythenewflag
--fullpath-after.
*Anewflag,--require-text-symbol,whichwillstoptherunifa
specifiedsymbolisnotfounditagivensharedobjectwhenitis
loadedintotheprocess.Thismakesadvancedworkingwithfunction
interceptingandwrappingsaferandmorereliable.
*ImprovedsupportfortheValkyrieGUI,version2.0.0.GUIoutput
andcontrolofValgrindisnowavailableforthetoolsMemcheckand
Helgrind.XMLoutputfromValgrindisavailableforMemcheck,
Helgrindandexp-Ptrcheck.
*Morereliablestackunwindingonamd64-linux,particularlyinthe
presenceoffunctionwrappers,andwithgcc-4.5compiledcode.
*Modestscalability(performanceimprovements)formassive
long-runningapplications,particularlyforthosewithhugeamounts
ofcode.
*SupportforanalyzingprogramsrunningunderWinewithhasbeen
improved.Theheaderfiles<valgrind/valgrind.h>,
<valgrind/memcheck.h>and<valgrind/drd.h>cannowbeusedin
Windows-programscompiledwithMinGWoroneoftheMicrosoftVisual
Studiocompilers.
*Ararebutseriouserrorinthe64-bitx86CPUsimulationwasfixed.
The32-bitsimulatorwasnotaffected.Thisdidnotoccuroften,
butwhenitdidwouldusuallycrashtheprogramundertest.
Bug245925.
*Alargenumberofbugswerefixed.Theseareshownbelow.
*Anumberofbugswereinvestigated,andwerecandidatesforfixing,
butarenotfixedin3.6.0,duetolackofdevelopertime.Theymay
getfixedinlaterreleases.Theyare:
194402vexamd64->IR:0x480xF0xAE0x40x240x49(FXSAVE64)
212419falsepositive"lockorderviolated"(A+BvsA)
213685Undefinedvaluepropagatespastdependencybreakinginstruction
216837IncorrectinstrumentationofNSOperationQueueonDarwin
237920valgrindsegfaultonforkfailure
242137supportforcodecompiledbyLLVM-2.8
242423AnotherunknownIntelcacheconfigvalue
243232InconsistentLockOrderingsreportwithtrylock
243483ppc:callgrindtriggersVEXassertionfailure
243935Helgrind:implementationofANNOTATE_HAPPENS_BEFORE()iswrong
244677Helgrindcrashhg_main.c:616(map_threads_lookup):Assertion
'thr'failed.
246152callgrindinternalerrorafterpthread_cancelon32BitLinux
249435Analyzingwineprogramswithcallgrindtriggersacrash
250038ppc64:Altiveclvsrandlvslinstructionsfailtheirregtest
250065Handlinglargeallocations
250101huge"free"memoryusageduetom_mallocfree.c
"superblocksfragmentation"
251569vexamd64->IR:0xF0x10xF90x8B0x4C0x24(RDTSCP)
252091CallgrindonARMdoesnotdetectfunctionreturnscorrectly
252600[PATCH]Allowlhstobeapointerforshl/shr
254420memorypooltrackingbroken
n-i-bzsupportforaddingsymbolsforJITgeneratedcode
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthan
mailingthedevelopers(ormailinglists)directly--bugsthatare
notenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
135264dcbzlinstructionmissing
142688==250799
153699Valgrindshouldreportunalignedreadswithmovdqa
180217==212335
190429Valgrindreportslostoferrorsinld.so
withx86_642.9.90glibc
197266valgrindappearstochokeonthexmmsinstruction
"roundsd"onx86_64
197988Crashwhendemanglingverylargesymbolnames
202315unhandledsyscall:332(inotify_init1)
203256Addpage-levelprofilingtoMassif
205093dsymutil=yesneedsquotes,locking(partialfix)
205241SnowLeopard10.6support(partialfix)
206600Leakcheckerfailstoupgradeindirectblockswhentheir
parentbecomesreachable
210935portvalgrind.h(notvalgrind)towin32soappsrununder
winecanmakeclientrequests
211410vexamd64->IR:0x150xFF0xFF0x00x00x89
withinLinuxip-stackchecksumfunctions
212335unhandledinstructionbytes:0xF30xF0xBD0xC0
(lzcnt%eax,%eax)
213685Undefinedvaluepropagatespastdependencybreakinginstruction
(partialfix)
215914Valgrindinsertsbogusemptyenvironmentvariable
217863==197988
219538adjtimexsyscallwrapperwronginreadonlyadjtimemode
222545shmatfailsundervalgindonsomearmtargets
222560ARMNEONsupport
230407==202315
231076==202315
232509Docsbuildfailswithformattinginside<title></title>elements
232793==202315
235642[PATCH]syswrap-linux.c:supportevdevEVIOCG*ioctls
236546vexx86->IR:0x660xF0x3A0xA
237202vexamd64->IR:0xF30xF0xB80xC00x490x3B
237371bettersupportforVALGRIND_MALLOCLIKE_BLOCK
237485symlink(syscall57)isnotsupportedonMacOS
237723sysno==101exp-ptrcheck:the'impossible'happened:
unhandledsyscall
238208is_just_below_ESPdoesn'ttakeintoaccountred-zone
238345valgrindpasseswrong$0whenexecutingashellscript
238679mq_timedreceivesyscalldoesn'tflagthereceptionbuffer
as"defined"
238696fcntlcommandF_DUPFD_CLOEXECnotsupported
238713unhandledinstructionbytes:0x660xF0x290xC6
238713unhandledinstructionbytes:0x660xF0x290xC6
2387453.5.0MakefailsonPPCAltivecopcodes,thoughconfigure
says"Altivecoff"
239992vexamd64->IR:0x480xF0xC40xC10x00x48
240488==197988
240639==212335
241377==236546
241903==202315
241920==212335
242606unhandledsyscall:setegid(inPtrcheck)
242814Helgrind"Impossiblehashappened"during
QApplication::initInstance();
243064Valgrindattemptingtoreaddebuginformationfromiso
243270MakestackunwindinginValgrindwrappersmorereliable
243884exp-ptrcheck:the'impossiblehappened:unhandledsyscall
sysno=277(mq_open)
244009exp-ptrcheckunknownsyscallsinanalyzinglighttpd
244493ARMVFPd16-d31registerssupport
244670addsupportforaudit_session_selfsyscallonMacOS10.6
244921Thexmlreportofhelgrindtoolisnotwellformat
244923Inthexmlreportfile,the<preamble>notescapethe
xmlchar,eg'<','&','>'
245535printfullpathnamesinplaintextreports
245925x86-64redzonehandlingproblem
246258Valgrindnotcatchingintegerunderruns+new[]s
246311reg/regcmpxchgdoesn'tworkonamd64
246549unhandledsyscallunix:277whiletesting32-bitDarwinapp
246888ImproveMakefile.vex.am
247510[OSX10.6]Memcheckreportsunaddressablebytespassed
to[f]chmod_extended
247526IBMPOWER6(ISA2.05)supportisincomplete
247561Someleaktestcasesfailsduetoreachableaddressesin
callersaveregs
247875sizeofIRTypetohandleIty_I128
247894[PATCH]unhandledsyscallsys_readahead
247980Doesn'thonorCFLAGSpassedtoconfigure
248373darwin10.suppisemptyinthetrunk
248822LinuxFIBMAPioctlhasintparameterinsteadoflong
248893[PATCH]makereaddwarf.cbigendianesssafetoenable
unwindingonbigendiansystems
249224Syscall336notsupported(SYS_proc_info)
249359==245535
249775IncorrectschemefordetectingNEONcapabilitiesofhostCPU
249943jniJVMinitfailswhenusingvalgrind
249991ValgrindincorrectlydeclaresAESKEYGENASSISTsupport
sinceVEXr2011
249996linux/arm:unhandledsyscall:181(__NR_pwrite64)
250799frexp$fenv_access_offfunctiongeneratesSIGILL
250998vexx86->IR:unhandledinstructionbytes:0x660x660x660x2E
251251supportpclmulqdqinsn
251362valgrind:ARM:attachtodebuggereitherfailsorprovokes
kerneloops
251674Unhandledsyscall294
251818==254550
254257Addsupportfordebugfilesfoundbybuild-id
254550[PATCH]ImplementDW_ATE_UTF(DWARF4)
254646WrappedfunctionscausestackmisalignmentonOSX
(andpossiblyLinux)
254556ARM:valgrindinganythingfailswithSIGSEGVfor0xFFFF0FA0
(3.6.0:21October2010,vexr2068,valgrindr11471).
Release3.5.0(19August2009)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.5.0isafeaturereleasewithmanysignificantimprovementsandthe
usualcollectionofbugfixes.ThemainimprovementisthatValgrind
nowworksonMacOSX.
ThisreleasesupportsX86/Linux,AMD64/Linux,PPC32/Linux,PPC64/Linux
andX86/Darwin.Supportforrecentdistrosandtoolchaincomponents
(glibc2.10,gcc4.5)hasbeenadded.
-------------------------
Hereisashortsummaryofthechanges.Detailsareshownfurther
down:
*SupportforMacOSX(10.5.x).
*ImprovementsandsimplificationstoMemcheck'sleakchecker.
*ClarificationandsimplificationsinvariousaspectsofValgrind's
textoutput.
*XMLoutputforHelgrindandPtrcheck.
*PerformanceandstabilityimprovementsforHelgrindandDRD.
*Genuinelyatomicsupportforx86/amd64/ppcatomicinstructions.
*Anewexperimentaltool,BBV,usefulforcomputerarchitecture
research.
*ImprovedWinesupport,includingabilitytoreadWindowsPDB
debuginfo.
-------------------------
Herearedetailsoftheabovechanges,followedbydescriptionsof
manyotherminorchanges,andalistoffixedbugs.
*ValgrindnowrunsonMacOSX.(NotethatMacOSXissometimes
called"Darwin"becausethatisthenameoftheOScore,whichisthe
levelthatValgrindworksat.)
Supportedsystems:
-ItrequiresOS10.5.x(Leopard).Portingto10.4.xisnotplanned
becauseitwouldrequireworkand10.4isonlybecominglesscommon.
-32-bitprogramsonx86andAMD64(a.k.ax86-64)machinesaresupported
fairlywell.For10.5.x,32-bitprogramsarethedefaultevenon
64-bitmachines,soithandlesmostcurrentprograms.
-64-bitprogramsonx86andAMD64(a.k.ax86-64)machinesarenot
officiallysupported,butsimpleprogramsatleastwillprobablywork.
However,start-upisslow.
-PowerPCmachinesarenotsupported.
Thingsthatdon'twork:
-ThePtrchecktool.
-Objective-Cgarbagecollection.
---db-attach=yes.
-IfyouhaveRogueAmoeba's"InstantHijack"programinstalled,
ValgrindwillfailwithaSIGTRAPatstart-up.See
https://bugs.kde.org/show_bug.cgi?id=193917fordetailsanda
simplework-around.
Usagenotes:
-Youwilllikelyfind--dsymutil=yesausefuloption,aserror
messagesmaybeimprecisewithoutit.
-MacOSXsupportisnewandthereforewillbelessrobustthanthe
Linuxsupport.Pleasereportanybugsyoufind.
-ThreadedprogramsmayrunmoreslowlythanonLinux.
ManythankstoGregParkerfordevelopingthisportoverseveralyears.
*Memcheck'sleakcheckerhasbeenimproved.
-Theresultsfor--leak-check=summarynowmatchthesummaryresults
for--leak-check=full.Previouslytheycoulddifferbecause
--leak-check=summarycounted"indirectlylost"blocksand
"suppressed"blocksas"definitelylost".
-Blocksthatareonlyreachableviaatleastoneinterior-pointer,
butaredirectlypointedtobyastart-pointer,werepreviously
markedas"stillreachable".Theyarenowcorrectlymarkedas
"possiblylost".
-Thedefaultvalueforthe--leak-resolutionoptionhasbeen
changedfrom"low"to"high".Ingeneral,thismeansthatmore
leakreportswillbeproduced,buteachleakreportwilldescribe
fewerleakedblocks.
-With--leak-check=full,"definitelylost"and"possiblylost"
leaksarenowconsideredaspropererrors,ie.theyarecounted
forthe"ERRORSUMMARY"andaffectthebehaviourof
--error-exitcode.Theseleaksarenotcountedaserrorsif
--leak-check=summaryisspecified,however.
-Documentationfortheleakcheckerhasbeenimproved.
*VariousaspectsofValgrind'stextoutputhavechanged.
-Valgrind'sstart-upmessagehaschanged.Itisshorterbutalso
includesthecommandbeingrun,whichmakesiteasiertouse
--trace-children=yes.Anexample:
-Valgrind'sshut-downmessageshavealsochanged.Thisismost
noticeablewithMemcheck,wheretheleaksummarynowoccursbefore
theerrorsummary.Thischangewasnecessarytoallowleakstobe
countedaspropererrors(seethedescriptionoftheleakchecker
changesaboveformoredetails).Thiswasalsonecessarytofixa
longstandingbuginwhichusesofsuppressionsagainstleakswere
not"counted",leadingtodifficultiesinmaintainingsuppression
files(seehttps://bugs.kde.org/show_bug.cgi?id=186790).
-Behaviorof-vhaschanged.Inpreviousversions,-vprintedout
amixtureofmarginally-user-usefulinformation,andtool/core
statistics.Thestatisticsprintinghasnowbeenmovedtoitsown
flag,--stats=yes.Thismeans-vislessverboseandmorelikely
toconveyusefulend-userinformation.
-Theformatofsome(non-XML)stacktraceentrieshaschangeda
little.Previouslythereweresixpossibleforms:
0x80483BF:really(a.c:20)
0x80483BF:really(in/foo/a.out)
0x80483BF:really
0x80483BF:(within/foo/a.out)
0x80483BF:???(a.c:20)
0x80483BF:???
Thethirdandfourthoftheseformshavebeenmademoreconsistent
withtheothers.Thesixpossibleformsarenow:
0x80483BF:really(a.c:20)
0x80483BF:really(in/foo/a.out)
0x80483BF:really(in???)
0x80483BF:???(in/foo/a.out)
0x80483BF:???(a.c:20)
0x80483BF:???
Stacktracesproducedwhen--xml=yesisspecifiedaredifferent
andunchanged.
*HelgrindandPtrchecknowsupportXMLoutput,sotheycanbeused
fromGUItools.Also,theXMLoutputmechanismhasbeen
overhauled.
-TheXMLformathasbeenoverhauledandgeneralised,soitismore
suitableforerrorreportingtoolsingeneral.TheMemcheck
specificaspectsofithavebeenremoved.Thenewformat,which
isanevolutionoftheoldformat,isdescribedin
docs/internals/xml-output-protocol4.txt.
-Memcheckhasbeenupdatedtousethenewformat.
-HelgrindandPtrcheckarenowabletoemitoutputinthisformat.
-TheXMLoutputmechanismhasbeenoverhauled.XMLisnowoutput
toitsownfiledescriptor,whichmeansthat:
*ValgrindcanoutputtextandXMLindependently.
*ThelongstandingproblemofXMLoutputbeingcorruptedby
unexpectedun-taggedtextmessagesissolved.
Asbefore,thedestinationfortextoutputisspecifiedusing
--log-file=,--log-fd=or--log-socket=.
Asbefore,XMLoutputforatoolisenabledusing--xml=yes.
Becausethere'sanewXMLoutputchannel,theXMLoutput
destinationisnowspecifiedby--xml-file=,--xml-fd=or
--xml-socket=.
Initialfeedbackhasshownthiscausessomeconfusion.To
clarify,thetwoenvisagedusagescenariosare:
(1)Normaltextoutput.Inthiscase,donotspecify--xml=yes
noranyof--xml-file=,--xml-fd=or--xml-socket=.
(2)XMLoutput.Inthiscase,specify--xml=yes,andoneof
--xml-file=,--xml-fd=or--xml-socket=toselecttheXML
destination,oneof--log-file=,--log-fd=or--log-socket=
toselectthedestinationforanyremainingtextmessages,
and,importantly,-q.
-qmakesValgrindcompletelysilentonthetextchannel,
exceptinthecaseofcriticalfailures,suchasValgrind
itselfsegfaulting,orfailingtoreaddebugginginformation.
Hence,inthisscenario,itsufficestocheckwhetherornot
anyoutputappearedonthetextchannel.Ifyes,thenitis
likelytobeacriticalerrorwhichshouldbebroughttothe
attentionoftheuser.Ifno(thetextchannelproducedno
output)thenitcanbeassumedthattherunwassuccessful.
ThisallowsGUIstomakethecriticaldistinctiontheyneedto
make(didtherunfailornot?)withouthavingtosearchor
filterthetextoutputchannelinanyway.
Itisalsorecommendedtouse--child-silent-after-fork=yesin
scenario(2).
*ImprovementsandchangesinHelgrind:
-XMLoutput,asdescribedabove
-Checksforconsistentassociationbetweenpthreadcondition
variablesandtheirassociatedmutexesarenowperformed.
-pthread_spinlockfunctionsaresupported.
-Modestperformanceimprovements.
-Initial(skeletal)supportfordescribingthebehaviourof
non-POSIXsynchronisationobjectsthroughThreadSanitizer
compatibleANNOTATE_*macros.
-Morecontrollabletradeoffsbetweenperformanceandthelevelof
detailof"previous"accessesinarace.Therearenowthree
settings:
*--history-level=full.Thisisthedefault,andwasalsothe
defaultin3.4.x.Itshowsbothstacksinvolvedinarace,but
requiresalotofmemoryandcanbeveryslowinprogramsthat
domanyinter-threadsynchronisationevents.
*--history-level=none.Thisonlyshowsthelaterstackinvolved
inarace.Thiscanbemuchfasterthan--history-level=full,
butmakesitmuchmoredifficulttofindtheotheraccess
involvedintherace.
Thenewintermediatesettingis
*--history-level=approx
Fortheearlier(other)access,twostacksarepresented.The
earlieraccessisguaranteedtobesomewhereinbetweenthetwo
programpointsdenotedbythosestacks.Thisisnotasuseful
asshowingtheexactstackforthepreviousaccess(asper
--history-level=full),butitisbetterthannothing,andit's
almostasfastas--history-level=none.
*NewfeaturesandimprovementsinDRD:
-TheerrormessagesprintedbyDRDarenoweasiertointerpret.
Insteadofusingtwodifferentnumberstoidentifyeachthread
(ValgrindthreadIDandDRDthreadID),DRDdoesnowidentify
threadsviaasinglenumber(theDRDthreadID).Furthermore
"firstobservedat"informationisnowprintedforallerror
messagesrelatedtosynchronizationobjects.
-Addedsupportfornamedsemaphores(sem_open()andsem_close()).
-Raceconditionsbetweenpthread_barrier_wait()and
pthread_barrier_destroy()callsarenowreported.
-Addedsupportforcustomallocatorsthroughthemacros
VALGRIND_MALLOCLIKE_BLOCK()VALGRIND_FREELIKE_BLOCK()(definedin
in<valgrind/valgrind.h>).Analternativeforthesetwomacrosis
thenewclientrequestVG_USERREQ__DRD_CLEAN_MEMORY(definedin
<valgrind/drd.h>).
-Addedsupportforannotatingnon-POSIXsynchronizationobjects
throughseveralnewANNOTATE_*()macros.
-OpenMP:addedsupportfortheOpenMPruntime(libgomp)included
withgccversions4.3.0and4.4.0.
-Fasteroperation.
-Addedtwonewcommand-lineoptions(--first-race-onlyand
--segment-merging-interval).
*Genuinelyatomicsupportforx86/amd64/ppcatomicinstructions
Valgrindwillnowpreserve(memory-access)atomicityofLOCK-
prefixedx86/amd64instructions,andanyothersimplyingaglobal
buslock.DittoforPowerPCl{w,d}arx/st{w,d}cx.instructions.
ThismeansthatValgrindedprocesseswill"playnicely"in
situationswherecommunicationwithotherprocesses,orthekernel,
isdonethroughsharedmemoryandcoordinatedwithsuchatomic
instructions.Priortothischange,sucharrangementsusually
resultedinhangs,racesorothersynchronisationfailures,because
Valgrinddidnothonouratomicityofsuchinstructions.
*Anewexperimentaltool,BBV,hasbeenadded.BBVgeneratesbasic
blockvectorsforusewiththeSimPointanalysistool,whichallows
aprogram'soverallbehaviourtobeapproximatedbyrunningonlya
fractionofit.Thisisusefulforcomputerarchitecture
researchers.YoucanrunBBVbyspecifying--tool=exp-bbv(the
"exp-"prefixisshortfor"experimental").BBVwaswrittenby
VinceWeaver.
*ModestlyimprovedsupportforrunningWindowsapplicationsunder
Wine.Inparticular,initialsupportforreadingWindows.PDBdebug
informationhasbeenadded.
*AnewMemcheckclientrequestVALGRIND_COUNT_LEAK_BLOCKShasbeen
added.ItissimilartoVALGRIND_COUNT_LEAKSbutcountsblocks
insteadofbytes.
*TheValgrindclientrequestsVALGRIND_PRINTFand
VALGRIND_PRINTF_BACKTRACEhavebeenchangedslightly.Previously,
thestringwasalwaysprintedimmediatelyonitsownline.Now,the
stringwillbeaddedtoabufferbutnotprinteduntilanewlineis
encountered,orotherValgrindoutputisprinted(notethatfor
VALGRIND_PRINTF_BACKTRACE,theback-traceitselfisconsidered
"otherValgrindoutput").Thisallowsyoutousemultiple
VALGRIND_PRINTFcallstobuildupasingleoutputline,andalsoto
printmultipleoutputlineswithasinglerequest(byembedding
multiplenewlinesinthestring).
*ThegraphsdrawnbyMassif'sms_printprogramhavechangedslightly:
-Thehalf-heightchars'.'and','arenolongerdrawn,because
theyareconfusing.The--yoptioncanbeusedifthedefault
y-resolutionisnothighenough.
-Horizontallinesarenowdrawnafterthetopofasnapshotif
thereisagapuntilthenextsnapshot.Thismakesitclearthat
thememoryusagehasnotdroppedtozerobetweensnapshots.
*Somethingthathappenedin3.4.0,butwasn'tclearlyannounced:the
option--read-var-info=yescanbeusedbysometools(Memcheck,
HelgrindandDRD).Whenenabled,itcausesValgrindtoreadDWARF3
variabletypeandlocationinformation.Thismakesthosetools
startupmoreslowlyandincreasesmemoryconsumption,but
descriptionsofdataaddressesinerrormessagesbecomemore
detailed.
*exp-Omega,anexperimentalinstantaneousleak-detectingtool,was
disabledin3.4.0duetoalackofinterestandmaintenance,
althoughthesourcecodewasstillinthedistribution.Thesource
codehasnowbeenremovedfromthedistribution.Foranyone
interested,theremovaloccurredinSVNrevisionr10247.
*Somechangeshavebeenmadetothebuildsystem.
-VEX/isnowintegratedproperlyintothebuildsystem.Thismeans
thatdependencytrackingwithinVEX/nowworksproperly,"make
install"willworkwithoutrequiring"make"beforeit,and
parallelbuilds(ie.'make-j')nowwork(previouslya
.NOTPARALLELdirectivewasusedtoserializebuilds,ie.'make-j'
waseffectivelyignored).
-The--with-vexconfigureoptionhasbeenremoved.Itwasof
littleuseandremovingitsimplifiedthebuildsystem.
-Thelocationofsomeinstallfileshaschanged.Thisshouldnot
affectmostusers.Thosewhomightbeaffected:
*ForpeoplewhouseValgrindwithMPIprograms,theinstalled
libmpiwrap.solibraryhasmovedfrom
$(INSTALL)/<platform>/libmpiwrap.soto
$(INSTALL)/libmpiwrap-<platform>.so.
*ForpeoplewhodistributestandaloneValgrindtools,the
installedlibrariessuchas$(INSTALL)/<platform>/libcoregrind.a
havemovedto$(INSTALL)/libcoregrind-<platform>.a.
Thesechangessimplifythebuildsystem.
-Previously,allthedistributedsuppression(*.supp)fileswere
installed.Now,onlydefault.suppisinstalled.Thisshouldnot
affectusersastheotherinstalledsuppressionfileswerenot
read;thefactthattheywereinstalledwasamistake.
*KNOWNLIMITATIONS:
-MemcheckisunusablewiththeIntelcompilersuiteversion11.1,
whenitgeneratescodeforSSE2-and-abovecapabletargets.This
isbecauseoficc'suseofhighlyoptimisedinlinedstrlen
implementations.ItcausesMemchecktoreporthugenumbersof
falseerrorseveninsimpleprograms.HelgrindandDRDmayalso
haveproblems.
Versions11.0andearliermaybeOK,butthishasnotbeen
properlytested.
Thefollowingbugshavebeenfixedorresolved.Notethat"n-i-bz"
standsfor"notinbugzilla"--thatis,abugthatwasreportedtous
butnevergotabugzillaentry.Weencourageyoutofilebugsin
bugzilla(http://bugs.kde.org/enter_valgrind_bug.cgi)ratherthan
mailingthedevelopers(ormailinglists)directly--bugsthatare
notenteredintobugzillatendtogetforgottenaboutorignored.
Toseedetailsofagivenbug,visit
https://bugs.kde.org/show_bug.cgi?id=XXXXXX
whereXXXXXXisthebugnumberaslistedbelow.
84303HowaboutaLockChecktool?
91633dereferenceofnullptrinvgPlain_st_basetype
97452Valgrinddoesn'treportanypthreadsproblems
100628leak-checkgetsassertionfailurewhenusing
VALGRIND_MALLOCLIKE_BLOCKonmalloc()edmemory
108528NPTLpthreadcleanuphandlersnotcalled
110126Valgrind2.4.1configure.intramplesCFLAGS
110128mallinfoisnotimplemented...
110770VEX:Generatedfilesnotalwaysupdatedwhenmakingvalgrind
111102Memcheck:problemswithlarge(memoryfootprint)applications
115673Vex'sdecodershouldneverassert
117564Falsepositive:Syscallparamclone(child_tidptr)contains
uninitialisedbyte(s)
119404executingsshfrominsidevalgrindfails
133679Callgrinddoesnotwritepathnamestosourceswithdwarfdebug
info
135847configure.inproblemwithnongnucompilers(andpossiblefix)
136154threads.c:273(vgCallgrind_post_signal):Assertion
'*(vgCallgrind_current_fn_stack.top)==0'failed.
136230memcheckreports"possiblylost",shouldbe"stillreachable"
137073NULLargtoMALLOCLIKE_BLOCKcausescrash
137904ValgrindreportsamemoryleakwhenusingPOSIXthreads,
whileitshouldn't
139076valgrindVT_GETSTATEerror
142228complaintofelf_dynamic_do_relaintrivialusage
145347spuriouswarningwithUSBDEVFS_REAPURB
148441(wine)can'tfindmemoryleakinWine,win32binary
executablefile.
148742Leak-checkfailsassertonexit
149878add(proper)checkforcallocintegeroverflow
150606Callgraphisbrokenwhenusingcallgrindcontrol
152393leakerrorsproduceanexitcodeof0.Ineedsomewayto
causeleakerrorstoresultinanonzeroexitcode.
157154documentation(leak-resolutiondocspeaksaboutnum-callers
def=4)+whatisalossrecord
159501incorrecthandlingofALSAioctls
162020Valgrindinganempty/zero-bytefilecrashesvalgrind
162482ppc:Valgrindcrasheswhilereadingstabsinformation
162718x86:avoidsegmentselector0insys_set_thread_area()
163253(wine)canonicaliseSymtabforgotsomefieldsinDiSym
163560VEX/test_main.cismissingfromvalgrind-3.3.1
164353malloc_usable_size()doesn'treturnausablesize
165468Inconsistentformattinginmemcheckmanual--pleasefix
169505main.c:286(endOfInstr):
Assertion'ii->cost_offset==*cost_offset'failed
177206Generatedefault.suppduringcompileinsteadofconfigure
177209Configurevalt_load_addressbasedonarch+os
177305eventfd/syscall323patchlost
179731Testsfailtobuildbecauseofinliningofnon-localasmlabels
181394helgrind:libhb_core.c:3762(msm_write):Assertion
'ordxx==POrd_EQ||ordxx==POrd_LT'failed.
181594Boguswarningforemptytextsegment
181707dwarfdoesn'trequireenumerationstohavename
185038exp-ptrcheck:"unhandledsyscall:285"(fallocate)onx86_64
185050exp-ptrcheck:sg_main.c:727(add_block_to_GlobalTree):
Assertion'!already_present'failed.
185359exp-ptrcheck:unhandledsyscallgetresuid()
185794"WARNING:unhandledsyscall:285"(fallocate)onx86_64
185816Valgrindisunabletohandledebuginfoforfileswithsplit
debuginfothatareprelinkedafterwards
185980[darwin]unhandledsyscall:sem_open
186238bbToIR_AMD64:disInstrmiscalculatednext%rip
186507exp-ptrcheckunhandledsyscallsprctl,etc.
186790Suppressionpatternusedforleaksarenotreported
186796Symbolswithlength>200insuppressionfilesareignored
187048drd:mutexPTHREAD_PROCESS_SHAREDattributemissinterpretation
187416exp-ptrcheck:supportfor__NR_{setregid,setreuid,setresuid}
188038helgrind:hg_main.c:926:mk_SHVAL_fail:the'impossible'happened
188046bashismsintheconfigurescript
188127amd64->IR:unhandledinstructionbytes:0xF00xF0xB00xA
188161memcheck:--track-origins=yesasserts"mc_machine.c:672
(get_otrack_shadow_offset_wrk):the'impossible'happened."
188248helgrind:pthread_cleanup_push,pthread_rwlock_unlock,
assertionfail"!lock->heldBy"
188427Addsupportforepoll_create1(withpatch)
188530SupportforSIOCGSTAMPNS
188560Includevalgrind.specinthetarball
188572ValgrindonMacshouldsuppresssetenv()memleak
189054Valgrindfailstobuildbecauseofduplicatenon-localasmlabels
189737vexamd64->IR:unhandledinstructionbytes:0xAC
189762epoll_createsyscallnothandled(--tool=exp-ptrcheck)
189763drdassertionfailure:s_threadinfo[tid].is_recording
190219unhandledsyscall:328(x86-linux)
190391dupof181394;seeabove
190429Valgrindreportslotsoferrorsinld.sowithx86_642.9.90glibc
190820Nodebuginformationonpowerpc-linux
191095PATCH:Improveusbdevfsioctlhandling
191182memcheck:VALGRIND_LEAK_CHECKquadraticwhenbignrofchunks
orbignroferrors
191189--xml=yesshouldobey--gen-suppressions=all
191192syslog()needsasuppressiononmacosx
191271DARWIN:WARNING:unhandledsyscall:33554697a.k.a.:265
191761getrlimitonMacOSX
191992multiple--fn-skiponlyworkssometimes;dependentonorder
192634V.reports"aspacemsync_check_mapping_callback:
segmentmismatch"onDarwin
192954__extension__missingon2clientrequests
194429Crashatstart-upwithglibc-2.10.1andlinux-2.6.29
194474"INSTALL"filehasdifferentbuildinstructionsthan"README"
194671Unhandledsyscall(sem_wait?)frommacvalgrind
195069memcheck:reportsleak(memorystillreachable)for
printf("%d',x)
195169drd:(vgDrd_barrier_post_wait):
Assertion'r->sg[p->post_iteration]'failed.
195268valgrind--log-filedoesn'taccept~/...
195838VEXabort:LibVEX_N_SPILL_BYTEStoosmallforCPUIDboilerplate
195860WARNING:unhandledsyscall:unix:223
196528needaerrorsuppressionforpthread_rwlock_initunderosx?
197227Supportaio_*syscallsonDarwin
197456valgrindshouldreject--suppressions=(directory)
197512DWARF2CFIreader:unhandledCFIinstruction0:10
197591unhandledsyscall27(mincore)
197793MergeDCASbranchtothetrunk==85756,142103
197794AvoidduplicatefilenamesinVex
197898makecheckfailsoncurrentSVN
197901makecheckfailsalsounderexp-ptrcheckincurrentSVN
197929Make--leak-resolution=highthedefault
197930Reducespacingbetweenleakreports
197933Printcommandlineofclientatstart-up,andshortenpreamble
197966unhandledsyscall205(x86-linux,--tool=exp-ptrcheck)
198395addBBVtothedistributionasanexperimentaltool
198624MissingsyscallsonDarwin:82,167,281,347
198649callgrind_annotatedoesn'tcumulatecounters
199338callgrind_annotatesorting/thresholdsarebrokenforallbutIr
199977Valgrindcomplainsaboutanunrecognizedinstructioninthe
atomic_incstestprogram
200029valgrindisn'tabletoreadFedora12debuginfo
200760darwinunhandledsyscall:unix:284
200827DRDdoesn'tworkonMacOSX
200990VG_(read_millisecond_timer)()doesnotworkcorrectly
201016Valgrinddoesnotsupportpthread_kill()onMacOS
201169Document--read-var-info
201323Pre-3.5.0performancesanitychecking
201384Reviewusermanualforthe3.5.0release
201585mfpvrnotimplementedonppc
201708testsfailingbecausex86directionflagisleftset
201757Valgrinddoesn'thandleanyrecentsys_futexadditions
20437764-bitvalgrindcannotstartashellscript
(with#!/path/to/shell)iftheshellisa32-bitexecutable
n-i-bzdrd:fixedassertionfailuretriggeredbymutexreinitialization.
n-i-bzdrd:fixedabugthatcausedincorrectmessagestobeprinted
aboutmemoryallocationeventswithmemoryaccesstracingenabled
n-i-bzdrd:fixedamemoryleaktriggeredbyvectorclockdeallocation
(3.5.0:19Aug2009,vexr1913,valgrindr10846).
Release3.4.1(28February2009)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.4.1isabug-fixreleasethatfixessomeregressionsandassertion
failuresindebuginforeadingin3.4.0,mostnotablyincorrectstack
tracesonamd64-linuxonolder(glibc-2.3based)systems.Various
otherdebuginfoproblemsarealsofixed.Anumberofbugsinthe
exp-ptrchecktoolintroducedin3.4.0havebeenfixed.
Inviewofthefactthat3.4.0containsuser-visibleregressions
relativeto3.3.x,upgradingto3.4.1isrecommended.Packagersare
encouragedtoship3.4.1inpreferenceto3.4.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-bzFixvariousbugsreadingicc-11generateddebuginfo
n-i-bzFixvariousbugsreadinggcc-4.4generateddebuginfo
n-i-bzPreliminarysupportforglibc-2.10/Fedora11
n-i-bzCachegrindandCallgrind:handlenon-power-of-twocachesizes,
soastosupport(eg)24kAtomD1andCore2with3/6/12MBL2.
179618exp-ptrcheckcrashed/exitprematurely
179624helgrind:falsepositiveraceswithpthread_createand
recv/open/close/read
134207pkg-configoutputcontains@VG_PLATFORM@
176926floatingpointexceptionatvalgrindstartupwithPPC440EPX
181594Boguswarningforemptytextsegment
173751amd64->IR:0x480xF0x6F0x45(evenmoreredundantrexprefixes)
181707Dwarf3doesn'trequireenumerationstohavename
185038exp-ptrcheck:"unhandledsyscall:285"(fallocate)onx86_64
185050exp-ptrcheck:sg_main.c:727(add_block_to_GlobalTree):
Assertion'!already_present'failed.
185359exp-ptrcheckunhandledsyscallgetresuid()
(3.4.1.RC1:24Feb2008,vexr1884,valgrindr9253).
(3.4.1:28Feb2008,vexr1884,valgrindr9293).
Release3.4.0(2January2009)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.4.0isafeaturereleasewithmanysignificantimprovementsandthe
usualcollectionofbugfixes.ThisreleasesupportsX86/Linux,
AMD64/Linux,PPC32/LinuxandPPC64/Linux.Supportforrecentdistros
(usinggcc4.4,glibc2.8and2.9)hasbeenadded.
3.4.0bringssomesignificanttoolimprovements.Memcheckcannow
reporttheoriginofuninitialisedvalues,thethreadcheckers
HelgrindandDRDaremuchimproved,andwehaveanewexperimental
tool,exp-Ptrcheck,whichisabletodetectoverrunsofstackand
globalarrays.Indetail:
*Memcheckisnowabletotracktheoriginofuninitialisedvalues.
Whenitreportsanuninitialisedvalueerror,itwilltrytoshow
theoriginofthevalue,aseitheraheaporstackallocation.
Origintrackingisexpensiveandsoisnotenabledbydefault.To
useit,specify--track-origins=yes.Memcheck'sspeedwillbe
essentiallyhalved,andmemoryusagewillbesignificantly
increased.Neverthelessitcandrasticallyreducetheeffort
requiredtoidentifytherootcauseofuninitialisedvalueerrors,
andsoisoftenaprogrammerproductivitywin,despiterunningmore
slowly.
*Aversion(1.4.0)oftheValkyrieGUI,thatworkswithMemcheckin
3.4.0,willbereleasedshortly.
*Helgrind'sracedetectionalgorithmhasbeencompletelyredesigned
andreimplemented,toaddressusabilityandscalabilityconcerns:
-Thenewalgorithmhasalowerfalse-errorrate:itismuchless
likelytoreportracesthatdonotreallyexist.
-Helgrindwilldisplayfullcallstacksforbothaccessesinvolved
inarace.Thismakesiteasiertoidentifytherootcausesof
races.
-Limitationsonthesizeofprogramthatcanrunhavebeenremoved.
-Performancehasbeenmodestlyimproved,althoughthatisvery
workload-dependent.
-DirectsupportforQt4threadinghasbeenadded.
-pthread_barriersarenowdirectlysupported.
-HelgrindworkswellonallsupportedLinuxtargets.
*TheDRDthreaddebuggingtoolhasseenmajorimprovements:
-Greatlyimprovedperformanceandsignificantlyreducedmemory
usage.
-Supportforseveralmajorthreadinglibraries(Boost.Thread,Qt4,
glib,OpenMP)hasbeenadded.
-Supportforatomicinstructions,POSIXsemaphores,barriersand
reader-writerlockshasbeenadded.
-WorksnowonPowerPCCPUstoo.
-Addedsupportforprintingthreadstackusageatthreadexittime.
-Addedsupportfordebugginglockcontention.
-AddedamanualforDrd.
*Anewexperimentaltool,exp-Ptrcheck,hasbeenadded.Ptrcheck
checksformisusesofpointers.Inthatsenseitisabitlike
Memcheck.However,PtrcheckcandothingsMemcheckcan't:itcan
detectoverrunsofstackandglobalarrays,itcandetect
arbitrarilyfarout-of-boundsaccessestoheapblocks,anditcan
detectaccessesheapblocksthathavebeenfreedaverylongtime
ago(millionsofblocksinthepast).
Ptrcheckcurrentlyworksonlyonx86-linuxandamd64-linux.Touse
it,use--tool=exp-ptrcheck.Asimplemanualisprovided,aspart
ofthemainValgrinddocumentation.Asthisisanexperimental
tool,wewouldbeparticularlyinterestedinhearingaboutyour
experienceswithit.
*exp-Omega,anexperimentalinstantaneousleak-detectingtool,isno
longerbuiltbydefault,althoughthecoderemainsintherepository
andthetarball.Thisisduetothreefactors:aperceivedlackof
users,alackofmaintenance,andconcernsthatitmaynotbe
possibletoachievereliableoperationusingtheexistingdesign.
*Asusual,supportforthelatestLinuxdistrosandtoolchain
componentshasbeenadded.ItshouldworkwellonFedoraCore10,
OpenSUSE11.1andUbuntu8.10.gcc-4.4(initscurrentpre-release
state)issupported,asisglibc-2.9.TheC++demanglerhasbeen
updatedsoastoworkwellwithC++compiledbyeventhemostrecent
g++'s.
*Youcannowuseframe-levelwildcardsinsuppressions.Thiswasa
frequently-requestedenhancement.Aline"..."inasuppressionnow
matcheszeroormoreframes.Thismakesiteasiertowrite
suppressionswhicharepreciseyetinsensitivetochangesin
inliningbehaviour.
*3.4.0addssupportonx86/amd64fortheSSSE3instructionset.
*VerybasicsupportforIBMPower6hasbeenadded(64-bitprocessesonly).
*Valgrindisnowcross-compilable.Forexample,itispossibleto
crosscompileValgrindonanx86/amd64-linuxhost,sothatitruns
onappc32/64-linuxtarget.
*Youcansetthemainthread'sstacksizeatstartupusingthe
new--main-stacksize=flag(subjectofcoursetoulimitsettings).
Thisisusefulforrunningappsthatneedalotofstackspace.
*Thelimitationthatyoucan'tuse--trace-children=yestogether
with--db-attach=yeshasbeenremoved.
*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-bzMakereturntypesforsomeclientrequests64-bitclean
n-i-bzglibc2.9support
n-i-bzignoreunsafe.valgrindrc's(CVE-2008-4865)
n-i-bzMPI_Init(0,0)isvalidbutlibmpiwrap.csegfaults
n-i-bzBuildinginanenvwithoutgdbgivesbogusgdbattach
92456Tracingtheoriginofuninitialisedmemory
106497ValgrinddoesnotdemanglesomeC++templatesymbols
162222==106497
151612Suppressionwith"..."(frame-levelwildcardsin.suppfiles)
156404UnabletostartoocalcundermemcheckonopenSUSE10.3(64-bit)
159285unhandledsyscall:25(stime,onx86-linux)
159452unhandledioctl0x8B01on"valgrindiwconfig"
160954ppcbuildofvalgrindcrasheswithillegalinstruction(isel)
160956mallinfoimplementation,w/patch
162092Valgrindfailstostartgnome-system-monitor
162819malloc_free_filltestdoesn'tpassonglibc2.8x86
163794assertionfailurewith"--track-origins=yes"
163933sigcontext.errand.trapnomustbesettogether
163955removeconstraint!(--db-attach=yes&&--trace-children=yes)
164476Missingkernelmoduleloadingsystemcalls
164669SVNregression:mmap()dropsposixfilelocks
166581Callgrindoutputcorruptionwhenprogramforks
167288PatchfileformissingsystemcallsonCellBE
168943unsupportedscasinstructionpentium
171645Unrecognisedinstruction(MOVSD,non-binutilsencoding)
172417x86->IR:0x82...
172563amd64->IR:0xD90xF5-fprem1
173099.ldslinkerscriptgenerationerror
173177[x86_64]syscalls:125/126/179(capget/capset/quotactl)
173751amd64->IR:0x480xF0x6F0x45(evenmoreredundantprefixes)
174532==173751
174908--log-filevaluenotexpandedcorrectlyforcorefile
175044Addlookup_dcookieforamd64
175150x86->IR:0xF20xF0x110xC1(movssnon-binutilsencoding)
Developer-visiblechanges:
*Valgrind'sdebug-inforeadingmachineryhasbeenmajorlyoverhauled.
ItcannowcorrectlyestablishtheaddressesforELFdatasymbols,
whichissomethingthathasneverworkedproperlybeforenow.
Also,ValgrindcannowreadDWARF3typeandlocationinformationfor
stackandglobalvariables.Thismakesitpossibletousethe
frameworktobuildtoolsthatrelyonknowingthetypeandlocations
ofstackandglobalvariables,forexampleexp-Ptrcheck.
Readingofsuchinformationisdisabledbydefault,becausemost
toolsdon'tneedit,andbecauseitisexpensiveinspaceandtime.
However,youcanforceValgrindtoreadit,usingthe
--read-var-info=yesflag.Memcheck,HelgrindandDRDareableto
makeuseofsuchinformation,ifpresent,toprovidesource-level
descriptionsofdataaddressesintheerrormessagestheycreate.
(3.4.0.RC1:24Dec2008,vexr1878,valgrindr8882).
(3.4.0:3Jan2009,vexr1878,valgrindr8899).