[C++] Ca compile mais erreur au lancement du exe...

Ca compile mais erreur au lancement du exe... [C++] - C++ - Programmation

Marsh Posté le 22-12-2003 à 10:15:15    

J'ai programmé un stratego avec dev c++. Je resous les erreurs de compil et de linker, bref ca compile...
J'exec et la :
 
"This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information."
 
Je regarde ce qui fait planter :
 
- l'instanciation de mon principal objet passe  
- des que j'appelle une methode qui est sensée initialiser un peu la partie (c'est pas le constructeur hein), il me sort cette erreur
 
qqun a une idee ?

Reply

Marsh Posté le 22-12-2003 à 10:15:15   

Reply

Marsh Posté le 22-12-2003 à 10:18:14    

un probleme de pointeur null, ou un truc du genre, je dirais...

Reply

Marsh Posté le 22-12-2003 à 10:19:55    

merci, je v regarder voir...

Reply

Marsh Posté le 22-12-2003 à 10:29:44    

masure a écrit :

merci, je v regarder voir...


 
si tu le fais pas déjà, je te conseille (en phase de debuggage) d'utiliser massivement la fonction assert pour verifier tes parametres.  :jap:


Message édité par jotb le 22-12-2003 à 10:29:55
Reply

Marsh Posté le 22-12-2003 à 10:31:21    

bon tout le monde va me huer mais j'avoue que le debuggage au vrai sens du terme (cad avec des outils de debuggage je connais po 0:) ). Je fais avec cout...
 
la je v me faire taper lol

Reply

Marsh Posté le 22-12-2003 à 10:32:43    

bon je vais apprendre comment debugger efficacement... je my met de suite promi

Reply

Marsh Posté le 22-12-2003 à 10:34:38    

masure a écrit :

bon tout le monde va me huer mais j'avoue que le debuggage au vrai sens du terme (cad avec des outils de debuggage je connais po 0:) ). Je fais avec cout...
 
la je v me faire taper lol


 
alors le conseil de tonton jotb qui n'est pas une brute en prog :
 

Code :
  1. #include <assert.h>
  2. ...
  3. int test(int nb) {
  4.    assert(nb > 0);
  5.    // si nb <= 0, renvoie un message d'erreur dans la console
  6.    int nb2 = nb + 1; // code à la con
  7.    return nb2;
  8. }
  9. ...


 
 
Avec ça, tes debuggages seront moins fastidieux.  :)


Message édité par jotb le 22-12-2003 à 10:42:05
Reply

Marsh Posté le 22-12-2003 à 10:37:17    

merci bien !

Reply

Marsh Posté le 22-12-2003 à 12:05:35    

génial le assert :pfff:

Reply

Marsh Posté le 22-12-2003 à 12:07:52    

Taz a écrit :

génial le assert :pfff:


 
ben ça sert bien, quand même. et si t'as d'autres conseils donne les.  :pfff:

Reply

Marsh Posté le 22-12-2003 à 12:07:52   

Reply

Marsh Posté le 22-12-2003 à 12:13:28    

de pas utiliser assert pour exprimer des contraintes.

Reply

Marsh Posté le 22-12-2003 à 12:15:40    

Taz a écrit :

de pas utiliser assert pour exprimer des contraintes.


 
explique, please.  :o  
Je m'en sers pour écrire des préconditions, je m'interroge maintenant...
 

Reply

Marsh Posté le 22-12-2003 à 12:22:16    

parce que si la condition est fausse:
1) appelle à *exit, aucun traitement de l'erreur possible, aucun destructeur n'est exécuté, c'est un vrai massacre et c'est très convivial pour l'utilisateur
2) compile en -DNDEBUG et magique, y a plus d'assert.
 
si vous voulez travaillez (par ce qu'assert c'est la foutaise de merde de C faites pour cerner un bug quand on debug, un logiciel final ne doit pas en contenier), vérifier vos contraintes et renvoyez des code d'erreurs ou balancez des exceptions

Reply

