Bonjour,
Je viens vers vous à cause d'un problème que je n'arrive vraiment pas à régler après plusieurs jours. Je réalise le portage d'une application de
Linux à Windows et c'est évidemment catastrophique.
Voilà, j'ai donc mon programme principal qui réalise des affichages de cartes. J'ai donc deux boutons. le premier Crée un widget qui crée un Thread de calcul en se chargeant de l'affichage des données.
Le deuxième bouton réalise un affichage 3D en créant un widget comportant un GLWidget. Séparément, les deux fonctionnent plutot bien, mais simultanément, l'application crash après un temps aléatoire.
Lorsque les fenêtres sotn lancées seules, le programme plante sporadiquement, et évidemment, en mode debug, tout tourne comme sur des roulettes... :/
J'ai tout de même relevé certains bugs parfois indiquant pour fichier, les dll utilisées (QtOpenGL4, QtGui, QtCore4, mingw10...).
J'essaye donc de lever des exeptions dans une certaine classe : la classe de lecture des données (nécessaires pour l'affichage des cartes). mais il n'en est rien, aucune exception levée durant la lecture.
Cette classe est passée en paramètre (pointeur) au widget3D (lorsque qu'on appuie sur un bouton) et au Thread (lancé par le widget appelé par l'autre bouton) réalisant l'affichage des cartes. J'ai un moment pensé que le problème pouvant être le partage de données, j'ai donc mis en place un mutex lorsque les deux widgets accèdent aux données pour être sur qu'il ne pouvait pas y avoir deux lectures/ecritures simultanées. En vain.
J'ai crée des objets dynamiques de la classe qui soccupe de la lecture des données et dans laquelle les deux widgets viennent lire et écrire, le problème reste le même.
Je m'y perds complètement et je ne comprends absolument pas d'ou ce problème peut venir. Mémoire ? accès de deux Threads différents à une même zone mémoire (malgré le mutex ) ?
Voilà, je ne pense pas que ce soit utile de vous livrer du code ici,
seulement mon message fait un peu brouillon, c'est assez complexe à
expliquer, aussi je préfère que vous me posiez des questions ou me demandiez quel code vous souhaitez voir.
J'attends plutot des informations quant au débug. J'ai lus l'article :
http://alexandre-laurent.developpez....pplications/#L4-A-1
mais j'avoue ne pas savoir quoi utiliser ni comment étant donné que le
programme plante à des moments différents. (parfois, les deux widgets parviennent durant quelques secondes à lire les données l'un après l'autre avant que ca crash.)
En éspérant que quelqu'un puisse me fournir une aide quelconque, tout idée est la bienvenue.
Partager