Bonjour à tous.

J'ai eu du mal à choisir la rubrique adaptée, désolée si jamais ce n'est pas la bonne.

Voilà mon problème. J'ai un programme en C qui fait à un moment donné appel soit à une méthode écrite en C, soit à une routine équivalente en fortran (d'une lib externe).

Aux deux, je passe un pointeur vers un tableau de flottants, elles mettent à jour certaines valeurs dans ce tableau.

Le run avec l'appel à la méthode en C passe, les résultats sont OK. Le run avec l'appel à la routine fortran plante. Le programme est compilé en mode debug. Si je lance valgrind dessus, le programme tourne jusqu'au bout, pas d'erreur signalée à proximité de la "zone sensible". D'autres erreurs sont, on va dire, connues et inévitables (mpi et l'interface python générée automatiquement). De même avec Totalview - déroulement sans accroc jusqu'au bout.

Je sais qu'il y a une différence entre les programmes compilées en optimisé et ceux compilés en debug. Mais là c'est le même, juste lancé directement ou via un debuggeur.

Je ne comprends pas comment ça peut arriver et surtout, dans quelle direction chercher. Les print dans fortran arrivent pas trop dans l'ordre mais c'est pratiquement sûr que c'est au moment de mettre à jour le tableau passé en argument que ça plante. Je peux me débrouiller pour flusher l'output du programme pour en être sûre mais bon, ça ne m'avancera pas beaucoup.

Any hint, même un "RTFM (ici)" serait le bienvenu. Ma question principale c'est comment ça peut arriver que le même programme tourne sous un debugger et pas seul. Et quel autre piste je pourrais envisager.

P.S. Le code est gros, j'aurais du mal à en isoler une partie utilisable pour poster ici, mais si jamais c'est vraiment nécessaire...