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
Tester Valgrind
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 :
--leak-check=full
: Pour afficher chaque fuite mémoire en détail.--show-leak-kinds=all
: Pour afficher tous les types de fuite mémoire (definite
,indirect
,possible
, *reachable
).--track-origins=yes
: 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