Glib : utiliser valgrind pour détecter les memory leaks

Boris HUISGEN
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
Boris HUISGEN
Boris HUISGEN
Blog owner
  • #c
  • #glib
  • #valgrind