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, 11:06]
82.66.142.60, 127.0.0.1
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}}
 ---- ----
  
  
 ====== Valgrind ======= ====== Valgrind =======
- 
- 
- 
- 
- 
- 
- 
- 
- 
-===== 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 principaux outils : **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+  * **Memcheck** : un détecteur de fuites mémoires ​(option par défaut)
   * **Cachegrind** : un simulateur de caches   * **Cachegrind** : 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 le [[depots#​universe_et_multiverse|dépôt Universe]] activé.+  * 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é que l'on appelle **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** :
Ligne 66: 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 ====
Ligne 76: 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.1218964016.txt.gz
  • Dernière modification: Le 17/08/2008, 18:56
  • (modification externe)