Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
valgrind [Le 17/08/2008, 06:13]
nicolas66
valgrind [Le 01/09/2022, 00:07] (Version actuelle)
moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>dapper feisty gutsy hardy intrepid ​programmation}}+{{tag>Xenial ​programmation}}
 ---- ----
  
Ligne 5: Ligne 5:
 ====== Valgrind ======= ====== Valgrind =======
  
 +**Valgrind** est une suite d'​outils de profilage et de débuggage mémoire sous licence GPL, qui permet de détecter des problèmes de gestion mémoire dans des programmes écrits en C / C++. Plus généralement,​ **Valgrind** repose sur une architecture générique permettant la supervisation de programmes à l'aide de 3 principaux outils :
  
- +  ​* **Memcheck** : un détecteur de fuites mémoires ​(option par défaut) 
- +  * **Cachegrind** : un simulateur de caches
- +
- +
- +
-===== Présentation ===== +
- +
-**Valgrind** est une suite d'​outils de profilage et de débuggage mémoire sous licence GPL, qui permet de détecter des problèmes de gestion mémoire dans des programmes écrits en C / C++. Plus généralement,​ **Valgrind** repose sur une architecture générique permettant la supervisation de programmes à l'aide de 3 outils principaux : +
- +
-  ​* **Memcheck** : un détecteur de fuites mémoires +
-  * **Callgrind** : un simulateur de caches+
   * **Callgrind** : un profileur   * **Callgrind** : un profileur
  
-La détection d'​erreurs fonctionne de cette manière : le programme doit être lancé dans l'​environnement de Valgrind. Toutes les entrées / sorties mémoires sont alors analysées et vérifiées ​minitieusement ​en interceptant tous les appels à (malloc|new) et (free|delete).+La détection d'​erreurs fonctionne de cette manière : le programme doit être lancé dans l'​environnement de Valgrind. Toutes les entrées / sorties mémoires sont alors analysées et vérifiées ​minutieusement ​en interceptant tous les appels à (malloc|new) et (free|delete).
  
 <note importante>​ <note importante>​
 **Valgrind** n'est pas capable de détecter certaines anomalies liées au code. Par exemple, il ne permet pas de vérifier les indices hors tableau sur des tableaux déclarés en statique. **Valgrind** n'est pas capable de détecter certaines anomalies liées au code. Par exemple, il ne permet pas de vérifier les indices hors tableau sur des tableaux déclarés en statique.
 </​note>​ </​note>​
 + 
 ===== Pré-requis ===== ===== Pré-requis =====
-  * Avoir une connexion Internet fonctionnelle +  
-  * Avoir les [[depots#​universe_et_multiverse|dépôts Universe et Multiverse]] activés.+  * Disposer des [[:sudo|droits d'​administration]]
 +  * Disposer d'une connexion à Internet configurée et activée.
  
 ===== Installation ===== ===== Installation =====
-Il suffit d'​installer le paquet **[[apt://valgrind]]**.+ 
 +il suffit d'[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>valgrind]]**.
  
  
 ===== Utilisation ===== ===== Utilisation =====
-Dans ce qui suit, on considère un programme C compilé avec GNU / gcc : **test**. Ouvrez un terminal et suivez les instructions ci-dessous selon le test souhaité. +Dans ce qui suit, on considère un programme C compilé avec l'​option -g, que l'on appelle ​**test**. Ouvrez un terminal et suivez les instructions ci-dessous selon l'​outil désiré.
  
 ==== Détection de fuites mémoires ==== ==== Détection de fuites mémoires ====
-L'​outil ​**memcheck** est l'outil de détection de fuites mémoires appelé par défaut. Il recherche les zones mémoires qui ne plus pointées et qui n'ont pas été désallouée ​(comportement par défaut).+**memcheck** est un outil de détection de fuites mémoires appelé par défaut. Il recherche les zones mémoires qui ne sont plus pointées et qui n'ont pas été désallouées ​(comportement par défaut).
  
 Tapez par exemple la commande suivante pour lancer la détection d'​erreurs sur **test** : Tapez par exemple la commande suivante pour lancer la détection d'​erreurs sur **test** :
  
-  valgrind --tool=memcheck --leak-check=yes|no|full|summary --leak-resolution=low|med|high --show-reachable ./test+  valgrind --tool=memcheck --leak-check=yes|no|full|summary --leak-resolution=low|med|high --show-reachable=yes ./test
  
 où le paramètre `leak-check'​ peut prendre les valeurs suivantes : où le paramètre `leak-check'​ peut prendre les valeurs suivantes :
Ligne 61: Ligne 54:
  
   valgrind --tool=cachegrind --I1=65535,​2,​64 --D1=65535,​2,​64 --L2=65535,​2,​64 ./test   valgrind --tool=cachegrind --I1=65535,​2,​64 --D1=65535,​2,​64 --L2=65535,​2,​64 ./test
- 
  
 ==== Profilage ==== ==== Profilage ====
-L'​outil **callgrind** permet ​de d'​effectuer un profilage poussé du programme en comptabilisant le nombre d'​appels et les coûts associés.+L'​outil **callgrind** permet d'​effectuer un profilage poussé du programme en comptabilisant le nombre d'​appels et les coûts associés.
  
 Tapez par exemple la commande suivante pour lancer le profilage sur **test** : Tapez par exemple la commande suivante pour lancer le profilage sur **test** :
Ligne 70: Ligne 62:
   valgrind --tool=callgrind ./test   valgrind --tool=callgrind ./test
  
 +
 +===== Interfaces graphiques =====
 +
 +  * [[apt>​Kcachegrind]] (dans les dépôts) permet de visualiser graphiquement les rapports de valgrind
 +
 +  * Il existe une extension qui permet d'​intégrer la plupart des outils valgrind (memcheck, massif, cachegrind, mais pas callgrind) dans eclipse.
 +
 +[[http://​www.eclipse.org/​linuxtools/​projectPages/​valgrind/​]]
 +
 +Rentrer l'​adresse [[http://​download.eclipse.org/​technology/​linuxtools/​update]] dans help/​software updates .
 +
 +  * [[apt>​Alleyoop]] (dans les dépôts) permet de visualiser graphiquement les rapports de valgrind, et aide à la correction.
 +
 +===== Désinstallation =====
 + 
 +Pour supprimer cette application,​ il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'​application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.
 + 
 ===== Références ===== ===== Références =====
 A titre informatif, voici quelques liens : A titre informatif, voici quelques liens :
  
-  * Manuel **Valgrind** complet : [[http://​valgrind.org/​docs/​manual/​index.html]] +  * Manuel **Valgrind** complet : [[https://​valgrind.org/​docs/​manual/​index.html]] 
-  * Guide **Valgrind** de démarrage rapide : [[http://​valgrind.org/​docs/​manual/​QuickStart.html]]+  * Guide **Valgrind** de démarrage rapide : [[https://​valgrind.org/​docs/​manual/​QuickStart.html]] 
 +  * http://​www.siteduzero.com/​tutoriel-3-473022-debuguer-facilement-avec-valgrind.html 
 + 
 +---- 
 +//​Contributeurs:​ [[utilisateurs:​nicolas66]]//​
  • valgrind.1218946384.txt.gz
  • Dernière modification: Le 18/04/2011, 14:54
  • (modification externe)