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

Visual C++ Discussion :

Probleme Memory leak


Sujet :

Visual C++

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 84
    Par défaut Probleme Memory leak
    Bonjour,

    Je programme sous visual studio 2005 et avec openCv.
    J'ai un programme qui traite pas mal d'images et il se trouve que j'ai des fuites de mémoires à certains endroit mais impossible de savoir ou. J'ai l'impression que j'effectue bien mes delete après chaque appel à un new (et mes cvReleaseImage pour openCv).

    J'ai essayer d'utiliser le debugger de Visual pour trouver l'emplacement des fuites.
    Voila comment j'ai procédé:
    J'ai ajouté ses lignes en debut de programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define _CRTDBG_MAP_ALLOC
    #include <stdlib.h>
    #include <crtdbg.h>
    et celle la à la fin

    Dans l'aide ici http://msdn.microsoft.com/fr-fr/libr...=vs.80%29.aspx ils disent que lorsque l'on fait ça la ligne et le fichier d'ou provient s'affiche dans la sortie. Mais pour moi j'obtiens uniquement ces informations et non la ligne.

    Detected memory leaks!
    Dumping objects ->
    {18} normal block at 0x00780E80, 64 bytes long.
    Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
    Object dump complete.
    Des suggestions??

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 470
    Par défaut
    Cela ne marche que pour le code qui est compilé avec le define _CRTDBG_MAP_ALLOC et "include <crtdbg.h>", et en Debug.

    Or, les libs que vous utilisez non certainement pas été compilées avec le define _CRTDBG_MAP_ALLOC et probablement pas avec la même C-Runtime.

    Cela permet donc devoir les fuites de votre code mais pas celles des bibliothèques utilisées, ni celles engendrées par une mauvaise utilisation de ces bibliothèques.

    Il faut donc soit avoir des versions "fuite détecteur" de ces Dll, soit recompiler ces librairie avec ce define et la mêle C-Runtime.
    Cela peut être complexe et fastidieux.

    Une autre approche est de détecter les zones du programme qui fuitent avec des snapshots entre chaque actions qui doit laisser la mémoire libre.
    http://www.codeguru.com/forum/showthread.php?t=316240

Discussions similaires

  1. Compilation TAO / Mfc : Memory Leaks
    Par Rolsct dans le forum CORBA
    Réponses: 4
    Dernier message: 17/04/2005, 19h13
  2. [MFC] Thread & memory leaks
    Par Racailloux dans le forum MFC
    Réponses: 7
    Dernier message: 15/03/2005, 12h44
  3. Memory leak en C/C++
    Par Roswell dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 07/07/2004, 19h41
  4. [MFC] A la chasse au memory leak
    Par Yabo dans le forum MFC
    Réponses: 17
    Dernier message: 27/06/2004, 17h35
  5. Réponses: 7
    Dernier message: 26/02/2004, 09h32

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