Valgrind-3.25.1

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]

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.

Contenu

Programmes installés: callgrind_annotate, callgrind_control, cg_annotate, cg_diff, cg_merge, ms_print, valgrind, valgrind-di-server, valgrind-listener et vgdb
Bibliothèques installées: None
Répertoires installés: /usr/lib/valgrind, /usr/libexec/valgrind, /usr/include/valgrind et /usr/share/doc/valgrind-3.25.1

Descriptions courtes

valgrind

est un programme pour déboguer et profiler les exécutables Linux

callgrind_annotate

prend en entré le fichier de sortie produit par l'outil Callgrind de Valgrind et affiche les informations dans une forme facile à lire

callgrind_control

contrôle les programmes en train d'être lancés par l'outil Callgrind de Valgrind

cg_annotate

est un outil de post-traitement pour l'outil Cachegrind de Valgrind

cg_diff

compare deux fichiers de sortie de Cachegrind

cg_merge

fusionne plusieurs fichiers de sortie de Cachegrind en un

ms_print

prend un fichier de sortie produit par l'outil Massif de Valgrind et affiche les informations dans une forme facile à lire

valgrind-di-server

est un serveur qui lit les informations de débogage des objets stockés sur un machine différente

valgrind-listener

écoute les commentaires de Valgrind sur un socket

vgdb

est un intermédiaire entre Valgrind et GDB ou un shell