Page 1 sur 1

Projet.exe has encountred a problem and needs to be close

Publié : ven. 31/oct./2014 12:14
par probleme
Bonjour ami terrien, voila j'écrit une application qui communique via PHP.
Je récupère une chaine via PHP que je "split" pour traiter l'information.

Je suis sur ce projet depuis quelques semaines et tout fonctionné et là depuis quelque temps
quand je compile mon .EXE et je l'execute j'ai un crash de l'application au moment ou il traite ses informations (quand il découpe les informations)
"Projet.exe has encountred a problem and needs to be close"

C'est très pénible, du coup l'application ne fonctionne plus.
Le "pire" c'est que quand je debug avec purebasic tout fonctionne à la perfection sans aucun soucis 8O
Et que auparavant même une fois compiler il fonctionner également.


Je vous cache pas que sa me tape un peu sur le système l'activation du threadsafe n'a pas l'air de changer grand chose :|
Des suggestions ?

Merci

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 12:31
par falsam
Bonjour probleme et bienvenue.

Quelle version de Pure Basic ? Demo ou pas ?
probleme a écrit :j'ai un crash de l'application au moment ou il traite ses informations (quand il découpe les informations
Un bout de code si possible serait le bienvenu.

Comment tu invoquees ton script Php depuis Pure Basic ?

Ton script Php renvoie les information sous quelle forme ? Objet Json ?

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 12:36
par falsam

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 12:45
par probleme
Pour le HTTP_GET je recupère via une classe, elle fonctionne sans aucun soucis.
Enfaite je vient de debugger mon application en plaçant des messagebox pour savoir quand il crash.

Code : Tout sélectionner

mycommand$ = ReceiveHTTPString(lien$+"post.php")

;-------------SPLITER LES COMMANDES

  If mycommand$ = "*0"
  Else
    ;HOP Une Message BOX qui fonctionne donc le GET fonctionne bien

    ; On Coupe la valeur en X @ 
    ; On coupe pour chaque @ on explodeStringArray
    ; Si valeur du coupage du début <> 0 alors les taches sont finit 

    Dim outputN.s(0) 
    Debug outputN.s
    explodeStringArray(outputN(), mycommand$, "*")
    For i = 0 To ArraySize(outputN())
      nombremaxcmd = Val(outputN(1))
      nombremaxcmd = nombremaxcmd - 1

   Next
 ; SA CRASH ICI 
;La messagebox ne s'affiche pas
    Dim outputA.s(0) 
    Debug outputA.s
    explodeStringArray(outputA(), mycommand$, "@")
    
      

mycommand une chaine comme ceci = "donné1|donné2|donné3|donné4|donné5@*1"

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 13:30
par falsam
Ton code a l'air de crasher juste aprés ta procédure explodeStringArray()

La boucle for .... next juste après ta procédure explodeStringArray() fonctionne encore ?

Re: Projet.exe has encountred [RESOLUE]

Publié : ven. 31/oct./2014 13:37
par probleme
Oui elle fonctionne bien (via le debug il me sort bien le nombre de "*")
Par contre ce n'est pas le cas du split qui suit pour le @ qui me sort " " (rien)

Hors juste après j'ai une boucle qui utilise la valeur obtenu par la boucle qui me donne le nombre de "@"

Code : Tout sélectionner

For i = o To ArraySize(outputA()) 
Je pense que vu qui me sort " " il plante dans la boucle et sa crash... par contre je voit pas pourquoi le débugger n'a pas planté sur ça.
Je vais testé quelque modif dessus, et je vous tient au courant.


EDIT: Bon bah enfaite si toute mes fonctions fonctionnent bien... d'ailleurs sous débugger sa marche niquel chrome.
Je m'embrouille :|

EDIT2: Ah bah oui si je prend le .EXE en mode debug via console ou via l'ide sa fonctionne >_>
Mais exactement la meme application si je le lance sans la console debug et bah il plante.... 8O
Y'a pas un moyen de compiler en mode "debug" mais sans avoir la console ?
Au pire sa m'irai très bien car là je suis paumé.


EDIT3: Ok je vient de voir y'a plein de erreur BufferOverflow en décortiquant tout ça, j'ai des leak de mémoire.
Bon bah on va devoir bosser. :|



EDIT: Oh que je suis content enfaite le problème venait d'un code qui provoquer un buffer_overflow au début de mon programme, allez savoir pourquoi mais sa faisait planter le programme à cette endroit précis, en supprimant le code qui poser soucis tout fonctionne à nouveau.

Donc si vous avez ce genre de problème et que en debug sa fonctionne niquel chrome, c'est surement un problème de LEAK de la mémoire


Cordialement, et merci à FASM pour ton soutient :D

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 14:21
par probleme
Du coup par la meme occasion le bout de code qui pose problème

Code : Tout sélectionner

Structure HW_PROFILE_INFO 
  DockInfo.l 
  szHWProfileGUID.s{39}
EndStructure 

GetCurrentHwProfile_(hwp.HW_PROFILE_INFO)   ;A Cette endroit précisement "Overflow in the global data block
hwGUID.s = hwp\szHWProfileGUID

Debug hwGUID
If hwGUID.s = ""
  hwGUID.s = "Error"
  EndIf

Une solution ?
Merci bien

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 14:25
par falsam
Windows XP ? 7 ? ou 8?

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 14:43
par falsam
J'ai crée un exécutable de ce code et je n'ai pas le souci que vous rencontrez.

Code : Tout sélectionner

Structure HW_PROFILE_INFO
  DockInfo.l
  szHWProfileGUID.s{39}
  szHwProfileName.s{50}
EndStructure

GetCurrentHwProfile_(hwp.HW_PROFILE_INFO)

ProfileGUID.s = hwp\szHWProfileGUID
ProfileName.s = hwp\szHwProfileName

MessageRequester("Info","ProfileGUID: "+ProfileGUID + #CRLF$ + "ProfileName: " + ProfileName)
End
Je pense que le problème est ailleurs, mais difficile d'en dire plus sans voir le code complet.

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 15:13
par nico
Ce serait plutôt 80 pour ce paramètre:
szHwProfileName.s{80}


Un début de réponse ici concernant un bug sur la fonction GetCurrentHwProfile:
http://support.microsoft.com/kb/237387

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 15:29
par probleme
Je suis sur Windows XP dans une machine Virtuel. (virtualbox)
Le code fait à peu près plus de 3000 ligne de code donc sa risque d'être "long et compliquer" :P


EDIT: Falsm je vient de copier coller le code (qui est le même que le mien on est bien d'accord, je compile à nouveau et là sa fonctionne ....)

Hmm parfois il ne faut pas chercher à comprendre :lol:


Merci à toi et Nico pour votre aide :mrgreen:

Re: Projet.exe has encountred a problem and needs to be clos

Publié : ven. 31/oct./2014 15:42
par comtois
juste pour info, ne pas oublier de donner un petit coup de Purificateur quand le débogueur ne permet pas d'identifier un problème.