2010-11-02 5 views
0

J'ai un projet PyQt4 avec une erreur très étrange, dans certaines circonstances le fil principal meurt simplement et je ne sais pas pourquoi.Conseils sur le débogage PyQt

  • Aucune exception signalée ou affichée, j'ai essayé d'envelopper un essai - sauf autour de app.exec_() et rien.
  • sys.exit() n'est pas appelé

Est-ce que quelqu'un a des conseils, est-il un outil pour voir quels signaux/messages sont transmis à l'intérieur de Qt ou autre chose?

Répondre

1

Il est probable que l'application se bloque dans Qt. Essayez d'exécuter le programme avec gdb.

gdb --args python myprog.py

Lorsque le programme se bloque, cela devrait vous donner une trace qui peut faire la lumière sur ce qui se passe. Notez que le fait d'avoir des symboles de débogage disponibles pour Qt rendra le backtrace plus utile. Sur les systèmes Ubuntu ou Debian, le paquet libqt4-dbg peut être installé pour rendre ces symboles de débogage disponibles.

+0

pas exception, erreur ou quoi que ce soit. tout ce que je reçois est ceci: "[Thread 0x7fffe27b9710 (LWP 7833) est sorti]" qui n'était pas des nouvelles. Je sais que ça existe, mais je ne sais pas pourquoi. Mais si elle se bloque dans Qt je devrais obtenir une sorte d'erreur/exception droite? – dutt

0

La lecture de la trace avec gdb est la première étape, comme suggéré (après le blocage du programme, tapez'backtrace 'dans gdb). Dans de nombreux cas, cependant, cela ne mènera pas à une solution évidente.

Voici une collection de choses à regarder pour cette cause des accidents: What are good practices for avoiding crashes/hangs in PyQt?