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

Fortran Discussion :

[Fortran 90] Erreur "glibc detected : double free or corruption (out)"


Sujet :

Fortran

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 112
    Points : 53
    Points
    53
    Par défaut [Fortran 90] Erreur "glibc detected : double free or corruption (out)"
    Bonjour,

    Je programme en fortran 90 (calcul numérique) et quand je compile j'ai cette erreur :
    *** glibc detected *** ./tm2: double free or corruption (out): 0x080864d0 ***
    ======= Backtrace: =========
    /lib/libc.so.6[0xb7ec7fc4]
    /lib/libc.so.6(cfree+0x9c)[0xb7ec995c]
    ./tm2[0x804e6fc]
    ./tm2[0x804a122]
    ./tm2[0x8051d39]
    /lib/libc.so.6(__libc_start_main+0xe5)[0xb7e725f5]
    ./tm2[0x8048981]
    ======= Memory map: ========
    08048000-08053000 r-xp 00000000 08:07 2146451 /home/moi/Documents/fortran/tm/tm2
    08053000-08054000 r--p 0000a000 08:07 2146451 /home/moi/Documents/fortran/tm/tm2
    08054000-08055000 rw-p 0000b000 08:07 2146451 /home/moi/Documents/fortran/tm/tm2
    08055000-08099000 rw-p 08055000 00:00 0 [heap]
    b6200000-b6221000 rw-p b6200000 00:00 0
    b6221000-b6300000 ---p b6221000 00:00 0
    b63df000-b7e5c000 rw-p b63df000 00:00 0
    b7e5c000-b7f99000 r-xp 00000000 08:06 1190433 /lib/libc-2.8.so
    b7f99000-b7f9b000 r--p 0013d000 08:06 1190433 /lib/libc-2.8.so
    b7f9b000-b7f9c000 rw-p 0013f000 08:06 1190433 /lib/libc-2.8.so
    b7f9c000-b7f9f000 rw-p b7f9c000 00:00 0
    b7f9f000-b7fab000 r-xp 00000000 08:06 1190434 /lib/libgcc_s.so.1
    b7fab000-b7fac000 r--p 0000b000 08:06 1190434 /lib/libgcc_s.so.1
    b7fac000-b7fad000 rw-p 0000c000 08:06 1190434 /lib/libgcc_s.so.1
    b7fad000-b7fd1000 r-xp 00000000 08:06 1190419 /lib/libm-2.8.so
    b7fd1000-b7fd2000 r--p 00023000 08:06 1190419 /lib/libm-2.8.so
    b7fd2000-b7fd3000 rw-p 00024000 08:06 1190419 /lib/libm-2.8.so
    b7fd3000-b8083000 r-xp 00000000 08:06 181365 /usr/lib/libgfortran.so.3.0.0
    b8083000-b8084000 r--p 000af000 08:06 181365 /usr/lib/libgfortran.so.3.0.0
    b8084000-b8085000 rw-p 000b0000 08:06 181365 /usr/lib/libgfortran.so.3.0.0
    b8085000-b8087000 rw-p b8085000 00:00 0
    b809f000-b80ba000 r-xp 00000000 08:06 1191218 /lib/ld-2.8.so
    b80ba000-b80bb000 r--p 0001a000 08:06 1191218 /lib/ld-2.8.so
    b80bb000-b80bc000 rw-p 0001b000 08:06 1191218 /lib/ld-2.8.so
    bfaa6000-bfabb000 rw-p bffeb000 00:00 0 [stack]
    ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
    Abandon
    J'ai déjà surfé un peu pour essayer de voir d'où cela provient. Voilà ce que j'ai trouvé et auquel je pense: ma mémoire serait corrompue par un débordement (genre plus assez de place mémoire). Est-ce plausible?

    En fait, cette erreur intervient quand j'entre dans une boucle pour la deuxième fois. Au premier passage, aucun problème, au second, j'utilise une function, tout se passe bien dans cette dernière (quand je mets un print*, '...' juste avant le "end function...", je le vois à l'écran, mais dès que je rejoins le programme principal, il plante avec cette erreur)...

    Etant donnée que je demande à mon ordinateur de mémoriser 3 matrices de taille environ 2000 x 2000, peut-être est-ce parce que je n'ai pas assez de mémoire?

    Aidez-moi s'il vous plait... je ne suis pas calé en informatique.

    PS: je ne vous ai pas mis le code, parce qu'il est compliqué et qu'il serait ardu pour moi de le simplifier au max pour vous le montrer... mais si vraiment....

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    les traceback c'est toujours un plaisir

    tu dis que le message tu l'obtiens à la compilation ? pourtant ce que tu dis à la fin de ton message semble te contredire ?

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    1) C'est à l'exécution
    2) c'est sans doute un dépassement de tableau -> compile avec l'option de bound check (je ne sais plus comment elle s'appelle avec gfortran)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    compile avec l'option de bound check (je ne sais plus comment elle s'appelle avec gfortran)
    du moins sur ma version de gfortran (4.3.2)

    j'ai aussi tenté de reproduire en faisant un dépassement de tableau volontaire et j'obtiens en effet le même type de message.

    en utilisant l'option de compil suggérée par Matthieu, l'immonde traceback devient:

    At line 13 of file main.f90
    Fortran runtime error: Array reference out of bounds for array 'matrix', upper bound of dimension 1 exceeded (101 > 100)
    qui est de suite plus sympa

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 112
    Points : 53
    Points
    53
    Par défaut
    En effet, j'obtiens ce message lors de l'exécution du programme (la compilation se passe bien).

    Sinon, j'ai essayé de compiler avec l'option -fbounds-check et ça me rend quelque chose de similaire à toi kango:

    Array reference out of bounds for array 'f_int', upper bound of dimension 1 exceeded (1522 > 1521)

    Je m'y replonge donc, en sachant un peu mieux ou regarder et quoi faire!

    Merci beaucoup de votre précieuse aide, je n'aurais pas pu penser à cette option-là (même pas présente lorsque je tape gfortran --help).
    Encore merci!

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    l'option apparait chez moi en faisant:
    peut être plus détaillé que


  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 112
    Points : 53
    Points
    53
    Par défaut
    En effet kango, il apparaît aussi chez moi avec man. Merci pour l'info!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/05/2019, 17h27
  2. Réponses: 6
    Dernier message: 06/05/2010, 23h57
  3. glibc detected double free or corruption
    Par étoile de mer dans le forum Débuter
    Réponses: 3
    Dernier message: 30/09/2009, 16h05
  4. [ProFTPd][glibc detected double free or corruption]
    Par Théolude dans le forum Administration système
    Réponses: 1
    Dernier message: 28/08/2008, 09h19
  5. erreur glibc detected double free or corruption.
    Par Screwt-K dans le forum C++
    Réponses: 1
    Dernier message: 02/07/2007, 16h46

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