Introduction à Valgrind
Valgrind est une boite à outils
d'instrumentation pour construire des outils d'analyses dynamiques.
Il y a les outils de Valgrind qui peuvent automatiquement détecter
plusieurs bogues de gestion de mémoires et de threading, et des
programmes de profilages en détail. Valgrind peut également être
utilisé pour construire de nouveaux outils.
Ce paquet est connu pour se construire correctement sur une
plateforme LFS-8.2.
Informations sur le paquet
Dépendances de Valgrind
Facultatives
BIND-9.12.0 ou BIND
Utilities-9.12.0 (pour les tests), Boost-1.66.0, GDB-8.1 (pour les tests),
LLVM-5.0.1
(avec Clang), et Which-2.21 (pour les tests)
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/valgrind
Installation de Valgrind
Tout d'abord, corrigez un bogue qui a été exposé par
glibc-2.26 :
sed -i '1904s/4/5/' coregrind/m_syswrap/syswrap-linux.c
Installez Valgrind en lançant les
commandes suivantes :
sed -i 's|/doc/valgrind||' docs/Makefile.in &&
./configure --prefix=/usr \
--datadir=/usr/share/doc/valgrind-3.13.0 &&
make
Note
Pour lancer les tests pour ce paquet, valgrind a besoin d'une
version de /lib/ld-2.26.so (ou supérieur) avec les symboles de
débogage. Normalement dans LFS ces symboles de débogages sont
nettoyés à la fin du chapitre 6. Pour obtenir cette bibliothèque,
glibc doit être reconstruit avec la version actuelle de glibc en
utilisant le même compilateur qui a été utilisé pour construire
LFS. Le fichier ld.so peut ensuite être renommé en ld-2.26.so.dbg
et copié dans /lib. Ensuite un lien symbolique doit être
changé :
ln -sfv ld-2.26.so.dbg /lib/ld-linux-x86-64.so.2
Ajustez les instructions ci-dessus comme requis pour un système
32-bit ou pour une version différente de glibc.
En plus, d'autres bibliothèques glibc avec les symboles de
débogage peuvent être requises pour certains tests.
Pour tester les résultats, tapez : make regtest. Les tests peuvent
freezer si GDB-8.1 n'est pas installé. Quelques tests sont
connus pour freezer également, en fonction de la version de glibc.
Les tests problématiques peuvent être désactivés en changeant la
ligne prereq:
dans
le fichier .vgtest
correspondants en
prereq: false
. Par
exemple :
sed -e 's@prereq:.*@prereq: false@' \
-i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest
Note
Les tests OpenMP sont ignorés si
libgomp a été compilé avec --enable-linux-futex
(valeur par défaut). Si
besoin, recompilez simplement libgomp depuis l'arborescence de
construction de gcc, en passant --disable-linux-futex
au script configure, en
enregistrant la bibliothèque ailleurs et en changeant le lien de
/usr/lib/libgomp.so.1
vers la
nouvelle bibliothèque.
Maintenant, en tant qu'utilisateur root
:
make install