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 :
 - void gen_identity::write_list(void)
 - {
 - 	std::ofstream fichier("list_identity.txt",std::ios::trunc);
 - 	if ( !fichier )
 - 	{
 -   std::cerr << "Erreur de creation du fichier" << std::endl;
 -   exit(1);
 - 	}
 - 	for(unsigned int i=0;i<this->list.size();i++)
 - 	{
 -   std::bitset<ID_REG_LENGTH> bval(this->list[i]);
 -   for(unsigned int b=0;b<ID_REG_LENGTH;b++)
 -   {
 -   	fichier<<bval.test(b);
 -   	std::cout<<bval.test(b);
 -   }
 -   std::cout<<std::endl;
 -   fichier<<std::endl;
 - 	}
 - 	fichier.close();
 - }
 
  | 
 
Ca crash sur la ligne std::ofstream fichier("list_identity.txt",std::ios::trunc); avec la backtrace :
Code :
 - *** glibc detected *** /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity: free(): invalid size: 0x08d4c060 ***
 - ======= Backtrace: =========
 - /lib/libc.so.6[0x2a5f5d]
 - /lib/libc.so.6[0x2a6c93]
 - /lib/libc.so.6(__libc_malloc+0x7e)[0x2a7d8e]
 - /lib/libc.so.6[0x295baf]
 - /lib/libc.so.6(fopen64+0x2c)[0x29802c]
 - /usr/java/jdk1.5.0_11/jre/../lib/i386/libstdc++.so.6(_ZNSt12__basic_fileIcE4openEPKcSt13_Ios_Openmodei+0x55)[0x508ed15]
 - /usr/java/jdk1.5.0_11/jre/../lib/i386/libstdc++.so.6(_ZNSt13basic_filebufIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode+0x7e)[0x50376ce]
 - /usr/java/jdk1.5.0_11/jre/../lib/i386/libstdc++.so.6(_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1EPKcSt13_Ios_Openmode+0xb8)[0x5038558]
 - /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity(__gxx_personality_v0+0x34a)[0x8048d9e]
 - /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity[0x804a7ad]
 - /lib/libc.so.6(__libc_start_main+0xdc)[0x255dec]
 - /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity(__gxx_personality_v0+0x5d)[0x8048ab1]
 - ======= Memory map: ========
 - 00223000-0023c000 r-xp 00000000 08:01 11952      /lib/ld-2.5.so
 - 0023c000-0023d000 r-xp 00018000 08:01 11952      /lib/ld-2.5.so
 - 0023d000-0023e000 rwxp 00019000 08:01 11952      /lib/ld-2.5.so
 - 00240000-00377000 r-xp 00000000 08:01 11966      /lib/libc-2.5.so
 - 00377000-00379000 r-xp 00137000 08:01 11966      /lib/libc-2.5.so
 - 00379000-0037a000 rwxp 00139000 08:01 11966      /lib/libc-2.5.so
 - 0037a000-0037d000 rwxp 0037a000 00:00 0
 - 0037f000-003a4000 r-xp 00000000 08:01 11974      /lib/libm-2.5.so
 - 003a4000-003a5000 r-xp 00024000 08:01 11974      /lib/libm-2.5.so
 - 003a5000-003a6000 rwxp 00025000 08:01 11974      /lib/libm-2.5.so
 - 00dc8000-00dd3000 r-xp 00000000 08:01 11949      /lib/libgcc_s-4.1.1-20070105.so.1
 - 00dd3000-00dd4000 rwxp 0000a000 08:01 11949      /lib/libgcc_s-4.1.1-20070105.so.1
 - 04fdb000-050bb000 r-xp 00000000 08:01 221371     /usr/lib/libstdc++.so.6.0.8
 - 050bb000-050be000 r-xp 000e0000 08:01 221371     /usr/lib/libstdc++.so.6.0.8
 - 050be000-050c0000 rwxp 000e3000 08:01 221371     /usr/lib/libstdc++.so.6.0.8
 - 050c0000-050c6000 rwxp 050c0000 00:00 0
 - 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
 - 0804c000-0804d000 rwxp 00003000 08:02 18645726   /export/tmp/srcDW/DreamWafer/trunk/reticle/sim/rtl_sim/src/gen_identity/gen_identity/Debug/gen_identity
 - 08d4c000-08d8f000 rwxp 08d4c000 00:00 0
 - b7d00000-b7d21000 rwxp b7d00000 00:00 0
 - b7d21000-b7e00000 --xp b7d21000 00:00 0
 - b7edf000-b7ee1000 rwxp b7edf000 00:00 0
 - b7f00000-b7f01000 rwxp b7f00000 00:00 0
 - b7f01000-b7f02000 r-xp b7f01000 00:00 0          [vdso]
 - 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 :
 - #include <iostream>
 - #include <fstream>
 - #include <bitset>
 - #include "gen_identity.h"
 
  | 
 
Message édité par guepe le 19-09-2007 à 17:39:18
 ---------------
			
Un blog qu'il est bien