Bug - Assertion Failed --

Bug - Assertion Failed -- - C++ - Programmation

Marsh Posté le 05-01-2010 à 14:05:34    

Bonjour tout le monde,
 
Sur l`un de mes programmes, je recois un bug (VS2K8-Pro) :
 

Citation :

Debug Assertion Failed [....]
Expression : list iterator not dereferencable


 
Si le probleme semble explicite, la raison pour laquel il apparait me parait plus qu`obscure. De plus cette erreur ne se produit pas lorsque je lance mon programme d`un compilation mingw/C::B.
 
Voici d`ou provient l`erreur :
 

Code :
  1. while(constructContour.front()!=constructContour.back())
  2.         {
  3.            pi=poly->begin();
  4.            while((((constructContour.back().x()!=pi->first.x()) ||
  5.                  (pi->first.GetId()==1))                        &&
  6.                  ((constructContour.back().x()!=pi->second.x()) ||
  7.                  (pi->second.GetId()==1)) )                     &&
  8.                  (pi!=poly->end()) )
  9.                     pi++;
  10.          // L`erreur semble venir exactement au pi++ --
  11.         // au cas ou je faisait erreur j`ai ajoute : if(pi!=poly->end()) pi++; au lieu du pi++ - Cependant toujours pareil..
  12.           if(constructContour.back().x()==pi->first.x())
  13.           { constructContour.push_back(pi->second); pi->second.SetId(1); pi->first.SetId(1); }
  14.           else if(constructContour.back().x()==pi->second.x())
  15.           { constructContour.push_back(pi->first);  pi->first.SetId(1); pi->second.SetId(1); }
  16.         }


 
... Si quelqu`un aurait une petite idee d`ou le bug pourrait provenir, ce serait cool.
Je vous remercie,
Cordialement.


---------------
“L'éducation est l'arme la plus puissante que l'on puisse utiliser pour changer le monde”
Reply

Marsh Posté le 05-01-2010 à 14:05:34   

Reply

Marsh Posté le 05-01-2010 à 14:46:55    

front et back renvoient des références à des objets contenus. Si ta liste est vide, boum. Utilise des iterateurs: begin() != end(), voire size() si c'est un vector<>.
 
Idem pour ton pi, tu dois tester __d'abord__ s'il est différent de end() avant de le déférencer.

Reply

Marsh Posté le 05-01-2010 à 15:34:32    

Taz a écrit :

front et back renvoient des références à des objets contenus. Si ta liste est vide, boum. Utilise des iterateurs: begin() != end(), voire size() si c'est un vector<>.
 
Idem pour ton pi, tu dois tester __d'abord__ s'il est différent de end() avant de le déférencer.


 
Merci pour la reponse.
Alors ^^ front et back ne sont pas en cause ici. L`erreur se trouve exactement le test de pi, effectivement c`etait tres bete (J`etais cense ne jamais arriver a end de surcroit...).  
 
Merci encore.


Message édité par kirua_sama le 05-01-2010 à 15:48:42

---------------
“L'éducation est l'arme la plus puissante que l'on puisse utiliser pour changer le monde”
Reply

Marsh Posté le 07-02-2010 à 07:39:16    

Salut,
 
j'ai quasiment le même problème, l'erreur se produit ( "debug assertion failed!" ) .
 
Les première fois, c'est arrivé lorsque j'utilisais le logiciel "directdownload" et il me le coupait direct sans aucune sauvegarde de ce qui était en court, a parement, un fichier termine sont téléchargement, et c'est ce qui produit le bug. C'est arrivé 3 fois dont une juste après un redémarrage de Windows et un nettoyage (registre, virus, etc ...) et là aujourd'hui, 4ième, c'était le tour de Firefox !!! Je n'ai pas pu vérifier, mais je crois qu'il venait de finir le chargement d'une vidéo sur Dailymotion ou c'était la sauvegarde de celle-ci (ce qui revient quasiment au même) avec l'extension "DownloadHelper".
 
C'est gênant, ce genre de problème n'apparait que sur les forums de programmation ...!
Certes j'ai fait un an de c++ mais quel rapport avec mes logiciels Windows, et a parement, mes téléchargements ...?
 
J'ai réuni pas mal d'éléments sur le sujet dans les forums sur internet, mais je n'ai toujours pas trouver de solution .. alors voila :
 
 
bug deja vu sur mediaserveur,  live messenger,  iexplorer,  Steam.exe,  firebird,  
 
 
"  

Citation :

Voila la solution préconisée par le suport de Live messenger et cela marche!!!
    Ce message peut etre genere par un programme tiers qui affecte Messenger et cree un conflit.
 
    1. Desinstallez Macrogaming Sweet IM si vous l'avez. Pour cela :
    a. Pour Microsoft XP : demarrer, executer, entrez CONTROL APPWIZ.CPL puis validez.
        Pour Windows Vista : Demarrer, entrez CONTROL APPWIZ.CPL dans la fenetre de recherche et validez.
        La fenetre ajouter/supprimer un programme s'ouvre.
     b. Cliquez sur Macrogaming SweetIM dans la liste des programmes installes et cliquez sur supprimer.
     c. Redemarrer votre ordinateur puis connectez-vous a Windows Live Messenger.                              

     "
 
 
2
 
"    

Citation :

Après recherches sur Internet, j'ai trouvé sur le site "Info du net" la solution : le problème
     venait d'un des BHO qui avaient été installés.
 
      J'ai donc utilisé le programme "BHO captor", et supprimé tous les BHO.
 
      Toutefois, ceci peut empêcher certains programmes de fonctionner correctement !
      J'ai donc trouvé mieux : BHOdemon.
 
      Ce programme permet de voir, en détail, ce qu'est chaque BHO, et donc de les supprimer en
      toute connaissance de cause.
      Mieux : en cas d'effacement par erreur, il permet de remettre en cours un BHO.                    

      "
 
 
 
 
3
 
"        

Citation :

Le message est généré par la présence du fichier mslsp.dll qui est associé à un protocole de communication internet.
         Nous allons donc supprimer ce fichier.
         - télécharger le freeware lspfix.exe sur le site http://www.cexx.org/lspfix.htm
         - dézipper et executer lspfix.exe
         Tu obtiens un tableau 2 colonnes, une colonne "Keep", une autre "Remove". Dans la colonne "Keep", tu peux voir le fichier mslsp.dll ,  
         tranféres le dans la colonne "Remove" , puis cliques sur "Finish".                                                                                            

  "
 
 
 
 
Là, c'est moi qui reprend la discution en espérant que ca ai éclairé la lanterne de quelqu'un ....
Si ca peu aider, avec le log LSP-Fix jai d'affiché (dans keep bien sur) : mswsock.dll (TCP/IP) , winrnr.dll (NTDS) , securnet.dll  
(protocol handler) , rsvpsp.dll (protocol handler) .
 
Merci d'avance  

Reply

Marsh Posté le 07-02-2010 à 08:22:54    

ca n'a un peu aucun rapport avec la choucroute ...

Reply

Marsh Posté le 08-02-2010 à 00:07:57    

ça c'est bon


---------------
.
Reply

Marsh Posté le 08-02-2010 à 00:19:11    

Collector.

Reply

Sujets relatifs:

Leave a Replay

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