Probleme de fichier

manta7 Messages postés 105 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 13 décembre 2008 - 17 févr. 2008 à 15:53
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 22 févr. 2008 à 18:19
Salut à tous !
J'ai une erreur récurrente que ne me permet pas de faire plus de 4096 fprintf dans un fichier :

Je fais un :
if( (F1=fopen("sortie", "w")) == 0 )
    { ...}

for(i=0;i<4096;i++)
    fprintf(F1,"x");
       
Jusque la pas de probleme mais si je modifie 4096 par 4097 il me met cette erreur :

*** glibc detected *** ./main: realloc(): invalid old size: 0x0804d018 ***
===== Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7e00b0c]
/lib/tls/i686/cmov/libc.so.6(realloc+0x106)[0xb7e02a66]
./main[0x804a87a]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7dab050]
./main[0x8048ae1]
===== Memory map: ========
08048000-0804c000 r-xp 00000000 08:02 376856     /home/manta/programmation/projet/temp/main
0804c000-0804d000 rw-p 00003000 08:02 376856     /home/manta/programmation/projet/temp/main
0804d000-0864e000 rw-p 0804d000 00:00 0          [heap]
b7600000-b7621000 rw-p b7600000 00:00 0
b7621000-b7700000 ---p b7621000 00:00 0
b77fa000-b7a94000 rw-p b7a8e000 00:00 0
b7ab9000-b7abd000 r-xp 00000000 08:02 9176010    /lib/tls/i686/cmov/libnss_dns-2.6.1.so
b7abd000-b7abf000 rw-p 00003000 08:02 9176010    /lib/tls/i686/cmov/libnss_dns-2.6.1.so
b7abf000-b7ac1000 r-xp 00000000 08:02 9142449    /lib/libnss_mdns4_minimal.so.2
b7ac1000-b7ac2000 rw-p 00001000 08:02 9142449    /lib/libnss_mdns4_minimal.so.2
b7ac2000-b7acb000 r-xp 00000000 08:02 9176011    /lib/tls/i686/cmov/libnss_files-2.6.1.so
b7acb000-b7acd000 rw-p 00008000 08:02 9176011    /lib/tls/i686/cmov/libnss_files-2.6.1.so
b7acd000-b7ace000 rw-p b7acd000 00:00 0
b7ace000-b7add000 r-xp 00000000 08:02 9176017    /lib/tls/i686/cmov/libresolv-2.6.1.so
b7add000-b7adf000 rw-p 0000f000 08:02 9176017    /lib/tls/i686/cmov/libresolv-2.6.1.so
b7adf000-b7ae2000 rw-p b7adf000 00:00 0
b7ae2000-b7ae3000 r-xp 00000000 08:02 9142305    /lib/libkeyutils-1.2.so
b7ae3000-b7ae4000 rw-p 00001000 08:02 9142305    /lib/libkeyutils-1.2.so
b7ae4000-b7aeb000 r-xp 00000000 08:02 5095453    /usr/lib/libkrb5support.so.0.1
b7aeb000-b7aec000 rw-p 00006000 08:02 5095453    /usr/lib/libkrb5support.so.0.1
b7aec000-b7aee000 r-xp 00000000 08:02 9142342    /lib/libcom_err.so.2.1
b7aee000-b7aef000 rw-p 00001000 08:02 9142342    /lib/libcom_err.so.2.1
b7aef000-b7b13000 r-xp 00000000 08:02 5095450    /usr/lib/libk5crypto.so.3.1
b7b13000-b7b14000 rw-p 00024000 08:02 5095450    /usr/lib/libk5crypto.so.3.1
b7b14000-b7b9a000 r-xp 00000000 08:02 5095452    /usr/lib/libkrb5.so.3.3
b7b9a000-b7b9c000 rw-p 00086000 08:02 5095452    /usr/lib/libkrb5.so.3.3
b7b9c000-b7b9d000 rw-p b7b9c000 00:00 0
b7b9d000-b7bb1000 r-xp 00000000 08:02 8618358    /usr/lib/libz.so.1.2.3.3
b7bb1000-b7bb2000 rw-p 00013000 08:02 8618358    /usr/lib/libz.so.1.2.3.3
b7bb2000-b7cdd000 r-xp 00000000 08:02 8683699    /usr/lib/i686/cmov/libcrypto.so.0.9.8
b7cdd000-b7cf2000 rw-p 0012a000 08:02 8683699    /usr/lib/i686/cmov/libcrypto.so.0.9.8
b7cf2000-b7cf5000 rw-p b7cf2000 00:00 0
b7cf5000-b7d32000 r-xp 00000000 08:02 8683701    /usr/lib/i686/cmov/libssl.so.0.9.8
b7d32000-b7d36000 rw-p 0003c000 08:02 8683701    /usr/lib/i686/cmov/libssl.so.0.9.8
b7d36000-b7d38000 r-xp 00000000 08:02 9176004    /lib/tls/i686/cmov/libdl-2.6.1.so
b7d38000-b7d3a000 rw-p 00001000 08:02 9176004    /lib/tls/i686/cmov/libdl-2.6.1.so
b7d3a000-b7d6a000 r-xp 00000000 08:02 8618198    /usr/lib/libidn.so.11.5.29
b7d6a000-b7d6b000 rw-p 0002f000 08:02 8618198    /usr/lib/libidn.so.11.5.29
b7d6b000-b7d93000 r-xp 00000000 08:02 5095448    /usr/lib/libgssapi_krb5.so.2.2
b7d93000-b7d94000 rw-p 00027000 08:02 5095448    /usr/lib/libgssapi_krb5.so.2.2
b7d94000-b7d95000 rw-p b7d94000 00:00 0
b7d95000-b7ed9000 r-xp 00000000 08:02 9176001    /lib/tls/i686/cmov/libc-2.6.1.so
b7ed9000-b7eda000 r--p 00143000 08:02 9176001    /lib/tls/i686/cmov/libc-2.6.1.so
b7eda000-b7edc000 rw-p 00144000 08:02 9176001    /lib/tls/i686/cmov/libc-2.6.1.so
b7edc000-b7edf000 rw-p b7edc000 00:00 0
b7edf000-b7f18000 r-xp 00000000 08:02 8620749    /usr/lib/libcurl.so.4.0.0
b7f18000-b7f19000 rw-p 00038000 08:02 8620749    /usr/lib/libcurl.so.4.0.0
b7f1c000-b7f26000 r-xp 00000000 08:02 9142278    /lib/libgcc_s.so.1
b7f26000-b7f27000 rw-p 0000a000 08:02 9142278    /lib/libgcc_s.so.1
b7f27000-b7f2d000 rw-p b7f27000 00:00 0
b7f2d000-b7f47000 r-xp 00000000 08:02 9142320    /lib/ld-2.6.1.so
b7f47000-b7f49000 rw-p 00019000 08:02 9142320    /lib/ld-2.6.1.so
bfee8000-bfefe000 rw-p bfee8000 00:00 0          [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]
Abandon (core dumped)

un bon vieux core dumped quoi...impossible de savoir pourquoi

1 réponse

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
22 févr. 2008 à 18:19
Salut,


Je n'ai pas réussi à reproduire ce problème...


Il peut arriver qu'un programme plante à un endroit à cause d'une
erreur n'ayant pas entrainé de plantage à un tout autre endroit...


Le bug se produit même dans un tout petit programme ????


Quand on a un bug, il y a un truc que l'on a tendance à oublier qui s'appelle un débogueur.

Par exemple, il y a ddd.

Il faut compiler avec l'option -g sous gcc.

Puis ddd NomDeLExecutable

Si tu as ddd bien sûr...


Tu pourras espionner tes variables.

Tu peux poser des points d'arrêt en cliquant à droite du code, puis le bouton break.

Un double clique sur le breakpoint permet de sélectionner le nombre de
fois où il est ignoré : pratique pour arriver rapidement à 4096.


Bon courage.
0
Rejoignez-nous