[SOLVED] Bug incompréhensible en X86

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

[SOLVED] Bug incompréhensible en X86

Message par microdevweb »

Bonjour à tous,

J'ai un bug (uniquement X86 Pb 5.70;5.71 b2) incompréhensible.

Je passe dans une procédure un pointeur, dans un boucle j'appelle un procédure prototype après l'appel de ce procédure (qui ne fait rien) la valeur de mon argument change :?:

Et comme un petit dessin vaut mieux q'un grand discourt

Image
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [SOLVED] Bug incompréhensible en X86

Message par microdevweb »

Voici après quelques testes voici un bug pas trop évident résolus.

Le problème était le suivant , le prototype et la fonction n'avais pas la même structure d'argument, cela passait en x64 mais pas ne x86

Voici ce qu'il y avait

Code : Tout sélectionner

Prototype draw(*this,*board,mx = 0,my = 0)

Procedure BOX_draw(*this._BOX,*board._BOARD)
  ; my code
EndProcedure
J'ai donc modifié comme suit

Code : Tout sélectionner

Prototype draw(*this,*board,mx = 0,my = 0)

Procedure BOX_draw(*this._BOX,*board._BOARD,mx = 0,my = 0)
  ; my code
EndProcedure
Cela aurait également fonctionné

Code : Tout sélectionner

Prototype draw(*this,*board,mx = 0,my = 0)

Procedure BOX_draw(*this._BOX,*board._BOARD,mx,my)
  ; my code
EndProcedure
Conclusion attention un code peut fonctionné en x64 et pas en x86
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: [SOLVED] Bug incompréhensible en X86

Message par Ollivier »

Je vois StartVectorDrawing() exécuté à l'arrache. Je recommanderai plutôt

Code : Tout sélectionner

If StartVectorDrawing(etc...
   ... code ...
   StopDrawing()
EndIf
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [SOLVED] Bug incompréhensible en X86

Message par falsam »

Va de retro satana !

Ha ha ha ! C'est ta punition divine que t'inflige les dieux binaires pour ton abus d"OOP à outrance.

Qu'un essaim de bits envahisse tes nuits à jamais .....

:mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [SOLVED] Bug incompréhensible en X86

Message par microdevweb »

Et oui c'est le risque quand on joue avec beaucoup de pointeurs, mais les pointeurs c'est le paradis pour la bidouille :twisted:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: [SOLVED] Bug incompréhensible en X86

Message par Ollivier »

falsam a écrit :Qu'un essaim de bits envahisse tes nuits à jamais .....
La gueule de la poésie...

Parmi l'essaim je me suis noyé, dans une sagesse légère à trésauter, comme s'en sortir...
Répondre