Floating Point Exception

Floating Point Exception - C - Programmation

Marsh Posté le 04-03-2008 à 15:29:21    

Bonjour

 

J'ai codé un programme en C qui permet de prendre des données dans un fichier et de les recopier dans d'autres fichiers différents.

 

J'ai codé sous Linux Mandriva 2008, j'ai compilé et exécuté le programme, et tout a très bien fonctionné.

 

J'ai ensuite copié l'exécutable sur une autre machine Linux dont voici le descriptif si ça peut aider.

 

Sur cette machine, lorsque j'exécute le code, il s'arrête illico sans même effectuer la première étape qui consiste à ouvrir un fichier et afficher un message  de confirmation. Il affiche à la place :

 

Floating Point Exception.

 

J'ai lu en faisant quelques recherches que ces erreurs étaient dues à des erreurs essentiellement numériques.

 

Or, je n'effectue aucun calcul dans ce code..

 

Une idée ?

 

Merci pour les réponses.


Message édité par Sinner le 04-03-2008 à 15:30:16
Reply

Marsh Posté le 04-03-2008 à 15:29:21   

Reply

Marsh Posté le 04-03-2008 à 15:43:07    

sort ton gdb et trouve le plantage.
 
si tu compiles sur l'autre machine, le résultat fonctionne ?

Reply

Marsh Posté le 04-03-2008 à 15:45:20    

J'ai pas encore essayé de compiler sur l'autre machine, mais je comptais le faire.
 
Le GDB ?

Reply

Marsh Posté le 04-03-2008 à 15:48:22    

bah tu gcc -Wall -ggdb *.c
gdb ./a.out
r
bt
 
et tu cherches

Reply

Marsh Posté le 04-03-2008 à 15:48:58    

gdb == Gnu DeBugger.
 

Reply

Marsh Posté le 04-03-2008 à 15:50:13    

J'ai compilé et exécuté sur l'autre machine et ça fonctionne.

 

Edit : Vais essayer de voir avec GDB


Message édité par Sinner le 04-03-2008 à 15:50:37
Reply

Marsh Posté le 04-03-2008 à 15:51:10    

bah problème d'archis différentes entre la machine source et cible donc

Reply

Marsh Posté le 04-03-2008 à 15:54:40    

Elmoricq a écrit :

bah problème d'archis différentes entre la machine source et cible donc


wof, ça peut plus être des problèmes d'ABI qu'autre chose. Ou alors un petit problème qui se manifeste plus fortement d'une machine à l'autre.

Reply

Marsh Posté le 04-03-2008 à 16:02:37    

j'y pensais plus aux problèmes d'abi, pourtant j'en ai eu un y a pas longtemps...

Reply

Marsh Posté le 04-03-2008 à 16:16:50    

C'est balo.

 

Moi qui voulait un truc super portable..

 

Si je dois le recompiler sur chaque machine différente, c'est useless.

 

Merci pour vos réponses anyway.

Message cité 1 fois
Message édité par Sinner le 04-03-2008 à 16:17:10
Reply

Marsh Posté le 04-03-2008 à 16:16:50   

Reply

Marsh Posté le 04-03-2008 à 17:48:52    

Sinner a écrit :

C'est balo.
 
Moi qui voulait un truc super portable..
 
Si je dois le recompiler sur chaque machine différente, c'est useless.
 
Merci pour vos réponses anyway.


tu peux compiler en static dans une certaine mesure.

Reply

Marsh Posté le 05-03-2008 à 10:11:01    

Ah mon avis tu as juste un bug dans ton code, et pour une raison ou une autre il ne se voit que sur une des deux machines. Ou alors tu a compilé pour ton CPU, et quand tu passes sur Itanium 2 ça ne passe plus. Dans ce cas il faut compiler pour une archi avec laquelle tes deux systèmes sont compatibles, y'a pas de miracles.
 
Un problème d'ABI, ça m'étonnerait vu ce que fait ton programme. Tu utilises des lib particulières ?

Reply

Marsh Posté le 05-03-2008 à 10:35:40    

Librairies classiques quoi : stdio, stdlib et string.

Reply

Marsh Posté le 05-03-2008 à 11:08:43    

mais t'as trouvé d'où venait le problème ?

Reply

Sujets relatifs:

Leave a Replay

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