Glib : utiliser valgrind pour détecter les memory leaks

Boris HUISGEN
|
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