[resolu] Crash lors de l'ouverture d'un fichier [backtrace inside]

Crash lors de l'ouverture d'un fichier [backtrace inside] [resolu] - C++ - Programmation

Marsh Posté le 19-09-2007 à 16:39:40    

Je dev en c++ une minuscule fonction et je ne comprend pas pourquoi j'ai un gros crash lorsque j'atteins une ligne particuliere...
Je precise : je dev sous eclipse avec cdt, sous linux (red hat enterprise)
 

Code :
  1. void gen_identity::write_list(void)
  2. {
  3. std::ofstream fichier("list_identity.txt",std::ios::trunc);
  4. if ( !fichier )
  5. {
  6.  std::cerr << "Erreur de creation du fichier" << std::endl;
  7.  exit(1);
  8. }
  9. for(unsigned int i=0;i<this->list.size();i++)
  10. {
  11.  std::bitset<ID_REG_LENGTH> bval(this->list[i]);
  12.  for(unsigned int b=0;b<ID_REG_LENGTH;b++)
  13.  {
  14.   fichier<<bval.test(b);
  15.   std::cout<<bval.test(b);
  16.  }
  17.  std::cout<<std::endl;
  18.  fichier<<std::endl;
  19. }
  20. fichier.close();
  21. }


 
Ca crash sur la ligne std::ofstream fichier("list_identity.txt",std::ios::trunc); avec la backtrace :

Code :
  1. *** glibc detected *** /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity: free(): invalid size: 0x08d4c060 ***
  2. ======= Backtrace: =========
  3. /lib/libc.so.6[0x2a5f5d]
  4. /lib/libc.so.6[0x2a6c93]
  5. /lib/libc.so.6(__libc_malloc+0x7e)[0x2a7d8e]
  6. /lib/libc.so.6[0x295baf]
  7. /lib/libc.so.6(fopen64+0x2c)[0x29802c]
  8. /usr/java/jdk1.5.0_11/jre/../lib/i386/libstdc++.so.6(_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei+0x55)[0x508ed15]
  9. /usr/java/jdk1.5.0_11/jre/../lib/i386/libstdc++.so.6(_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode+0x7e)[0x50376ce]
  10. /usr/java/jdk1.5.0_11/jre/../lib/i386/libstdc++.so.6(_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode+0xb8)[0x5038558]
  11. /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity(__gxx_personality_v0+0x34a)[0x8048d9e]
  12. /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity[0x804a7ad]
  13. /lib/libc.so.6(__libc_start_main+0xdc)[0x255dec]
  14. /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity(__gxx_personality_v0+0x5d)[0x8048ab1]
  15. ======= Memory map: ========
  16. 00223000-0023c000 r-xp 00000000 08:01 11952      /lib/ld-2.5.so
  17. 0023c000-0023d000 r-xp 00018000 08:01 11952      /lib/ld-2.5.so
  18. 0023d000-0023e000 rwxp 00019000 08:01 11952      /lib/ld-2.5.so
  19. 00240000-00377000 r-xp 00000000 08:01 11966      /lib/libc-2.5.so
  20. 00377000-00379000 r-xp 00137000 08:01 11966      /lib/libc-2.5.so
  21. 00379000-0037a000 rwxp 00139000 08:01 11966      /lib/libc-2.5.so
  22. 0037a000-0037d000 rwxp 0037a000 00:00 0
  23. 0037f000-003a4000 r-xp 00000000 08:01 11974      /lib/libm-2.5.so
  24. 003a4000-003a5000 r-xp 00024000 08:01 11974      /lib/libm-2.5.so
  25. 003a5000-003a6000 rwxp 00025000 08:01 11974      /lib/libm-2.5.so
  26. 00dc8000-00dd3000 r-xp 00000000 08:01 11949      /lib/libgcc_s-4.1.1-20070105.so.1
  27. 00dd3000-00dd4000 rwxp 0000a000 08:01 11949      /lib/libgcc_s-4.1.1-20070105.so.1
  28. 04fdb000-050bb000 r-xp 00000000 08:01 221371     /usr/lib/libstdc++.so.6.0.8
  29. 050bb000-050be000 r-xp 000e0000 08:01 221371     /usr/lib/libstdc++.so.6.0.8
  30. 050be000-050c0000 rwxp 000e3000 08:01 221371     /usr/lib/libstdc++.so.6.0.8
  31. 050c0000-050c6000 rwxp 050c0000 00:00 0
  32. 08048000-0804c000 r-xp 00000000 08:02 18645726   /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity
  33. 0804c000-0804d000 rwxp 00003000 08:02 18645726   /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity
  34. 08d4c000-08d8f000 rwxp 08d4c000 00:00 0
  35. b7d00000-b7d21000 rwxp b7d00000 00:00 0
  36. b7d21000-b7e00000 --xp b7d21000 00:00 0
  37. b7edf000-b7ee1000 rwxp b7edf000 00:00 0
  38. b7f00000-b7f01000 rwxp b7f00000 00:00 0
  39. b7f01000-b7f02000 r-xp b7f01000 00:00 0          [vdso]
  40. bfc18000-bfc2d000 rw-p bfc18000 00:00 0          [stack]


 
Mais j'ai ecris cette ligne des centaines de fois !!!
J'ai fait des essais, si je vire tous les acces a fichier (tout part en cout) ca marche au poil. J'ai essaye divers type d'ouverture, y'a rien a faire...
Honnetement... ca peut venir d'ou ?
 
Ah je precise les includes de ce fichier :
 

Code :
  1. #include <iostream>
  2. #include <fstream>
  3. #include <bitset>
  4. #include "gen_identity.h"


Message édité par guepe le 19-09-2007 à 17:39:18

---------------
Un blog qu'il est bien
Reply

Marsh Posté le 19-09-2007 à 16:39:40   

Reply

Marsh Posté le 19-09-2007 à 17:09:18    

J'ai teste, j'ai bien les droits dans le repertoire de dev (logique qd meme).
J'ai essaye avec les routines c et non pas c++, meme chose... Punaise, sur cette meme machine, quasiment dans le meme repertoire j'ai un autre projet vraiment plus gros avec les meme routines ca fonctionne impeccable!!!
 
Qu'est ce qui peut manquer ???


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 19-09-2007 à 17:15:33    

rien. t'as sans doute un problème ailleurs / écrasement de pile / toussa
 
essaie valgrind

Reply

Marsh Posté le 19-09-2007 à 17:31:50    

Taz a écrit :

rien. t'as sans doute un problème ailleurs / écrasement de pile / toussa
 
essaie valgrind


jamais utilise... ca va etre beau...
Ca veut dire que le probleme apparait avant non ? dans ce cas... pas beaucoup avant.
Je vais voir !


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 19-09-2007 à 17:38:56    

Comme cette routine est super courte... ca n'a pas ete cherche bien loin : j'ecrivais dans un tableau loiiiiiin tres loin hors zone memoire...
 :D Champion  :lol:  
Ca faisait longtemps que j'avais pas fait une telle betise... celle la est vraiment belle  :whistle:


---------------
Un blog qu'il est bien
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed