Détectez les fuites mémoire dans vos programmes

Magazine
Marque
GNU/Linux Magazine
Numéro
213
Mois de parution
mars 2018
Domaines


Résumé
Dans cet article, nous vous invitons à détecter et à corriger les fuites de mémoire. Nous disposons pour cela de trois programmes codés en langage C : un programme dont on a analysé le comportement et qui ne présente pas de fuite de mémoire, un premier programme bogué dont on a investigué et localisé la fuite de mémoire qu’on a par la suite corrigé et testé, et enfin un deuxième programme bogué que l'on va vous présenter et pour lequel on va essayer de susciter votre intérêt pour y trouver la fuite de mémoire et la corriger.


Dans un premier lieu, nous allons essayer de définir les fuites de mémoire par une brève présentation ainsi que les types d’allocations de mémoire en langage C et surtout celle qui peut induire une fuite de mémoire. En second lieu, nous étudierons le comportement de trois programmes dont deux d’entre eux présentent des fuites de mémoire. Enfin, en troisième lieu, nous allons investiguer, trouver et corriger la fuite contenue dans l’un des deux programmes bogués et… nous vous laisserons le soin de corriger l’autre.

1. Introduire les fuites de mémoire

1.1 Présentation des fuites de mémoires

Pour vous définir les fuites de mémoires, permettez-moi de vous confier que, mis à part le fait qu’elles représentent une souffrance lors du traitement de ce genre de problème et que ce soit un calvaire à vivre pour les développeurs C lorsqu’ils corrigent ce type de bug, c’est une véritable perte d’une partie de l’espace mémoire dédié à un programme dont...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Neuropsydia : un module Python pour les neuropsychologues

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Il existe peu d’outils permettant de créer « simplement » du matériel d’évaluation neuropsychologique. Neuropsydia est un outil qui nécessite un minimum de connaissances en informatique, mais permet un gain de temps considérable, si l’on accepte d’écrire quelques lignes de code Python.

Persistance et objets en C++

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

Au travers de deux articles [1-2] sur les principes de l’orienté objet en C++, nous avions abordé encapsulation, héritage, et polymorphisme. Nous proposons dans ce nouvel article les classes de base pour gérer la persistance d’objets dans des fichiers. Ces classes utilisent les principes énoncés ci-dessus et présentent des stratégies via la généricité. Un exemple de stratégie pour stocker en binaire pourra être redéfini pour d’autres stratégies, comme un stockage en XML.

Application réseau avec Erlang : utilisation du protocole UDP

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

La société Ericsson, pionnière dans le domaine des télécommunications, a été à l’origine de la création du langage Erlang. La bibliothèque standard offre toutes les méthodes pour gérer les connexions réseau, que ce soit pour créer son protocole au-dessus de TCP, UDP ou encore TLS, mais aussi en réutilisant des implémentations d’ores et déjà existantes au sein de l’écosystème fourni avec la release.