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

Autres éditeurs Discussion :

Trackeur de fuites mémoires


Sujet :

Autres éditeurs

  1. #1
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut Trackeur de fuites mémoires
    Bonjour,

    Peut-etre qu'ici quelqu'un connaitrait un trackeur de fuites mémoires pour programme C sous Mac Os X ???

    Merci, et bonne journée à tous !

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    Peut-etre qu'ici quelqu'un connaitrait un trackeur de fuites mémoires pour programme C sous Mac Os X ???
    Pas sûr que ça fonctionne sous Mac OS X, mais les plus connus sont Valgrind, Purify, efence. Il y a aussi ma modeste contribution :

    http://emmanuel-delahaye.developpez.com/clib.htm
    Module SYSALLOC

    qui a l'avantage d'être 100% ANSI donc indépendante de la plateforme...

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    D'après leurs docs Valgrind, Purify et efence ne sont pas prévus pour Mac Os X, je me suis donc retourné vers ta bibliothèque.

    (Au passage, les indications sur ton site sont très claires, et tout fonctionne bien très vite !)

    Dans mon programme en C, j'interface une bibliothèque en C++, et j'ai peur que les fuites mémoires viennent de là...
    Est-ce que ta bibliothèque peut alors fonctionner pour voir si mes structures C, utilisées dans ce fichier C++, et initialisées avec des "malloc", sont bien libérées (ce fichier est le seul du projet compiler avec g++) ?

    D'autres part, je manipule pas mal de chaîne de caractères, parfois ces chaînes de caractères sont initialisés automatiquement avec des malloc mais parfois ce sont des constantes (je sais c'est pas terrible) alors cela pose certains problèmes pour la libération de la mémoire... Y'a t-il un moyen "propre" de procéder ?

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    Dans mon programme en C, j'interface une bibliothèque en C++, et j'ai peur que les fuites mémoires viennent de là...
    C'est pas très clair. Le programme est en C et il appelle des fonctions C++ ou le contraire ?

    Mon code est prévu pour un programme compilé en C. Il ne traite pas les new/delete du C++. Cependant, son interface (sysalloc.h) est prévue pour fonctionner dans un environnement C++ (jamais testé) du moment que son implémentation (sysalloc.c) est compilée en C, on est bien d'accord ?
    Est-ce que ta bibliothèque peut alors fonctionner pour voir si mes structures C, utilisées dans ce fichier C++, et initialisées avec des "malloc", sont bien libérées (ce fichier est le seul du projet compiler avec g++) ?
    OK, oui. Mais ton code C devrait être indépendant du C++ et donc être testable séparément en tant qu'application C.
    D'autres part, je manipule pas mal de chaîne de caractères, parfois ces chaînes de caractères sont initialisés automatiquement avec des malloc mais parfois ce sont des constantes (je sais c'est pas terrible) alors cela pose certains problèmes pour la libération de la mémoire... Y'a t-il un moyen "propre" de procéder ?
    Oui.

    Déjà, libérer une chaine non allouée est un bug grave. (comportement indéterminé).

    Le plus simple est d'utiliser exclusivement l'allocation dynamique et la libération est systématique (remets à NULL après libération, ça évite les embrouilles)
    Si tu as une chaine constante, tu fais une copie dynamique avec la fonction POSIX.1 strdup(). Attention, elle échappe à la surveillance de SYSALLOC.
    Pour éviter ça, j'utilise ma fonction STR_dup() du module STR qui a l'avantage d'être portable (100% C-ANSI).

    N'hésite pas à poser des questions si nécessaire.

    Fait des essais sur des petits bouts de code pour t'entrainer à maitriser SYSALLOC.

    Pour les chaines, une alternative est d'apprendre à utiliser mon module FSTR (Flexible STRings). Si besoin est, je fais une doc (il y a déjà le test unitaire qui sert d'exemple... si on arrive à le comprendre).

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    C'est pas très clair. Le programme est en C et il appelle des fonctions C++ ou le contraire ?
    Le programme principale est C, et appelle des fonctions écrites en C++ ayant des signatures C.

    Citation Envoyé par Emmanuel Delahaye
    Si tu as une chaine constante, tu fais une copie dynamique avec la fonction POSIX.1 strdup(). Attention, elle échappe à la surveillance de SYSALLOC.
    Pour éviter ça, j'utilise ma fonction STR_dup() du module STR qui a l'avantage d'être portable (100% C-ANSI).

    N'hésite pas à poser des questions si nécessaire.

    Fait des essais sur des petits bouts de code pour t'entrainer à maitriser SYSALLOC.

    Pour les chaines, une alternative est d'apprendre à utiliser mon module FSTR (Flexible STRings). Si besoin est, je fais une doc (il y a déjà le test unitaire qui sert d'exemple... si on arrive à le comprendre).
    Je te remercie pour ces conseils. Cependant, je ne vais utiliser tes bibliothèques que pour tester les miennes... Il pourrait y avoir quelques problèmes de licences et de droits d'auteurs sinon...

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    Le programme principale est C, et appelle des fonctions écrites en C++ ayant des signatures C.
    On va considérer que c'est du C. Les fonctions de cette bibliothèque sont, bien sûr, validées et ne créent pas de fuite mémoire quand elles sont bien utilisées, on est d'accord ?
    Je te remercie pour ces conseils. Cependant, je ne vais utiliser tes bibliothèques que pour tester les miennes... Il pourrait y avoir quelques problèmes de licences et de droits d'auteurs sinon...
    Mon code est libre de droit. Je demande juste que le nom de l'auteur (ED) soit laissé. C'est pas trop méchant comme licence...

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Après avoir éliminer toutes les fuites mémoires de ma bibliothèque codée en C (pas une mince affaire), je me suis attaquée à mon interface de bibliothèque c++.

    En fait, cette interface est codée en C++, avec des classes C++ (comportant des attributs et des méthodes) et compilée avec g++. Mais cette interface posséde aussi quelques fonctions avec des entêtes C, qui sont appelées depuis la partie de la bibliothèque codée en C.

    J'ai donc tester ta bibliothèque SYS_ALLOC sur cette interface, mais a priori ne fonctionne pas. J'ai tester en rajoutant des lignes comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int* testMalloc = (int*) malloc (sizeof (int) * 10);
    sans mettre de "free", bien sûr! Et au final, aucune fuite mémoire n'est détectée, quelle que soit l'endroit où est rajouté le malloc...

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    J'ai donc tester ta bibliothèque SYS_ALLOC sur cette interface, mais a priori ne fonctionne pas. J'ai tester en rajoutant des lignes comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int* testMalloc = (int*) malloc (sizeof (int) * 10);
    sans mettre de "free", bien sûr! Et au final, aucune fuite mémoire n'est détectée, quelle que soit l'endroit où est rajouté le malloc...
    Est-ce que tu as mis #include "ed/inc/sysalloc.h" a la première ligne le source qui contient ce malloc () ?

  9. #9
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Oui...

  10. #10
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    Oui...
    Et même quand g++ est appelé, DBG_SYSALLOC est définie globalement sur la ligne de commande ?

  11. #11
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Et même quand g++ est appelé, DBG_SYSALLOC est définie globalement sur la ligne de commande ?
    Oups...

    Bon effectivement, les malloc bidons sont reconnus, et je n'avait pas d'autres fuites mémoire avec des mallocs sur cette interface C++...
    Toujours est-il qu'il me reste quelques soucis.

    En fait ce sont des fuites mémoires minimes : on ne les voit pas en execution normale, en regardant la mémoire utilisée par mon programme.
    Le soucis, c'est que je doit prouver une certaine fiabilité de mon programme en le bombardant. Du coup, je n'appelle pas les fonctions "percées" quelques fois ou même centaine de fois, mais plutôt quelques centaines de milliers de fois voire millions de fois...
    Alors, là les soucis arrivent... Comme on dit, ce sont les petits ruisseaux qui forment les grandes rivières, et bien imaginez ce que cela donne, avec des millions de ruisseaux !!!

    Je ne vois donc pour le moment qu'une solution (outre colmater les fuites -- mais mon temps est compté), c'est de créer un shell qui lancera pleins de fois mon programme...
    D'où une petite question, pour un programme lancer par un shell, la libération de la mémoire utilisée par le programme se fait à la fin de l'execution de celui-ci ou à la fin du shell ?

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    En théorie, à la fin du programme, ou sous unixoïde, peut-être bien au moment où le shell détecte la fin du programme.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    Toujours est-il qu'il me reste quelques soucis.

    En fait ce sont des fuites mémoires minimes : on ne les voit pas en execution normale, en regardant la mémoire utilisée par mon programme.
    De quelles fuites s'agit-il et comment sont elles évaluées ?
    Je ne vois donc pour le moment qu'une solution (outre colmater les fuites -- mais mon temps est compté), c'est de créer un shell qui lancera pleins de fois mon programme...
    Ca ne va rien changer. Ou alors, c'est que le système est sérieusement buggé (ne récupère pas la mémoire libérée) ou que c'est une autre ressource que 'malloc/free' qui est en jeu.

    Attention à ne pas se tromper de cible. C'est ton code que tu testes, pas le système. Si ton code provoque des fuites mémoire dans le système, il faut chercher ailleurs...

    Pour tester la stabilité du programme dans le temps, tu peux ajouter un mécanisme (commande shell, timer, clickodrome) qui appelle la fonction sys_mem_trace() et/ou sys_mem_counters() qui indique l'état courant de la mémoire sur stdout. Ca permet de vérifier la stabilité de la mémoire en allant consulter de temps en temps dans les phases de calme.

    C'est comme ça que j'ai qualifié des équipements de réseau numériques 24/7. Ils tournent toujours...

  14. #14
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    De quelles fuites s'agit-il et comment sont elles évaluées ?
    Si je le savais... "Evaluées" est un bien grand mot. Normalement à chaque appelle d'une fonction F je créé dans cette fonction un certains nombre d'objets puis je les libère...
    Je devrais donc pouvoir appeller une infinité de fois cette fonction sans que cela pose de problème. Seulement, au bout de 50.000 à 100.000 appels, le systèmes s'écroule (tout la mémoire physique et virtuelle est utilisée !)
    J'en déduis donc qu'il y a des fuites mémoires (qui peuvent hélas venir d'une bibliothèque que j'utilise...)

    Ca ne va rien changer. Ou alors, c'est que le système est sérieusement buggé (ne récupère pas la mémoire libérée) ou que c'est une autre ressource que 'malloc/free' qui est en jeu.
    Comme cette partie du code est en C++ je pencherais donc pour des 'new/delete' qui sont appelés automatiquement par la bibliothèque externe

    Pour tester la stabilité du programme dans le temps, [...]
    C'est pas vraiment la stabilité que je recherche (un peu tout de même) mais plutôt la fiabilité et la jutesse des résultats retournés. En fait, la fonction que je teste est un solveur de contraintes, et je veux être certain qu'il me résouds correctement mes systèmes de contraintes...

    J'ai tout de même créé un script Unix qui appelle mon application par "partie", et cela à l'air de fonctionner...

  15. #15
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    Normalement à chaque appelle d'une fonction F je créé dans cette fonction un certains nombre d'objets puis je les libère...
    OK
    Je devrais donc pouvoir appeller une infinité de fois cette fonction sans que cela pose de problème.
    OK, si les fonctions utilisées pour gérer la mémoire sont standards : malloc()/free() pour les parties C et new/delete pour les parties C++. Au fait en C++ (que je connais très mal), il y a de sales gags entre delete et delete[]. C'est bien clair tout ça au contrôle visuel ?

    Et les appels systèmes directes genre mmap() et autres réservations de mémoire shm_xxx() etc. c'est clair ? Y'a plein de code qui échappe à malloc()/free().

    Et les flux ? Ils sont bien refermés dans tout les cas, même en cas d'erreur ? Il y a tellement de cas possibles. Il faudrait expertiser ton code. Et les drivers (open()/close() ?...
    Seulement, au bout de 50.000 à 100.000 appels, le systèmes s'écroule (tout la mémoire physique et virtuelle est utilisée !)
    C'est un message du système ?
    J'en déduis donc qu'il y a des fuites mémoires (qui peuvent hélas venir d'une bibliothèque que j'utilise...)
    C'est possible, mais il y a d'innombrables causes...

    Et une fois que tu as quitté le programme, la mémoire revient ?

    Dans la réalité, tu vas réellement faire 100.000 appels avant de quitter le programme ?
    J'ai tout de même créé un script Unix qui appelle mon application par "partie", et cela à l'air de fonctionner...
    Tu testes par blocs fonctionnels autonomes. Bonne conception et bonne méthode. C'est bien.

  16. #16
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    OK
    OK, si les fonctions utilisées pour gérer la mémoire sont standards : malloc()/free() pour les parties C et new/delete pour les parties C++. Au fait en C++ (que je connais très mal), il y a de sales gags entre delete et delete[]. C'est bien clair tout ça au contrôle visuel ?
    C'est clair, rien à dire...

    Et les appels systèmes directes genre mmap() et autres réservations de mémoire shm_xxx() etc. c'est clair ? Y'a plein de code qui échappe à malloc()/free().
    J'en utilise pas... Je me limite juste au delete et new et sans même et sans tableau (donc pas de delete[])

    Et les flux ? Ils sont bien refermés dans tout les cas, même en cas d'erreur ? Il y a tellement de cas possibles. Il faudrait expertiser ton code. Et les drivers (open()/close() ?...
    Y'a pas de gestion de flux dans cette partie du code, donc pas de problème normalement de ce coté, idem au niveau de la gestion des chaines de caracteres (j'en ai parlé précédemment) : elle ne sont pas utilisées dans cette partie du programme...

    Seulement, au bout de 50.000 à 100.000 appels, le systèmes s'écroule (tout la mémoire physique et virtuelle est utilisée !)
    C'est un message du système ?
    Non, c'est moi qui le déduit... J'ai pas mal de compteur qui observe ce qui se passe...

    Et une fois que tu as quitté le programme, la mémoire revient ?
    Oui, la mémoire revient aussitôt.

    Dans la réalité, tu vas réellement faire 100.000 appels avant de quitter le programme ?
    Dans la réalité, pour un usage normal : non. C'est juste pour tester mon programme. Après, ma biliothèque est réutilisée pour autre chose, là je ne garantie rien...

    Tu testes par blocs fonctionnels autonomes. Bonne conception et bonne méthode. C'est bien.
    Merci.

  17. #17
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fabllot
    idem au niveau de la gestion des chaines de caracteres (j'en ai parlé précédemment) : elle ne sont pas utilisées dans cette partie du programme...
    Pas de chaines de caractères, donc. OK. Au cas où, je ne sais plus si on a évoqué strdup(), là aussi c'est clair ? Il y a bien un free() pour chaque ?
    Non, c'est moi qui le déduit... J'ai pas mal de compteur qui observe ce qui se passe...
    Ah, est-tu bien sûr de ton instrument de mesure. C'est le B.A. BA. Rien de pire qu'un fausse alarme !
    Oui, la mémoire revient aussitôt.
    OK. C'est donc bien de la mémoire 'C' (ou C++) qui est sur-consommée.

  18. #18
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bon, je crois que j'ai résolu tous mes problèmes de fuites de mémoires... Aussi bien dans le code C que dans le C++...

    Merci à tous pour votre aide et vos remarques.

  19. #19
    Membre expérimenté
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Par défaut
    C'est un peu tard pour t'aider, mais c'est bon à savoir :
    Il y a un tracker de mémoire C++ (pour les new/delete) dans le premier chapitre de ces tutoriaux :Conception d'un moteur 3D

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

Discussions similaires

  1. [tomcat][memoire] java.net.URL et fuite mémoire
    Par Seiya dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 09/03/2009, 10h41
  2. [Fuites mémoire] Je cherche un utilitaire
    Par 10_GOTO_10 dans le forum C++Builder
    Réponses: 8
    Dernier message: 10/02/2005, 10h03
  3. Outil de recherche de fuite mémoire
    Par eag35 dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 12h46
  4. [SWT]SWT et fuite mémoire(ou pas)
    Par menuge dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 22/06/2004, 21h40
  5. [debug] fuites mémoires
    Par tmonjalo dans le forum C
    Réponses: 3
    Dernier message: 28/07/2003, 17h20

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