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 !
Partager