Introduksjon til Valgrind
Valgrind er et
instrumenteringsrammeverk for å bygge dynamiske analyseverktøy. Det
finnes Valgrind verktøy som automatisk kan oppdage mange
minnehåndterings- og trådfeil, og profilprogrammer i detalj.
Valgrind kan også brukes til å bygge nye verktøy.
Notat
Utviklingsversjoner av BLFS kan kanskje ikke bygge eller kjøre
noen pakker riktig hvis LFS eller avhengigheter har blitt
oppdatert siden de siste stabile versjonene av bøkene.
Pakkeinformasjon
-
Nedlasting (HTTP):
https://sourceware.org/pub/valgrind/valgrind-3.25.0.tar.bz2
-
Nedlasting MD5 sum: c3da1f96462bc885ceaa528b171dc300
-
Nedlastingsstørrelse: 17 MB
-
Estimert diskplass som kreves: 618 MB (legg til 86 MB for
tester)
-
Estimert byggetid: 0.4 SBU (legg til 5.7 SBU for tester;
begge bruker parallellisme=4)
Valgrind Avhengigheter
Valgfri
docbook-xml-4.5 (for tester), GDB-16.3 (for tester),
libaio-0.3.113, LLVM-20.1.1 (med Clang), og
Which-2.23 (for tester)
Installasjon av Valgrind
Installer Valgrind ved å kjøre
følgende kommandoer:
sed -i 's|/doc/valgrind||' docs/Makefile.in &&
./configure --prefix=/usr \
--datadir=/usr/share/doc/valgrind-3.25.0 &&
make
For å teste resultatene, kjør: make
regtest. Testene kan henge for alltid hvis
GDB-16.3 ikke
er installert. Noen tester er kjent for å henge også, avhengig av
versjonen av glibc. Noen få tester kan mislykkes i ulike pakker.
Problematiske tester kan deaktiveres ved å endre prereq:
linjen i den tilsvarende
.vgtest
filen til prereq: false
. For eksempel:
sed -e 's@prereq:.*@prereq: false@' \
-i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest
En ekstra testpakke er nå tilgjengelig som tester Valgrind med hver
systemanrop levert av kjernen.Testsettet er utformet for å teste
ikke bare glibc og kjernens overholdelse av standarder, men også
Valgrinds evne til å håndtere forskjellige systemanrop.Testsettet
gjør krever en internettforbindelse for å laste ned testene, og det
tar lang tid tid å kjøre (en ekstra 20 SBUs og 1,3 GB diskplass.)
make ltpchecks. Merk
at utdataene vil vise flere feil der Valgrind for øyeblikket ikke
støtter visse systemanrop, men loggene for testspakken kan finnes i
auxprogs/auxchecks/ltp-full-20250130/valgrind-ltp-logs
mappen.
Notat
OpenMP tester hoppes over hvis
libgomp har blitt kompilert med --enable-linux-futex
(standard). Om nødvendig,
bare kompiler libgomp biblioteket på nytt fra gcc byggetreet,
send --disable-linux-futex
til
configure, lagre biblioteket et sted og endre koblingen fra
/usr/lib/libgomp.so.1
til å peke på
det nye bibliotek.
Nå, som root
bruker:
make install
Parameterforklaringer
sed -i ...
docs/Makefile.in : Dette sed sørger for
installering av dokumentasjonen i en versjonert mappe.
--enable-lto=yes
: Dette alternativet
lar deg bygge Valgrind med LTO (link time optimization). Dette gir
en mindre/raskere Valgrind (opptil 10%), men byggetiden øker til ca
5,5 SBU.