Conseille sur le debugage !

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Conseille sur le debugage !

Message par Thyphoon »

j'ai un petit problème ...lorsque je compile mon jeu le compilateur plante...
PBCompiler.exe a rencontré un problème et doit fermer...
Comment savoir d'où vient l'erreur. J'ai mis en commentaire toute les dernières modifications une part une...mais apparement il n'y a pas d'erreur dans là...ça doit être un vieux bug qui n'apparait que maintenant.

Comment feriez vous pour trouver ou est l'erreur ?

Merci

Thy
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Complement d'information
Si je desactive le deboguer ça ne plante pas ... et actuelelment si il est activé la premièer fois que je compile ça marche et la deuxième ça marche comme indiqué si dessus ... :( et je void pas d'où ça pourrait venir ...
Une idée ?
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Cela ne serait pas un petit virus des fois ?

J'ai d'ailleurs trouvé un virus dans la dernière ùmise à jour de JapBe !
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

brossden a écrit :Cela ne serait pas un petit virus des fois ?

J'ai d'ailleurs trouvé un virus dans la dernière ùmise à jour de JapBe !
Non helas...ça fait la même chose sur plusieur machine différente...et l'antivirus n'a rien trouvé ! :(
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

si quelqu'un veut essayer de le compiler chez lui
File:1->Aliens-Source.zip
Image


avec le debugger activé la première fois marche tres bien. Quitter le jeu...puis ressayer de le compiler...et là POuf plantage ... :(
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

bon je viens de tester. pareil gros plantage.

la première fois (avec le debugger)
j'ai une erreur à la ligne 143 dans le fichier preferences.pb :

StartDrawing(ScreenOutput())
The specified output is NULL (0 value).


la deuxième fois - plantage réel du compilateur comme toi.
en redémarrant complètement jaPBe çà refonctionne pour un coup.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

en ce qui me concerne je n'ai plus de probleme si je remplace le bout de code de la ligne 143 à 160 du fichier preferences.pb avec :

Code : Tout sélectionner

  If StartDrawing(ScreenOutput())
    DrawingFont(FontID(1)) 
    DrawingMode(#PB_2DDrawing_Transparent)
    sel=Int((MouseY()-100)/40)
    If sel>=0 And sel <= NbAlienprefs
      Box(50,sel*40+100,300,20,RGB(255,0,0))
    EndIf
    For z=0 To NbAlienprefs
      DrawText(50,100+z*40,AlienPrefs(z)\txt,RGB(255,255,255))
      result.s=StringField(AlienPrefs(z)\choice, AlienPrefs(z)\index, "|")
      d=FindString(AlienPrefs(z)\choice,result.s,0)
      x=TextWidth(Mid(AlienPrefs(z)\choice,0,d-1))
      l=x=TextWidth(result)
      Box(250+x,100+z*40,l,20,RGB(0,255,0))
      DrawText(250,100+z*40,AlienPrefs(z)\choice,RGB(255,255,255))
    Next
    StopDrawing()
  EndIf
il faut toujours tester le resultat de StartDrawing() et ne commencer à dessiner/tracer que si cette fonction renvoi vrai.

mais ca vient peut etre d'ailleurs....
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Mercu Flype d'avoir jeter un oeil ! C'est sympa !

Helas j'ai l'impression que le plantage du compilateur ne viens pas de là !
Chez moi ça ne change rien...toujours un gros plantage du compilateur la deuxième fois que je compile avec le debogueur actif....

Je sais vraiment pas comment je peux trouver où est le problème.
Je suppose que ça ne peut pas venir du Debogueur lui même ?2 jours que je m'arrache les cheveux ....
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

connais tu cette limitation (problème de taille de pile dans les procedures) ?

http://www.purebasic.fr/english/viewtopic.php?t=22026

Pour résumé, dans une procédure, si on fait des Dim, il faut se méfier et toujours avoir à l'esprit cette limite.
Je me suis fait avoir aussi et çà avait été la galère a trouver.

Peut-être que ton problême vient de là car je crois voir que tu utilises souvent des gros tableaux en local (déclarés dans les procedures).

On va essayer de t'aider, on va bien trouver, d'autant que çà le fait chez tout le monde.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Flype a écrit :connais tu cette limitation (problème de taille de pile dans les procedures) ?

http://www.purebasic.fr/english/viewtopic.php?t=22026
A non je ne savais pas ça, j'ai du passé a côté...En tout cas merci c'est toujours bon a savoir !
Flype a écrit : Peut-être que ton problême vient de là car je crois voir que tu utilises souvent des gros tableaux en local (déclarés dans les procedures).
Je vais regarder de plus prêt mon code voir ou je pourrais rencontrer se problème.
Juste une question il n'y a pas ce problème avec les tableaux en Global ou bien en dehors d'une procédure c'est bien ça ?
Flype a écrit : On va essayer de t'aider, on va bien trouver, d'autant que çà le fait chez tout le monde.
Merci c'est vraimen tres sympa ! la chose curieuse c'est que sur le forum anglais 2 personnes on testé et n'on pas eu le problème :(
http://www.purebasic.fr/english/viewtop ... sc&start=0
il faut regarder a partir du message du 4 avril. Avant c'était pour un autre bug qui finalement était trouvé il y a quelques temps.

Le plus curieux c'est que je viens de rentrer chez moi .. et sur l'ordinateur de ma femme je n'arrive pas a reproduire le plantage....Alors je ne comprends plus rien ... je continue de chercher. En tout cas un grand merci pour l'aide !
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Fausse joie..ça plante aussi sur l'ordinateur de ma femme... en verité si je desactivre un gros module n'importe lequel alors plus de plantage (part exemple vehicle.pb) mais ce n'est pas pour ça que le module en question est fautif au plantage.
Un peu comme si mon code ne devait pas depasser une certaine taille ...et des que je l'ateind ! et bien ça plante :(
J'ai repris tout mes fichiers un part un hier soir ... je ne vois vraiment pas d'où ça pourrait venir ..C'est dommage d'avoir bosser pendant des mois sur un projet...et de se demander si on pourra un jour le terminer.
Quelqu'un aurait il une idée d'où vient l'erreur ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Je viens de mettre en global les tableau de la procedure cherchechemin() (pathfinding.pb) j'ai l'impression que ça ne palante plus ...
Je vous tient au courant ....
(Flype si ton idée est la bonne tes le roi !!!)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

je n'ai pas regardé cette partie, cette fonction cherchechemin() est récursive j'imagine ?
combien de fois s'appelle t elle elle-meme au max ?
car imagine, si cette fonction alloue un nouveau tableau a chaque appel, à la fin de la routine, dans le pire des cas (il faut toujours etudier le pire des cas m'a t on appris à l'ecole) on se retrouve avec enormement de memoire immobiliser... jusqu'a la sortie de la fonction. effectivement c'est une bonne piste.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Flype a écrit :je n'ai pas regardé cette partie, cette fonction cherchechemin() est récursive j'imagine ?
combien de fois s'appelle t elle elle-meme au max ?
car imagine, si cette fonction alloue un nouveau tableau a chaque appel, à la fin de la routine, dans le pire des cas (il faut toujours etudier le pire des cas m'a t on appris à l'ecole) on se retrouve avec enormement de memoire immobiliser... jusqu'a la sortie de la fonction. effectivement c'est une bonne piste.
Elle est appelé tres souvant, mais elle n'est pas récursive ! Pour l'instant toujours pas de plantage ...je vais netoyer un peu le code et reposter les sources dans la journée. Je te tient au courant !
Vraiment un tres grand merci pour ton aide précieuse !
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Et non c'est pas ça ... Grrrrrrrrr
En verité des fois tu change ta façon de faire (sachant que l'ancienne et la nouvelle methode sont bonne) et du coup plus de plantage...Tu es tout contant ....tu recommence coder...et puis d'un seul coup tu rajoute une simple variable et hop ça recommence..... Bref c'est pas resolu
voilà la dernière version du code ...
File:1->Aliens-Source.zip
Image


Est-ce que ça plante toujorus chez vous ? Une autre idée ?
Répondre