2010-01-27 6 views
0

Je développe une application QT avec QTCreator (et QT 4.5.3) sur Arch Linux. J'utilise KDE 4.3 Le projet est essentiellement une interface graphique qui vous permet d'insérer une URL et de faire des requêtes Web pour redonner des données à l'utilisateur. Les requêtes Web sont asynchrones.Comportement d'application étrange QT

J'ai rencontré un problème étrange. Si je démarre l'application d'abord temps et cliquez sur le bouton qui lance les demandes Web, il se bloque. Sur le deuxième fois cela fonctionne comme prévu. Le troisième et le quatrième fois il renvoie juste l'une des 900 valeurs que je m'attendais.

Ce qui est étrange, c'est que Windows (et QT 4.6) fonctionne toujours très bien. Avez-vous déjà vu une telle chose? Merci d'avance pour vos informations

Meilleures salutations

+0

Pouvez-vous inclure un code dans votre question? –

+0

Bien sûr: http://blackboard.altervista.org/code.txt Excusez mes mauvaises manières de codage mais je viens de commencer à utiliser QT: D – framp

+0

Après le redémarrage de l'application ne fonctionne plus sur Windows. Génial. – framp

Répondre

0

Le problème était lié à un ensemble d'éléments qui ne sont pas mis dans le temps

0

Je dirais que cela a quelque chose à voir avec les cookies. Essayez de créer la plus petite application possible reproduisant ce bogue, puis essayez de déterminer si votre code ou celui de Trolltech se bloque.

2

Je n'ai jamais rien vu de tel, mais j'ai vu des comportements différents entre Linux et Windows où le code de Windows semblait fonctionner. Dans mon expérience, le code est presque toujours faux - il est juste beaucoup plus facile de l'attraper quand vous courez sous Linux.

J'ai deux suggestions à faire:

  • course avec Valgrind: cela attraper les défauts évidents
  • lien avec les libs de débogage Qt (généralement QtCored.so, QtGuid.so sur Linux)

Et un troisième: regardez très attentivement le web demande des réponses sous Linux/Windows, éventuellement dans un diff-scanner. Les différences pourraient vous orienter dans la bonne direction

+0

Bonne liste. En outre, activez les vidages de mémoire principale pour isoler les zones de plantage. –

+0

Merci, je vais essayer vos suggestions! :) – framp