IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

logiciels pour lister toutes les fuites de mémoire d'un prog


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut logiciels pour lister toutes les fuites de mémoire d'un prog
    J'insiste lourdement !!

    J'ai utilisé efence mais celui ci s'arrete à la première fuite de mémoire possible détecté (vous me direz que c'est en principe largement suffisant)
    néanmoins je suis en train de débugger un programme tournant en production et un problème de fuite de mémoire vient d'apparaitre, ayant du mal à l'identifier j'utilise efence mais celui s'arrete plus tot que mon erreur sur un autre problème de fuite de mémoire (apparemment)
    Comme je suis un peu pressé par le temps (en est en prod) j'aimerais d'abord m'ocuper de la fuite qui me fait planter en premier ! (les autres qui risque de planter plus tard je les résouderais après... chaque chose en son temps)

    Donc je voudrais un petit logiciel qui me dit : "ton programme à N zones sensibles ou des fuites de mémoires sont détectés les voici : ..."

    Est ce que quelqu'un connais quelquechose qui pourrait m'aider ?

    Merci

    PS : je sais pas si c'est très clair !

  2. #2
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Il y a memwatch (deja discute), mais il faut que l'execution se termine correctement (il corrige cependant certains bugs, comme le free sur un pointeur deja desalloue, mais pas les overflow si je me souviens bien.
    Sinon, tu peux essayer NJAMD, http://fscked.org/proj/njamd.shtml,
    ou encore d'autre malloc debugger (google )

    Sinon en prévention essaie de mieux coder, lis les cours et tutoriels pour bien apprendre la programmation en langage C : http://c.developpez.com/cours/

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut NJAMP
    merci de ton aide,

    mais njamp à l'ai de bcp ressembler à efence. Est ce que tu l'as déjà utilisé ? (car je vois pas de différence entre les deux) ?!

  4. #4
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut Re: NJAMPmerci de ton aide,
    Citation Envoyé par pierlot alexandre
    Est ce que tu l'as déjà utilisé ?
    Non ! Vu que ca a l'air plus recent, j'ai pense que ca pouvait aller (faire la correction et tout et tout). Mais c'est vrai que normallement, quand tu debug, tu corrige quand meme tout au fur et a mesure

    Sinon, j'ai l'impression que NJAMD est plus customizable ("Postmortem debugging & pointer lookup") donc je pense que tu peux peut-etre desactive la detection d'overflow (pour passer les premiers), et regarder a la fin la tronche des differents pointeurs.

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut MPatrol
    Quelqu'un a-t-il déjà utilisé mpatrol ?

  6. #6
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut
    si ton programme fait moins de 10000 ligne de code . pas besoin de logiciel pour fuite de memoire.
    parce que la j ai l impression que tu vas regler cela grace au logiciel. Mais ce n est pas parce qu il y a un logiciel pour ca que tu dois coder comme un bourrin en oubliant 15 million de free.

    un truc bien c est de compter les malloc et les free. si tu as plus de malloc que free deja il y a un bleme . puis tu lances ton programmes et tu fais un top (autre term). tu fais executer ton prog en testant des parties et tu verras s il y a une fuite memoire . ainsi cela te permet de savoir à peu prés où il y aune fuite. Aprés tu regardes ton code et tu analyses.

    voila (il ne faut pas etre dependant de logiciel comme cela.)

  7. #7
    Candidat au Club
    Inscrit en
    Septembre 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 5
    Points : 3
    Points
    3
    Par défaut et malheureusement y a bien plus de 10000 lignes de codes
    je suis tout a fait d'accord qu'il ne faut pas être dépendant de logiciel, qu'il ne faut pas coder comme un bourrin et tout et tout...

    Malheureusement j'arrive sur une appli existante avec bien plus de 10000 lignes de code. Utilisation de librairie propre, malloc dans tous les sens....

    S'il me suffisait de compter le nombre de malloc et de free ou de faire un top, ca ferait longtemps que ce serait réglé et je ne vous emberais pas avec mon problème. (compter je sais faire et le top me dit pas gd chose )

    Donc j'insiste est ce que quelqu'un à dejà utilisé mpatrol ?

    Merci

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2002
    Messages : 19
    Points : 25
    Points
    25
    Par défaut
    Salut

    Il y a la fonction mtrace qui permet de voir tous les perte de memoire. J'ai lue sur cette fonction v'la quelque jour mais je ne l'ai jamais utiliser il faudrais que je l'essaie. Cette fonction est dans glibc alors pas besoin d'ajouter une autre librairie, le header <mcheck.h>
    Hot Metal

  9. #9
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Comme je l'ai écris là :
    http://www.developpez.net/forums/viewtopic.php?t=36859

    (Message édité le 16 Juillet 2003 par Haypo)
    J'ai écrit un article qui se trouve ici :
    http://haypo.developpez.com/article/halloc/

    C'est mon code, donc pas de dépendance vis-à-vis d'un logiciel ;-) Et puis ça marche super, ça trouve :
    - Fuite de mémoire (manque un free)
    - Double free
    - Erreur d'overflow
    - Erreur d'underflow (je suppose, je programme tellement bien que ça ne m'est jamais arrivé )

    L'erreur est indiquée à la ligne près

    Défauts :
    - Ne teste pas les erreurs de lecture en dehors de la mémoire allouée (faut reprogrammer l'opérateur [], puis tous les memmove, strcpy, ... ?).

    @+ Haypo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour lister toutes les tâches
    Par base-un dans le forum VBA Project
    Réponses: 1
    Dernier message: 03/04/2014, 19h06
  2. Réponses: 1
    Dernier message: 21/03/2013, 16h17
  3. Code pour lister toutes les combinaisons
    Par tontonced dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 28/11/2011, 15h03
  4. Outils pour detecter les fuite de mémoire
    Par sese12345 dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 31/03/2010, 10h10
  5. [firebird 1.5] lister toutes les tables
    Par c0rwyn dans le forum SQL
    Réponses: 2
    Dernier message: 02/09/2004, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo