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 :

correction de fuite de memoire


Sujet :

C

  1. #21
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    C'est bon, je les ai!

    Mais il reste ceci
    sys.h:197:40: /djgpp/include/sys/version.h: Aucun fichier ou répertoire de ce type

    avec gcc 2.96

    Merci a toi
    Normal. Recharge sys.c et sys.h, je les ai modifiés (voir post au dessus)

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Peux tu mettre les liens des 2 nouveaux fichier sur le forum car je n'arrive a recuperer que les anciens.?
    C'est quand meme bizarre... j'ai pourtant efface l'historique, fait des refresh, taper en dur l'adresse, ... mais je n'ai pas le bon..

  3. #23
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    Peux tu mettre les liens des 2 nouveaux fichier sur le forum car je n'arrive a recuperer que les anciens.?
    C'est quand meme bizarre... j'ai pourtant efface l'historique, fait des refresh, taper en dur l'adresse, ... mais je n'ai pas le bon..
    http://emmanuel-delahaye.developpez....b/ed/inc/SYS.H
    http://emmanuel-delahaye.developpez....b/ed/src/SYS.C

    C'est vrai que c'est un peu bizarre... Avec Mozilla, quand je clique sur les liens, j'ai l'ancienne version (le cache, probablement), puis quand je clique sur 'réactualiser', la nouvelle version apparait (1.30)

  4. #24
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    ben j'ai mozilla aussi et je fais reactualiser pour voir les nouveau post sur le forum et ca marche tres bien... donc la : : :

    Sinon j'ai regarde les liens et en le recuperant, j'obtiens toujours la meme erreur.

    sys.h:197:40: /djgpp/include/sys/version.h: Aucun fichier ou répertoire de ce type

    Quels sont les modifications que tu as apporte a sys.h.?
    (pour etre sur que je possede le bon)

  5. #25
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    ben j'ai mozilla aussi et je fais reactualiser pour voir les nouveau post sur le forum et ca marche tres bien... donc la : : :

    Sinon j'ai regarde les liens et en le recuperant, j'obtiens toujours la meme erreur.

    sys.h:197:40: /djgpp/include/sys/version.h: Aucun fichier ou répertoire de ce type

    Quels sont les modifications que tu as apporte a sys.h.?
    (pour etre sur que je possede le bon)
    Dans l'entete des fichiers,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Modification : 25-06-2004
    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
       /* DJGPP */
    #elif defined (__GNUC__)
    #include </djgpp/include/sys/version.h>
    #undef COMP_VER
    #undef COMP_NAME
    #define COMP_VER	__DJGPP__
    #define COMP_NAME "DJGPP"
    #define SIZE_T_BIT 32
    #define SYS_CLR(p, T)        \
       do                         \
       {                          \
          static const T z = {0}; \
          *(p) = z;               \
       }                          \
       while(0)
    #define STACK_SET(a)
    #define STACK_CHK()
    #define STACK_PRINT()
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
       /* DJGPP */
    #elif defined (__DJGPP__)
    #undef COMP_VER
    #undef COMP_NAME
    #include </djgpp/include/sys/version.h>
    #define COMP_VER	__DJGPP__
    #define COMP_NAME "DJGPP"
    #define SIZE_T_BIT 32
    #define SYS_CLR(p, T)        \
       do                         \
       {                          \
          static const T z = {0}; \
          *(p) = z;               \
       }                          \
       while(0)
    #define STACK_SET(a)
    #define STACK_CHK()
    #define STACK_PRINT()
     
       /* GCC */
    #elif defined (__GNUC__)
    #undef COMP_VER
    #undef COMP_NAME
    #define COMP_VER	__GNUC__
    #define COMP_NAME "GCC"
    #define SIZE_T_BIT 32
    #define SYS_CLR(p, T)        \
       do                         \
       {                          \
          static const T z = {0}; \
          *(p) = z;               \
       }                          \
       while(0)
    #define STACK_SET(a)
    #define STACK_CHK()
    #define STACK_PRINT()
    C'est normalement cette partie là qui devrait être compilée chez toi. Pour le savoir, ajouter un
    dans le bloc.

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    ok
    je n'ai pas le bon
    Dans l'entete, j'ai:

    Modification : 15-12-2003

    Je fais les modifs et je te tiens au courant!

  7. #27
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    ok
    je n'ai pas le bon
    Dans l'entete, j'ai:

    Modification : 15-12-2003

    Je fais les modifs et je te tiens au courant!
    Je te garantis que le serveur est à jour. Tu dois utiliser un proxy qui stocke les pages. Une plaie...

  8. #28
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Ca c'est fort possible! lol
    Mais je peux pas y faire grand chose...

    En lancant le programme de test, j'obtiens les resultat suivant:

    SYSALLOC Overload (5 rec)
    SYSALLOC Successful initialization: 5 records available
    SYSALLOC min=18446744073709551615 max=18446744073709551615 delta=0
    SYSALLOC All-matched
    SYSALLOC Released Memory

    il me semble que ce ne sont pas les resultat que tu avais edite tout a l'heure...
    Si ce n'est pas les meme, cela veut dire que j'ai fais une mauvaise manip?

  9. #29
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    [pas grand chose a voir avec le C, mais si ca peut aider]
    Citation Envoyé par vince3320
    Ca c'est fort possible! lol
    Mais je peux pas y faire grand chose...
    Tu peux essayer en finissant ton adresse par le symbole . (point) -> cela force à remonter jusqu'au DNS primaire, et permettra peut etre de forcer la récupération des dernières versions des fichiers.

  10. #30
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    En lancant le programme de test, j'obtiens les resultat suivant:

    SYSALLOC Overload (5 rec)
    SYSALLOC Successful initialization: 5 records available
    SYSALLOC min=18446744073709551615 max=18446744073709551615 delta=0
    SYSALLOC All-matched
    SYSALLOC Released Memory

    il me semble que ce ne sont pas les resultat que tu avais edite tout a l'heure...
    Si ce n'est pas les meme, cela veut dire que j'ai fais une mauvaise manip?
    Oui. Je pense que tu as oublié de définir la macro globale DBG_SYSALLOC

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Ok!
    j'ai effectivement oublie de la définir.
    Dois je l'initialiser?
    Ou dois je la declarer?
    Dans le programme de test? dans sysalloc.c ?

  12. #32
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    Ok!
    j'ai effectivement oublie de la définir.
    Dois je l'initialiser?
    Ou dois je la declarer?
    Dans le programme de test? dans sysalloc.c ?
    De façon globale. Par exemple sur la ligne de commande :

    gcc ... -DDBG_SYSALLOC

    je ne connais pas les détails de ton compilateur.

  13. #33
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Je savais pas que l'on pouvais faire comme cela!
    Merci!!

    Voila les nouveaux resultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SYSALLOC Successful initialization: 5 records available
    SYSALLOC min=18446744073709551615 max=18446744073709551615 delta=0
    SYSALLOC Err: Not-matched list:
    SYSALLOC Bloc 0x6000000000007e90 (1 byte) malloc'ed at line 5 of 'test.c' not freed
    SYSALLOC Released Memory
    Ils ont l'air plutot correct, non?

  14. #34
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    Voila les nouveaux resultats:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SYSALLOC Successful initialization: 5 records available
    SYSALLOC min=18446744073709551615 max=18446744073709551615 delta=0
    SYSALLOC Err: Not-matched list:
    SYSALLOC Bloc 0x6000000000007e90 (1 byte) malloc'ed at line 5 of 'test.c' not freed
    SYSALLOC Released Memory
    Ils ont l'air plutot correct, non?
    Ok. Dans cette implementation, il n'y a pas pas de mécanisme pour mesurer la taille mémoire. Il faut donc ignorer les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SYSALLOC min=18446744073709551615 max=18446744073709551615
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SYSALLOC Released Memory
    par contre le reste est très significatif (je suis un peu étonné par le format de l'adresse. C'est quelle architecture déjà ?)

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    en fait, je suis sur un itanium. (machine 64 bits)
    C'est peut etre pour ca que le format est etrange, non?

  16. #36
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    en fait, je suis sur un itanium. (machine 64 bits)
    C'est peut etre pour ca que le format est etrange, non?
    Je comprends mieux. Ouah, mon code tourne sur IA64, je suis impressioné!

  17. #37
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Je suis en train de tenter de coller ton programme a mon code.
    J'espere que ca va fonctionner!!

    Merci beaucoup de ton aide!

  18. #38
    Expert éminent sénior
    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
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par vince3320
    Je suis en train de tenter de coller ton programme a mon code.
    J'espere que ca va fonctionner!!
    N'oublie pas qu'il faut inclure "ed/inc/sysalloc.h" partout où l'on utilise malloc() free(). Et j'espère que tu n'utilises pas strdup() ou autres, car évidemment, les appels à malloc() / free() de la bibliothèque ne sont pas instrumentables par mon système. Mais si c'était le cas, j'ai un STR_dup() dans mon module STR.

  19. #39
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    je n'utilise pas strdup().

    Par contre, j'ai des apels a des fonctions realisant des malloc et des free.
    Donc, il me suffit simplement d'inclure sysalloc dans ses fichiers si j'ai bien compris.

    En faite, il me marque une fois ca au debut du programme:
    SYSALLOC Overload (5 rec)
    SYSALLOC Successful initialization: 5 records available

    Et ensuite, il ecrit enormement de fois:
    SYSALLOC Overload (5 rec)

    Et, a la fin, il ecrit:
    SYSALLOC Overload (5 rec)
    SYSALLOC min=18446744073709551615 max=18446744073709551615 delta=0
    SYSALLOC Overload (no valid trace available)
    SYSALLOC Released Memory


    Ca veut dire qu'il n'a pas trouver de fuite?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [JVM]Fuite de mémoire
    Par anykeyh dans le forum Général Java
    Réponses: 6
    Dernier message: 28/09/2009, 23h43
  2. Réponses: 5
    Dernier message: 17/03/2006, 19h19
  3. [memoire]Fuite de memoire?
    Par clovis dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/01/2006, 23h04
  4. Outils pour rechercher des fuites de memoires dans un prog
    Par elekis dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 29/04/2005, 22h06
  5. fuite de memoire dans une liste de pointeur sur composant
    Par Nicolos_A dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/12/2004, 09h46

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