Problème d'exécution !!! urgent

Signaler
Messages postés
88
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
3 juin 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour à tous;


j'ai réalisé un jeu en opengl sous DEV C++ et ça marchait très très bien, mais tout à coup quand j'ai voulu l'exécuter il m'a affiché le message suivant :

l'exception division par zero en virgule flottante 0xc000008e)  s'est produite dans l'application à l'emplacement 0x08c05010

aidez moi à résoudre ce problème SVP c'est urgent.

cordialement malbackt

4 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
17
Bonjour.
Quand tu fait une division, il faut toujours vérifier que le diviseur ne soit pas nul.
Par contre je ne sais pas pourquoi tu n'avais pas l'erreur avant si tu n'as pas fait de modification.
Vu que tu utilise de l'openGL, l'erreur peut venir d'un changement d'angle de caméra.
Cdt
Messages postés
88
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
3 juin 2009

merci Laurent mais l'erreur ne vient ni de la camera ni d'une division par 0;
je pense que j'ai un problème de carte graphique.

malbackt
Messages postés
29
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
16 juin 2008

gère les exceptions, c plus safety que pleins de tests qui obscurcisse le code
...
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
Salut,

A la tête du message d'erreur, ce n'est pas un problème de carte graphique.
Une carte graphique qui fait une division par zéro, dans le meilleur des cas, ça ne fait rien, sinon ça fait un artefact, et au pire ça fait écran bleu ou reboot.
Tout sauf une exception.
Ensuite, là tu à une adresse -> c'est pas possible d'avoir une adresse dans le cas d'une carte graphique.

C'est pas la GPU qui est en cause, c'est la FPU.

Mais bon, après, c'est peut être dans OpenGL qu'elle se fait ta division...

Tu peux désactiver la génération d'exception par la FPU qui renverra des NaN, INFINITE et consort.
M'enfin ce serait plus cacher le problème que le traiter.

L'adresse 0x08c05010 ou a eu lieu l'exception peut te donner une vague indication : c'est l'adresse de l'instruction qui à planter. Si tu regarde l'assembleur, tu tombera sûrement sur une instruction commençant par F, FDIV ou autre. Tu dois pouvoir déterminer le module dans lequel ça à planté (ton exe, une dll quelconque...).

Essai aussi de configurer ton débogueur pour qu'il break en cas d'exception non gérée.