2010-11-02 3 views
0

У меня есть проект PyQt4 с очень странной ошибкой, при определенных обстоятельствах основной поток просто умирает, и я понятия не имею, почему.Советы по отладке PyQt

  • Никаких сообщений об исключении и не отображается, я попробовал обернуть попытку - кроме app.exec_() и ничего.
  • sys.exit() не вызывается

Кто-нибудь есть какие-либо советы, есть инструмент, чтобы увидеть, что сигналы/сообщения передаются вокруг внутри Qt или что-то еще?

ответ

1

Вполне вероятно, что приложение рушится в Qt. Попробуйте запустить программу с помощью gdb.

gdb --args python myprog.py

Когда программа падает, это должно дать вам трассировку, которые могут пролить свет на то, что происходит.

Обратите внимание, что наличие символов отладки, доступных для Qt, сделает обратную трассировку более полезной. В системах Ubuntu или Debian можно установить пакет libqt4-dbg, чтобы эти символы отладки были доступны.

+0

не исключение, ошибка или что-нибудь. все, что я получаю, это: «[Thread 0x7fffe27b9710 (LWP 7833) вышел», который не был новостью. Я знаю, что он существует, но я понятия не имею, почему. Но если он сбой в Qt, я должен получить какую-то ошибку/исключение? – dutt

0

Чтение backtrace с помощью gdb - это первый шаг, как было предложено (после сбоя программы, type'backtrace 'в gdb). Однако во многих случаях это не приведет к очевидному решению.

Вот коллекция вещей, чтобы высматривать, которые вызывают аварии: What are good practices for avoiding crashes/hangs in PyQt?

Смежные вопросы