Crash d'un prog sur EndProcedure ?

Archive.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Crash d'un prog sur EndProcedure ?

Message par Le Soldat Inconnu »

Salut,

j'ai mon prog qui plante sur un EndProcedure 8O

j'ai mis un débug avant, il s'affiche bien, mais le debug après la procedure ne s'affiche pas
entre temps le programme à carrément planté.

Le projet est très gros et je veux pas le diffuser donc je ne mets pas de lien.
Fred, si tu le veux, je te l'envoie par mail.

j'ai testé tous mes programmes avec la 3.93. aucun problème donc je ne pense pas que ça vienne d'une de mes lib externe.
j'ai d'ailleurs commenté le contenu de la procedure (la partie exécutée de la procedure, elle contient des choix multiples dans un if elseif endif) et ça change rien. ça plante toujours

voilà, si vous avez une idée.
Dernière modification par Le Soldat Inconnu le mer. 02/mars/2005 21:44, modifié 1 fois.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Ca me rappelle un plantage du à une structure non correcte (surtout en fin de procedure).

Regardes bien toutes les structures de ta procedure et vérifie
Fait un essai en ajoutant une dizaine de variables de type long ou plus (comme dernière variables) ou mets un debug à la fin juste avant le endprocedure et regarde si ça plante et dis-nous tout
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

je cherche à réduire mon champ d'investigation, c'est déjà pas un prob de lib externe, je les ai toutes retirées.

ça plante à la fin de la procedure quand j'ai le test de ce type

Code : Tout sélectionner

If "truc" + Liste(choix) + ".ini" <> ancientruc
et si je mets ça, ça marche

Code : Tout sélectionner

txt.s = "truc" + Liste(choix) + ".ini"
If txt <> ancientruc
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

bon, j'ai isolé le code qui plante

vous essayez de changer le contenu du combobox et normalement ça plante (du moins chez moi, ça plante sur 2 PC, XP pro PB3.93)

Code : Tout sélectionner

Global nbmenu.l, Ancien_Choix.s
Dim Liste_Menu.s(100)

Enumeration
  #Window
  #choixmenu
EndEnumeration

;- Procedure

Procedure Fenetre_Principale()
  If OpenWindow(#Window, 318, 222, 423, 50, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "PopupMenu Editeur")
    If CreateGadgetList(WindowID())
      ComboBoxGadget(#choixmenu, 1, 0, 200, 150)
    EndIf
  EndIf
EndProcedure

Procedure Charger_Menu()
    For n = 0 To 10
      AddGadgetItem(#choixmenu, -1, Str(n))
    Next
EndProcedure

Procedure ChoixMenu()
  choix = GetGadgetState(#choixmenu)
  If choix >= 0
    ; Txt.s = "PopupMenu\" + Liste_Menu(choix) + ".ini"
    ; If Txt <> Ancien_Choix
    If "PopupMenu\" + Liste_Menu(choix) + ".ini" <> Ancien_Choix
      Debug "menu"
    EndIf
  EndIf
EndProcedure

;- Debut du prog

Fenetre_Principale()

Charger_Menu()
ChoixMenu()

Repeat
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget
    Select EventGadgetID()
      Case #choixmenu
        ChoixMenu()
    EndSelect
  EndIf
  
Until Event = #PB_EventCloseWindow

Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

XP, ne plante pas sous 3.92 mais pla,nte sous 3.93
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

avec un CallDebugger apres Debug "menu" dans la proc, et en continuant en step by step, on s'aperçois que ça plante au niveau du Endif de If choix >= 0 ...
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Code : Tout sélectionner

Global Memo.s

Memo = "test"

Dim Tableau.s(100)

For i=0 To 99
  Tableau(i)=Str(i)
Next

Procedure Proc() 
  
  If "a" + Tableau(1) + "c" <> Memo
    Debug "vrai"
  Else
    Debug "faux"
  EndIf 
  
EndProcedure

Debug "debut"
Proc()
Debug "fin"
c'est un vrai gros bug çà...
même en initialisant les variables en haut du source.

Code : Tout sélectionner

"a" + Tableau(1) + "c" <> Memo 
le problème il est là parce que comme çà çà passe

Code : Tout sélectionner

"a" + Tableau(1) <> Memo 
Image
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Effectivement, il a l'air plutot serieux. Je vais regarder ca rapidement.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Merci :)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Répondre