Re: Пытаюсь гонять gdb на kmail. запутался, просьба подсобить

2006-11-28 Пенетрантность Yuri Kozlov

28.11.06, Mikhail Ramendik[EMAIL PROTECTED] написал(а):

Всем привет!

По здешнему совету поставил 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  0x in ?? ()
#3  0x 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

То есть реально внутри треда ничего не видно.

Как бы заставить gdb подхватить эту самую debug information? На всякий случай
вот всё что он в начале вывел при аттаче:


Ещё бы поставить kdelibs-dbg.

--
Regards,
Yuri Kozlov


Re: Пытаюсь гонять gdb на kmail. запутался, просьба подсобить

2006-11-28 Пенетрантность Victor Wagner
On 2006.11.28 at 01:09:00 +, 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?

Вообще говоря, необязательно. Qt - это не только ценный мех. Там есть,
скажем и работа с базами данных. Но судя по тому, чтоо висит в select,
это действительно ожидание событий от X-сервера (тем более что выше по
трассе там processEvents и enterLoop (имеется в виду войти в цикл
обработки событий)

 Все остальные треды выглядят так, с различиями вроде бы только в цифрах:
 
 #0  0xb7f2b410 in ?? ()
 #1  0xb3d969f8 in ?? ()
 #2  0x in ?? ()
 #3  0x 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
 
 То есть реально внутри треда ничего не видно. 

Ожидание на некоей condition variable. Судя по тому, что функция на
уровне 6 называется applyForWork, это свободная нить, которая ожидает от
кого-то сигнала, что пора делать какую-то работу.

Скорее всего - от первой нити, к которой должно прийти событие.
Надо бы посмотреть на каких именно дескрипторах там select ждет.
Возможно он обрабатывает не только события от X-сервера, но и от рабочих
сокетов.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Пытаюсь гонять gdb на kmail. запутался, просьба подсобить

2006-11-27 Пенетрантность Mikhail Ramendik
Всем привет!

По здешнему совету поставил 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  0x in ?? ()
#3  0x 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

То есть реально внутри треда ничего не видно. 

Как бы заставить gdb подхватить эту самую debug information? На всякий случай 
вот всё что он в начале вывел при аттаче:

$ gdb kmail 3958
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type show copying to see the conditions.
There is absolutely no warranty for GDB.  Type show warranty for details.
This GDB was configured as i386-linux...(no debugging symbols found)
Using host libthread_db library /lib/tls/i686/cmov/libthread_db.so.1.

Attaching to program: /usr/bin/kmail, process 3958
Failed to read a valid object file image from memory.
Reading symbols from /usr/lib/libkmailprivate.so...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libkmailprivate.so
Reading symbols from /usr/lib/libstdc++.so.5...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libstdc++.so.5
Reading symbols from /lib/tls/i686/cmov/libm.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libm.so.6
Reading symbols from /lib/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/tls/i686/cmov/libc.so.6...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /usr/lib/libkdecore.so.4...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libkdecore.so.4
Reading symbols from /usr/lib/libDCOP.so.4...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libDCOP.so.4
Reading symbols from /usr/lib/libqt-mt.so.3...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libqt-mt.so.3
Reading symbols from /usr/lib/libkhtml.so.4...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkhtml.so.4
Reading symbols from /usr/lib/libkspell.so.4...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libkspell.so.4
Reading symbols from /usr/lib/libkabc.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkabc.so.1
Reading symbols from /usr/lib/libkmime.so.2...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libkmime.so.2
Reading symbols from /usr/lib/libkpgp.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkpgp.so.2
Reading symbols from /usr/lib/libkdepim.so.1...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libkdepim.so.1
Reading symbols from /usr/lib/libkpimidentities.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkpimidentities.so.1
Reading symbols from /usr/lib/libmimelib.so.1...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libmimelib.so.1
Reading symbols from /usr/lib/libksieve.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libksieve.so.0
Reading symbols from /lib/tls/i686/cmov/libresolv.so.2...(no debugging symbols 
found)...done.
Loaded symbols for /lib/tls/i686/cmov/libresolv.so.2
Reading symbols from /lib/tls/i686/cmov/libutil.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libutil.so.1
Reading symbols from /usr/lib/libart_lgpl_2.so.2...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libart_lgpl_2.so.2
Reading symbols from /usr/lib/libidn.so.11...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libidn.so.11
Reading symbols from /usr/lib/libkdefx.so.4...(no debugging symbols 
found)...done.
Loaded symbols for /usr/lib/libkdefx.so.4