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

Langage C++ Discussion :

Comportement différent en pas à pas et en exécution


Sujet :

Langage C++

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Par défaut Comportement différent en pas à pas et en exécution
    Bonjour ,
    je suis en train de coder en C++ sous Eclipse . Si je lance mon main normalement , j'ai un message comme quoi le programme a cessé de fonctionner et le message suivant dans la console "This application has requested the Runtime to terminate it in an unusual way." .

    en fait , mon programme cesse de fonctionner aprés plusieurs itérations mais ce qui est bizarre c'est que si je lance l'exécution pas-à-pas tout ce passe bien et j'ai le resultat voulu .

    Merci de m'aider

  2. #2
    Membre expérimenté Avatar de Nogane
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 241
    Par défaut
    Bonjour,
    Dans ce cas, une première chose c'est de vérifier les valeur de retour de la fonction main, et de logger(ou juste faire un cout) la cause de l’échec quand la valeur de retour n'est pas 0.

    Une deuxième chose, c'est de mettre un try/catch sur la fonction main, de manière a pouvoir logger toutes exception qui n'aurait pas été gérées en amont, par exemple comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <typeinfo>
    #include <iostream>
     
    int main()
    try
    {
      //code du programme
    }
    catch(std::exception &ex)
    {
      std::cout << typeid(ex).name() << " " << ex.what() << std::endl;
    }
    Enfin, si aucune exception n'est attrapée et qu'on ne passe dans aucun return... il reste un dernier espoir dans le cas ou le programme ferais un appel a la fonction terminate ou unexpected, il est possible de le tracer en rempplacant ces methodes, graces aux fonction set_unexpected et set_terminate:
    http://www.cplusplus.com/reference/s...et_unexpected/

    Après y'as l'ultime solution, qui est de mètre des cout partout est de procéder par dichotomie pour trouver la source de l'erreur... a l'ancienne quoi.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Par défaut
    En fait je me suis mal expliqué . J'ai une fonction qui a en son corps une boucle FOR de cette forme la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    R * res;//je déclare un objet 
    for(int i=0 ;i<Nb;i++){
     
      res =new R();//Problème , alors que ça passe bien 10 fois
     
      //opérations qui ne posent pas de problemes 
     
      Collection.add(res);//pas de problemes nn plus 
    }
    LE PROBLEME : au bout de la 11 eme itération , le programme cesse de fonctionner , je suis sur qu'il n'y a pas de problemes avec les compteurs .
    A la derniere ITERATION ça bloque au niveau du constructeur , ce qui est bizarre .

    je ss sous Windows 7 et je code sous Eclipse .

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 37
    Par défaut
    le probleme c'est que si j'éxécute en mode pas-à-pas , ça marche parfaitement , alors qu'en mode normal , ça bloque au bout de la 10eme itération.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Peux-tu poster un code minimal qui reproduise ton problème ?

Discussions similaires

  1. Exécution pas à pas dans Sub
    Par pleasewait dans le forum Access
    Réponses: 4
    Dernier message: 11/12/2006, 15h47
  2. Réponses: 1
    Dernier message: 23/05/2006, 08h51
  3. Exécuter le PHP pas à pas
    Par sam01 dans le forum Zend
    Réponses: 7
    Dernier message: 17/02/2006, 09h34
  4. Réponses: 3
    Dernier message: 16/03/2005, 11h31
  5. Réponses: 3
    Dernier message: 09/10/2002, 11h35

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