Difference between revisions of "VT2020-Valgrind-Demo"

From air
Jump to navigation Jump to search
Line 13: Line 13:
   
 
Les fichiers source sont disponibles sur [https://github.com/Timmy7314/VT2020-Valgrind-demo GitHub].
 
Les fichiers source sont disponibles sur [https://github.com/Timmy7314/VT2020-Valgrind-demo GitHub].
  +
  +
Pour récupérer le projet, exécutez la commande suivante :
  +
<pre>
  +
$ git clone git@github.com:Timmy7314/VT2020-Valgrind-demo.git
  +
$ cd VT2020-Valgrind-demo
  +
</pre>
  +
  +
== Compiler le projet ==
  +
  +
Avant de compiler le projet il est important d'exécuter la commande suivante :
  +
<pre>$ make clean</pre>
  +
  +
Commande pour compiler le projet sans le flag pour debuguer:
  +
<pre>$ make PROG=...</pre>
  +
Commande pour compiler le projet avec le flag pour debuguer:
  +
<pre>$ make DEBUG=1 PROG=...</pre>
  +
  +
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 :
  +
  +
<pre>
  +
$ make clean && make DEBUG=1 PROG=1
  +
$ valgrind ./valgrind_test
  +
</pre>
  +
  +
=== Cas 2 ===
  +
  +
Pour tester Valgrind sans erreur et avec fuite mémoire, exécutez :
  +
  +
<pre>
  +
$ make clean && make DEBUG=1 PROG=2
  +
$ valgrind ./valgrind_test
  +
$ valgrind --track-origins=yes --leak-check=full --verbose --show-leak-kinds=all ./valgrind_test
  +
</pre>
  +
  +
=== Cas 3 ===
  +
  +
Pour tester Valgrind avec erreur et sans fuite mémoire, exécutez :
  +
  +
<pre>
  +
$ make clean && make DEBUG=1 PROG=3
  +
$ valgrind ./valgrind_test
  +
</pre>
  +
  +
=== Cas 4 ===
  +
  +
Pour tester Valgrind avec erreur et avec fuite mémoire, exécutez :
  +
  +
<pre>
  +
$ make clean && make DEBUG=1 PROG=4
  +
$ valgrind --track-origins=yes --leak-check=full --verbose --show-leak-kinds=all ./valgrind_test
  +
</pre>

Revision as of 19:08, 22 November 2020

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

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