Mikhail Ramendik wrote: > Всем привет! > > По здешнему совету поставил kdepim-dbg. После этого поймал зависание, > приаттачил gdb и сдал делать bt во всех тредах. > > К сожалению, не очень понятно, полностью ли он находит эти самыпе debugging > symbols. В бектрейсах нечто вроде такого: > > thread 1: > > #0 0xb7f2b410 in ?? () > #1 0xbfaa9508 in ?? () > #2 0x080dbe64 in ?? () > #3 0x080dbce0 in ?? () > #4 0xb78af751 in select () from /lib/tls/i686/cmov/libc.so.6 > #5 0xb7033b5a in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 > #6 0xb709d448 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 > (etc) > > Как я понимаю, раз libqt, занчит это GUI? > > Все остальные треды выглядят так, с различиями вроде бы только в цифрах: > > #0 0xb7f2b410 in ?? () > #1 0xb3d969f8 in ?? () > #2 0x00000000 in ?? () > #3 0x00000000 in ?? () > #4 0xb65b940e in pthread_cond_wait@@GLIBC_2.3.2 () > from /lib/tls/i686/cmov/libpthread.so.0 > #5 0xb78c1ea6 in pthread_cond_wait () from /lib/tls/i686/cmov/libc.so.6 > #6 0xb7384849 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 > #7 0xb68e263c in KPIM::ThreadWeaver::Weaver::applyForWork () > from /usr/lib/libkdepim.so.1 > #8 0xb68e1785 in KPIM::ThreadWeaver::Thread::run () > from /usr/lib/libkdepim.so.1 > #9 0xb707e75a in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 > #10 0xb65b6ca3 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 > > То есть реально внутри треда ничего не видно. Не совсем так. 1й тред сейчас находится внутри select (в libc). Это кстати и может быть причиной блокировки. Смотришь что это за селект и действительно ли это он висит. Второй поток чего-то ждет, судя по методу, опять же смотришь в доках на qt что такое QWaitCondition::wait(), смотришь в коде, чего именно он ждет (возможно сообщения от 1го потока, а может чего еще, я с библиотекой KPIM::... не знаком). Вообще QWaitCondition это ожидания события от другого треда, Так что может висит все в как раз в селекте. > > Как бы заставить gdb подхватить эту самую debug information? Контексты 0,1,2,3,4,5 - это либси, либптред и всякие либсишные внутренности. Они тебе скорее всего не нужны. а вообще libc6-dbg > На всякий случай > вот всё что он в начале вывел при аттаче:
-- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

