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.
Note
Les versions de développement de BLFS peuvent ne pas arriver à
contruire ou à exécuter certains paquets correctement si LFS ou
des dépendances ont été mises à jour depuis la dernière version
stable des livres.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://sourceware.org/pub/valgrind/valgrind-3.26.0.tar.bz2
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
856da1bc568212df6df502295a0439c0
-
Taille du téléchargement : 16 Mo
-
Estimation de l'espace disque requis : 414 Mo (plus
86 Mo pour les tests)
-
Estimation du temps de construction : 0,5 SBU (plus
6,4 SBU pour les tests, tous deux avec parallélisme = 4)
Dépendances de Valgrind
Facultatives
docbook-xml-4.5 (pour les tests), GDB-16.3 (pour les
tests), libaio-0.3.113, LLVM-21.1.2 (avec Clang), et
Which-2.23 (pour les tests)
Installation de Valgrind
Installez Valgrind en exécutant
les commandes suivantes :
sed -i 's|/doc/valgrind||' docs/Makefile.in &&
./configure --prefix=/usr \
--datadir=/usr/share/doc/valgrind-3.26.0 &&
make
Pour tester les résultats, tapez : make regtest. Les tests peuvent
bloquer si GDB-16.3 n'est pas installé. Quelques tests sont
également connus pour se bloquer, en fonction de la version de
glibc. Quelques tests peuvent échouer dans plusieurs suites. 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
An additional test suite is now available that tests Valgrind with
every system call provided by the kernel. The test suite is
designed to test not only glibc and the kernel's conformance to
standards, but also Valgrind's ability to handle different system
calls. The test suite does require an internet connection to
download the tests, and it takes a long time to run (an additional
20 SBUs and 1.3GB of disk space.) If you wish to run this test
suite, issue the following command: make ltpchecks. Note that the
output will show several failures where Valgrind does not currently
support certain system calls, but the logs for the test suite can
be found in the auxprogs/auxchecks/ltp-full-20250930/ltp/tests
directory.
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.