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 pouvoir être construit et fonctionner
correctement avec une plateform 12.4.
Informations sur le paquet
-
Téléchargement (HTTP) :
https://sourceware.org/pub/valgrind/valgrind-3.25.1.tar.bz2
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
2b424c9a43aa9bf2840d4989b01ea6e7
-
Taille du téléchargement : 16 Mo
-
Estimation de l'espace disque requis : 419 Mo (plus
86 Mo pour les tests)
-
Estimation du temps de construction : 0,4 SBU (plus
5,7 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-20.1.8 (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.25.1 &&
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
Une suite de tests supplémentaire est maintenant disponible pour
tester Valgrind avec tous les appels systèmes fournis par le noyau.
La suite de tests est conçue pour tester non seulement la
conformité de la glibc et du noyau aux standards, mais également
pour tester la capacité de Valgrind à gérer les différents appels
systèmes. La suite de tests nécessite une connexion internet pour
télécharger les tests, et cela peut prendre du temps (20 SBU
supplémentaires et 1,3 Go d'espace disque). Si vous souhaitez
exécuter cette suite de tests, exécutez la commande suivante :
make ltpchecks.
Remarquez que la sortie indiquera plusieurs échecs où Valgrind ne
prend actuellement pas en charge certains appels systèmes, mais les
journaux de la suite de tests se trouvent dans le répertoire
auxprogs/auxchecks/ltp-full-20250130/valgrind-ltp-logs
.
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.