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 :

valgrind erreur d'une lib


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Points : 23
    Points
    23
    Par défaut valgrind erreur d'une lib
    bonjour, je dois coder printf pour mes cours. J'utilise valgrind pour checker les fuites de mémoires.

    Je ne comprend pas une erreur que valgrind m'indique.

    Nom : Capture d’e?cran 2016-01-01 a? 18.15.24.png
Affichages : 486
Taille : 408,3 Ko

    L'ensemble de ces fonctions font partie d'une lib....

    Comment gérer ce problème svp?

    Merci les amis

    ps: dsl pour la taille de l'image

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    C'est comme c'est écrit, il y a peut être une fuite mémoire à l'exécution. Il nous manque le code correspondant.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    bonjour et merci de ta réponse. Mon problème est comment trouver une fuite de memoire qui n'est pas dans mon code? A aucun moment j'appel "copySwiftV1MangledName" comme fonction.

    l'ensemble de ces fonction font partie de la library "libobjc.A.dylib" je n'ai donc pas accès a ce code

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Si le warning provient d'une bibliothèque tierce que tu ne prévois pas de recompiler ni d'abandonner l'utilisation, tu ne peux pas faire grand chose.

    Comment compiles-tu ton code ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    voici ma commande pour compiler

    gcc -Wall -Wextra -Werror -g *.c libft/libft.a

    libft.a est ma library perso avec une copie des fonctions standard genre putchar strlen, strdup ...

  6. #6
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Ah mais tu ne références aucune autre bibliothèque que la libc standard ? Quel est ton système (je vois libobjc, j'en déduis Mac..?) ?

    Essaies d'invoquer valgrind avec --leak-check=yes --verbose.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    oui je suis sous el capitan et j'ai valgrind 3.11.0

    Je suis en cours, je peux utiliser que la lib c standard et les fonctions qui sont dans ma libft.a

    valgrind --leak-check=yes --verbose ./a.out donne le meme resultat

  8. #8
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    l'ensemble de ces fonction font partie de la library "libobjc.A.dylib" je n'ai donc pas accès a ce code
    Bon, je ne connais pas mais :

    * En première analyse une bibliothèque disponible est censée avoir été testée
    * En conséquence une erreur de ce type a de grandes chances de provenir d'un oubli dans le programme testé

    => une petite recherche donne:

    ***********************************************************************
    * copySwiftV1MangledName
    * Returns the Swift 1.0 mangled form of the given class or protocol name.
    * Returns nil if the string doesn't look like an unmangled Swift name.
    * The result must be freed with free().
    **********************************************************************/
    Donc je suppose que tu ne libères pas le résultat de la fonction copySwiftV1MangledName dans ton programme ce qui cause le rapport

    Cordialement

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    je ne comprend plus rien ...

    Meme avec un main vide l'erreur est presente

    Nom : Capture d’écran 2016-01-02 à 19.57.11.png
Affichages : 429
Taille : 179,6 Ko

    Nom : Capture d’écran 2016-01-02 à 19.56.48.png
Affichages : 395
Taille : 439,1 Ko

    J'ai aucune idée d'ou l'erreur vient

  10. #10
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Comme l'indique valgrind, ça reste une indication. Si ça se produit avec un programme vide alors c'est probablement un faux positif spécifique à ton système. Tu peux peut-être laisser comme cela et en informer ton prof ?

    Que vient faire Swift dans cette callstack ? On dirait que l'exécution est managée.. Bref, ne connaissant pas du tout OS X je ne peux t'être d'aucune aide.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/06/2004, 16h18
  2. [Thread] Erreur dans une classe interne
    Par totof2308 dans le forum Général Java
    Réponses: 5
    Dernier message: 03/06/2004, 08h15
  3. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  4. [Erreur dans la lib...]
    Par Gonath dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/12/2003, 09h02
  5. Chargement d'une lib partagée C++ dans un programme C
    Par Zero dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/09/2003, 16h40

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