Marsh Posté le 22-12-2003 à 12:29:50    

j'ai jamais dit que c'etait à utiliser sur une version finale. Je me suis mal exprimé en parlant de débugguer. :o

Reply

Marsh Posté le 22-12-2003 à 12:32:27    

jotb a écrit :

j'ai jamais dit que c'etait à utiliser sur une version finale. Je me suis mal exprimé en parlant de débugguer. :o  

tu m'explique ce que tu peux débugger comme ça ? vlan ton programme s'arrête t'es bien avancé

Reply

Marsh Posté le 22-12-2003 à 12:34:56    

Taz a écrit :

tu m'explique ce que tu peux débugger comme ça ? vlan ton programme s'arrête t'es bien avancé


 
il te marque un message dans la console je rappelle, signalant que l'assertion bla bla à tel endroit n'a pas été vérifiée.

Reply

Marsh Posté le 22-12-2003 à 12:38:19    

et t'en fait quoi ? mince alors ligne bordel le machin était égal à 0 . t'es bien avancé ... allez soit un peu sérieux, quand on débuggue on utilise un débugguer qui permet de monitorer le contenu des variables et de suivre le fil d'exécution du dit programme

Reply

Marsh Posté le 22-12-2003 à 12:40:06    

Taz a écrit :

et t'en fait quoi ? mince alors ligne bordel le machin était égal à 0 . t'es bien avancé ... allez soit un peu sérieux, quand on débuggue on utilise un débugguer qui permet de monitorer le contenu des variables et de suivre le fil d'exécution du dit programme


 
oui oui d'accord. N'empeche que je pense que c'est utile, et je travaille avec les 2.  :o

Reply

Marsh Posté le 22-12-2003 à 12:42:35    

mais ça sert à exprimer une quelconque contrainte. en C++ l'utilisation d'assert même en debuggage doit rester margianl

Reply

Marsh Posté le 22-12-2003 à 12:43:26    

Taz a écrit :

mais ça sert à exprimer une quelconque contrainte. en C++ l'utilisation d'assert même en debuggage doit rester margianl


 
tu en penses la même chose en Java ?

Reply

Marsh Posté le 22-12-2003 à 12:44:38    

je fais pas de Java de merde :o

Reply

Marsh Posté le 22-12-2003 à 12:46:38    

Taz a écrit :

je fais pas de Java de merde :o


 
Arf, bon.  
Je reconnais que les exceptions c'est plus propre, mais c'est plus fatigant à faire :o

Reply

Marsh Posté le 22-12-2003 à 12:47:16    

:pfff:

Reply

Marsh Posté le 22-12-2003 à 12:55:37    

Taz a écrit :

et t'en fait quoi ? mince alors ligne bordel le machin était égal à 0 . t'es bien avancé ... allez soit un peu sérieux, quand on débuggue on utilise un débugguer qui permet de monitorer le contenu des variables et de suivre le fil d'exécution du dit programme


Quand tu n'as pas de debuggeur qui marche (j'ai connu le cas sur win3.1 avec un compilo exotique), ca peut eventuellement etre utile [en fait on avait ecrit du code qui nous faisait une trace des appels de fonctions sur la pile de maniere plus ou moins automatique, parce que un assert dans du code recursif, sans connaitre un tant soit peu la pile ca file pas beaucoup d'infos]
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 22-12-2003 à 12:59:23    

Taz a écrit :

je fais pas de Java de merde :o

Chaque année, les infarctus font des milliers de victimes en France (et en Gelbique). Alors prenez la bonne decision et dites: "Aujourd'hui, j'arrete de troller!". C'est un conseil du ministere de la santé.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 22-12-2003 à 13:01:09    

Merci pour les "pour" et les "contre", en attendant j'ai dl la derniere version de devcpp pour utiliser le debugger fourni.
 
Ca a l'air assez instable mais je v ptet avancer.

Reply

Marsh Posté le 05-01-2004 à 15:08:27    

si ta des sous jte conseille builder ya 1 bon debugger :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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