Glib : utiliser valgrind pour détecter les memory leaks

Boris HUISGEN February 23, 2012

développement c glib valgrind

Une petite note pour détecter les problèmes mémoire d’un programme utilisant la Glib avec Valgrind.

Les options à fournir sont les suivantes :

bhuisgen@debian:~/projects/sample/$ G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --leak-check=full --leak-resolution=high --num-callers=20 ./program

Malgré la désactivation des optimisations de la Glib, notamment les pools mémoires, Valgrind détecte encore de nombreux problèmes. Dans un tel cas, seul un fichier de suppression permet de désactiver les erreurs n’ayant aucun rapport avec votre code. Le projet GNOME.supp a pour but de regrouper un ensemble de fichiers prêts à l’emploi. L’utilisation est alors aisée :

bhuisgen@debian:~/projects$ git clone https://github.com/dtrebbien/GNOME.supp
bhuisgen@debian:~/projects/GNOME.supp$ cd GNOME.supp
bhuisgen@debian:~/projects/GNOME.supp$ make

On indique ensuite le fichier de suppression à Valgrind :

bhuisgen@debian:~/projects/sample/$ G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --leak-check=full --leak-resolution=high --num-callers=20 --suppressions=../GNOME.supp/glib.supp ./program

See also

Inotify : monitorer les actions effectuées dans un répertoire
Read more
pfwd : proxy de redirection TCP IPv4 & IPv6
Read more
Nginx : configuration d’hôte avec root virtuel
Read more