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.
This package is known to build and work properly using an LFS-11.0
platform.
Informations sur le paquet
Téléchargements supplémentaires
Dépendances de Valgrind
Facultatives
GDB-10.2 (pour
les tests), LLVM-12.0.1 (avec Clang), et Which-2.21
(pour les tests)
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/valgrind
Installation de Valgrind
Tout d'abord, effectuez plusieurs changements requis pour que
Valgrind fonctionne sur les systèmes avec glibc-2.34
installée :
patch -Np1 -i ../valgrind-3.17.0-upstream_fixes-1.patch
Installez Valgrind en lançant les
commandes suivantes :
autoreconf -fiv &&
sed -i 's|/doc/valgrind||' docs/Makefile.in &&
./configure --prefix=/usr \
--datadir=/usr/share/doc/valgrind-3.17.0 &&
make
Pour tester les résultats, tapez : make regtest. Les tests peuvent
freezer si GDB-10.2 n'est pas installé. Quelques tests sont
connus pour freezer également, en fonction de la version de glibc.
Certains tests dans la suite de tests « drd » sont aussi
connus pour échouer. 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
Explication des commandes
sed -i ...
docs/Makefile.in : Ce sed permet d'installer
la documentation dans un répertoire versionné.
--enable-lto=yes
: Cette option
permet de construire Valgrind avec LTO (optimisation à l'édition de
liens). Cela produit un Valgrind plus petit et plus rapide (jusqu'à
10 %) mais le temps de construction augmente à 5.5 SBU.