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 :

Debuggage <> Lecture de pile


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut Debuggage <> Lecture de pile
    Salut à tous,

    j'ai un probleme lors de l'execution de mon programme, j'aurai eu besoin de votre avis !

    Le programme affiche le détail des backtrace comme suit, et je n'ai pas idée de ce qui peut être compris dans ce message :

    *** glibc detected *** ./compilateur: malloc(): memory corruption: 0x08056558 ***
    ======= Backtrace: =========
    /lib/libc.so.6[0x6fe05cb0]
    /lib/libc.so.6[0x6fe07cd1]
    /lib/libc.so.6(malloc+0x7f)[0x6fe0961f]
    /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6(_Znwj+0x29)[0x6ffa4439]
    ./compilateur[0x804bcd2]
    ./compilateur[0x804c0f1]
    ./compilateur[0x804c10e]
    ./compilateur[0x804c2bf]
    ./compilateur[0x804c3b7]
    ./compilateur[0x804c3fe]
    ./compilateur[0x804a582]
    ./compilateur[0x804dbc3]
    ./compilateur[0x804d369]
    ./compilateur(__gxx_personality_v0+0x396)[0x804906e]
    /lib/libc.so.6(__libc_start_main+0xd8)[0x6fdb8878]
    ./compilateur(__gxx_personality_v0+0x79)[0x8048d51]
    ======= Memory map: ========
    08048000-08051000 r-xp 00000000 00:0f 2524317 /home/etudiants/etu/Compilation/compilateur
    08051000-08052000 rw-p 00008000 00:0f 2524317 /home/etudiants/etu/Compilation/compilateur
    08052000-08073000 rw-p 08052000 00:00 0 [heap]
    6fc00000-6fc21000 rw-p 6fc00000 00:00 0
    6fc21000-6fd00000 ---p 6fc21000 00:00 0
    6fda2000-6fda3000 rw-p 6fda2000 00:00 0
    6fda3000-6feba000 r-xp 00000000 03:01 245852 /lib/libc-2.4.so
    6feba000-6febc000 r--p 00116000 03:01 245852 /lib/libc- 2.4.so
    6febc000-6febe000 rw-p 00118000 03:01 245852 /lib/libc-2.4.so
    6febe000-6fec1000 rw-p 6febe000 00:00 0
    6fec1000-6fecb000 r-xp 00000000 03:01 150410 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libgcc_s.so.1
    6fecb000-6fecc000 rw-p 00009000 03:01 150410 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libgcc_s.so.1
    6fecc000-6feef000 r-xp 00000000 03:01 245857 /lib/libm-2.4.so
    6feef000-6fef1000 rw-p 00022000 03:01 245857 /lib/libm- 2.4.so
    6fef1000-6ffc7000 r-xp 00000000 03:01 150409 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6.0.8
    6ffc7000-6ffca000 r--p 000d5000 03:01 150409 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6.0.8
    6ffca000-6ffcc000 rw-p 000d8000 03:01 150409 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6.0.8
    6ffcc000-6ffd3000 rw-p 6ffcc000 00:00 0
    6ffd5000-6ffd6000 rw-p 6ffd5000 00:00 0
    6ffd6000-6fff0000 r-xp 00000000 03:01 245841 /lib/ld- 2.4.so
    6fff0000-6fff1000 r--p 00019000 03:01 245841 /lib/ld-2.4.so
    6fff1000-6fff2000 rw-p 0001a000 03:01 245841 /lib/ld-2.4.so
    77fd8000-77fed000 rw-p 77fd8000 00:00 0 [stack]
    77ffe000-77fff000 r-xp 77ffe000 00:00 0
    Aborted

    à l'aide de plein de cout j'ai réussi à localiser d'où vient le probleme :
    memoire = new stack<ElementLexical>() ;

    (où memoire est bien un stack<ElementLexical> , et ElementLexical est une structure contenant un type enum et un char *)

    En fait cette instruction est dans une classe, AnalyseurLexical, qui est instancié 2 fois (elle travaillent en même temps donc), et là 1ere fois tout ce passe normalement, pas la 2nde.... !

    Je pense que les erreurs provenant d'un NEW sont assez limités, et donc que [si quelqu'un à déjà été confronté au probleme], il pourra m'expliquer [facilement] !

    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    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 395
    Par défaut
    "Heap Corruption" (Corruption du tas) veut généralement dire qu'il y a eu une m**de (genre un dépassement de buffer) AVANT la tentative d'allocation.
    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.

Discussions similaires

  1. [TASM] Déclarer le segment de pile
    Par cipher dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 01/10/2002, 03h58
  2. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  3. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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