VT2020-Valgrind-Demo

Démonstration de Valgrind en lien avec la fiche de synthèse VT2020-Valgrind-Fiche dans le cadre du cours de veille technologique 2020.

= Installation =

Pour la démonstration il est impératif d'avoir installé GCC, Make Valgrind et Git. Si ce n'est pas fait, merci d'exécuter la commande suivante :

$ sudo apt-get install -y build-essential git valgrind

= Démonstration =

Les fichiers source sont disponibles sur GitHub.

Pour récupérer le projet, exécutez la commande suivante : $ git clone git@github.com:Timmy7314/VT2020-Valgrind-demo.git $ cd VT2020-Valgrind-demo

Compiler le projet
Avant de compiler le projet il est important d'exécuter la commande suivante : $ make clean

Commande pour compiler le projet sans le flag pour debuguer: $ make PROG=... Commande pour compiler le projet avec le flag pour debuguer: $ make DEBUG=1 PROG=...

Le paramètre PROG prend quatre valeurs différentes :
 * 1 : Version du code sans fuite mémoire et sans erreur
 * 2 : Version du code avec fuite mémoire et sans erreur
 * 3 : Version du code sans fuite mémoire et avec erreur
 * 4 : Version du code avec fuite mémoire et avec erreur

Cas 1
Pour tester Valgrind sans erreur et sans fuite mémoire, exécutez :

$ make clean && make DEBUG=1 PROG=1 $ valgrind ./valgrind_test

Cas 2
Pour tester Valgrind sans erreur et avec fuite mémoire, exécutez :

$ make clean && make DEBUG=1 PROG=2 $ valgrind ./valgrind_test $ valgrind --track-origins=yes --leak-check=full --verbose --show-leak-kinds=all ./valgrind_test

Signification des paramètres :
 * : Pour afficher chaque fuite mémoire en détail.
 * : Pour afficher tous les types de fuite mémoire (, ,  , *  ).
 * : Permet d'avoir la trace des variables non initialisées.

Cas 3
Pour tester Valgrind avec erreur et sans fuite mémoire, exécutez :

$ make clean && make DEBUG=1 PROG=3 $ valgrind ./valgrind_test

Cas 4
Pour tester Valgrind avec erreur et avec fuite mémoire, exécutez :

$ make clean && make DEBUG=1 PROG=4 $ valgrind --track-origins=yes --leak-check=full --verbose --show-leak-kinds=all ./valgrind_test