Valgrind

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Valgrind
Image illustrative de l'article Valgrind
Logo

Développeur Julian Seward
Dernière version 3.9.0 (1er novembre 2013) [+/-]
Environnement GNU/Linux, Mac OS X
Licence GNU GPL 2
Site web valgrind.org

Valgrind (prononcé [vælɡrɪnd], et non [vælɡraɪnd][1]) est un outil de programmation libre pour déboguer, effectuer du profilage de code et mettre en évidence des fuites mémoires.

Débogueur[modifier | modifier le code]

Il fut à l'origine conçu pour être une version libre de Purify sous GNU/Linux, sur architecture x86. Il a aujourd'hui évolué, en devenant un framework générique pour la création d'outils dynamiques comme des « checkers » et « profilers ». Il a une excellente réputation et est largement répandu parmi les programmeurs GNU/Linux.

Valgrind est un logiciel modulaire. Parmi les modules on trouve par exemple Memcheck, qui permet de débusquer les failles dans un programme au niveau de l'utilisation de la mémoire. Memcheck vérifie entre autres :

  • Que l'on n'utilise pas de valeurs ou de pointeurs non initialisés ;
  • Que l'on n'accède pas à des zones mémoire libérées ou non allouées ;
  • Que l'on ne libère pas deux fois une zone mémoire ;
  • Que l'on n'oublie pas de libérer la mémoire allouée. Des options permettent de connaître avec précision les zones de mémoire qui sont perdues ;
  • Que l'on passe des arguments valides à certaines fonctions de la bibliothèque standard comme la fonction memcpy().

Analyseur de performance (Profileur)[modifier | modifier le code]

Le module Cachegrind permet de mettre en évidence les défauts de cache qui ralentissent l'exécution du programme.

Le module Massif permet de suivre l'utilisation de la pile et de déterminer les parties du programmes qui l'utilisent le plus.

Le module CallGrind permet de compter le nombre d'appel pour toutes les routines d'un programme durant son exécution, ainsi que le temps passé dans la routine.

Modules supplémentaires[modifier | modifier le code]

Grâce à son architecture modulaire, de nombreux modules tiers ont été écrits pour satisfaire des besoins divers.

Articles connexes[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. (en) http://valgrind.org/docs/manual/faq.html#faq.pronounce.