Así es como uso Valgrind para detectar errores de memoria en pygit2.
El primer problema que encontré fue que Valgrind se negaba a funcionar si Glibc no estaba compilado con símbolos de depuración.
Esto es lo que hice en mi notebook con Gentoo: edité el archivo /etc/portage/make.conf para habilitar la opción splitdebug:
Luego reinstalé glibc:
El gran problema es que ejecutar Valgrind con una extensión C de Python genera muchos falsos positivos. Hay varias cosas que debes hacer para evitarlos.
La primera es usar la última versión de Valgrind 3.7, debido a un bug presente en la versión 3.6 que olvidé mencionar.
Ahora, necesitas instalar una versión de Python que se use con Valgrind:
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Ahora necesitas usar el archivo de supresión que encontrarás en los fuentes de Python, en Misc/valgrind-python.supp. Así es como ejecuto los tests unitarios en pygit2 para encontrar problemas:
¡Eso es todo!
