Bonjour à tous !
j'ai un crash très étrange avec un simple QTimer... Je suis sous Qt 4.8.3 sous Windows avec VC++ 2010 Express et le SDK 7.1 (je n'ai pas encore fait le test sous OSX).
J'ai un simple contrôleur qui possède un slot private nommé flush()
J'ai un QTimer instancié sur la pile dans les attributs de mon contrôleur.
Dans le constructeur de mon contrôleur je connecte QTimer::timeout() et this::flush().
Le timer est programmé avec un intervalle de 5s indéfiniment.
Le contrôleur possède aussi une méthode start() qui, entre autres lance le timer.
La fonction flush() effectue une simple sauvegarde des données d'un DAO...
Mon problème est le suivant :
Au bout d'une durée que je n'ai pas encore réussi à déterminer avec précision mais que je situerai entre 30mn et 1h l'application crash avec une erreur de lecture sur un pointeur (je n'ai plus le code exact de l'erreur en tête). Autant dire que le timer fonctionne très bien entre 300 et 600 fois avant de crasher.
Le débuggueur s'arrête à la dernière ligne de la fonction qt_static_metacall (la ligne qui contient seulement l'accolade fermante de la fonction). Je n'ai aucun autre information !! Ca plante assurément, à chaque lancement de l'application, au bout d'une plus ou moins longue période (je vais essayer de voir si cette période est constante ou non).
J'ai regardé les valeurs passées en paramètre de cette fonction du contrôleur et elles sont toutes initialisées. L'index de la méthode à exécuter est correct, il correspond bien à la méthode flush().
Est-ce que quelqu'un à déjà rencontré ce problème ? Faut-il que j'essaye avec une autre version de Qt ? du compilateur ?
Merci si vous pouvez m'aider parce que là je suis très embêté.
Partager