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 :

segmentation + Assertion`(old_top etc. Qu'est ce que cela veut dire ?


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2010
    Messages : 85
    Points : 61
    Points
    61
    Par défaut segmentation + Assertion`(old_top etc. Qu'est ce que cela veut dire ?
    Bonjour,

    J'ai une erreur de segmentation dans mon programme avec ce message a l'execution :

    malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *)
    &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) &&
    old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct
    malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1)))
    && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)'
    failed.
    Qu'est ce que cela signifie ?

  2. #2
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Cela signifie que tu as des soucis d'allocation mémoire.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2010
    Messages : 85
    Points : 61
    Points
    61
    Par défaut
    Oui, j'avais vu qu'il y avait un signal de "segmentation fault" (que je ne résoud pas pour le moment) mais c'est tout le baratin derrière que je ne n'avais jamais eu jusqu'à présent.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 894
    Points : 219 536
    Points
    219 536
    Billets dans le blog
    124
    Par défaut
    Bonjour

    Citation Envoyé par superZozo Voir le message
    Oui, j'avais vu qu'il y avait un signal de "segmentation fault" (que je ne résoud pas pour le moment) mais c'est tout le baratin derrière que je ne n'avais jamais eu jusqu'à présent.
    Oui c'est une problème de mémoire, qui est capté par une assertion. L'assertion affiche la ligne et le fichier ou elle est fausse ( soit un problème ) et ça affiche la condition qui a échoué ... ce qui doit donné des indications au programmeur.
    Après le baratin est assez étrange, mais il semble venir d'une bibliothèque un peu spéciale ... non?

  5. #5
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    C'est le code de la libc, à mon avis il est très très très peu probable que le souci vienne de là, cherches plutot dans ton code, ou montre le nous.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2010
    Messages : 85
    Points : 61
    Points
    61
    Par défaut
    J'essaye de trouver la partie sensible (avec Valgrind) après, je vous montrerais le code, car le programme est assez gros maintenant.
    Pour infos, j'utilise GTK+, openGL et GtkGLExt.
    Le programme marchait bien jusqu'au moment où j'ai augmenté la taille de certains tableaux (100000 à 900000). J'ai d'abord eu des problèmes de dépassement qui ont été résolus en allouant dynamiquement tous ces gros tableaux. Maintenant j'ai ça....

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2010
    Messages : 85
    Points : 61
    Points
    61
    Par défaut
    ça leak, ça leak...

    apparement le problème vient de la fonction (je m'en sert mal j'imagine)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_tree_model_get (GTK_TREE_MODEL(modele), &iter, 0, &a,-1);
    Cette fonction sert à récupérer des valeurs dans un gtk_tree_model.
    Le problème est que cette fonctions fait ce qu'elle veut du pauvre pointeur &a (ici un gchar*), elle l'incrémente, elle l'incrémente...

    Je devrait peut-être passer sur le forum GTK+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2010
    Messages : 85
    Points : 61
    Points
    61
    Par défaut
    oui en fait, il suffit de déclarer gchar* a;
    ensuite, la fonction alloue à chaque fois avec une taille variable qui dépend de la longueur de la chaîne...
    Un truc de pervers !

    ça plantait plus loin dans l'utilisation de la chaîne, puisque la longueur n'est pas connue...

Discussions similaires

  1. Qu'est ce que cela veux dire un "code propre" selon-vous ?
    Par kagura dans le forum Général Conception Web
    Réponses: 45
    Dernier message: 09/02/2016, 14h22
  2. Réponses: 6
    Dernier message: 25/05/2007, 09h46
  3. ^= et << ? Qu'est-ce-que ça veut dire ?
    Par cicolas dans le forum Langage
    Réponses: 3
    Dernier message: 18/07/2006, 14h18
  4. Qu'est ce que ça veut dire ?
    Par feltin dans le forum Zope
    Réponses: 3
    Dernier message: 12/07/2006, 14h12
  5. Qu'est ce que static veut dire
    Par shirya dans le forum C++
    Réponses: 5
    Dernier message: 22/11/2005, 09h50

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