* [sisyphus] C++ & gdb
@ 2002-09-23 4:50 Alexey Morozov
2002-09-23 6:11 ` Sanja Byelkin
` (3 more replies)
0 siblings, 4 replies; 26+ messages in thread
From: Alexey Morozov @ 2002-09-23 4:50 UTC (permalink / raw)
To: sisyphus
Скажите, а кто чем отлаживает программы на C++? gdb, по-моему,
достаточно ущербный в этом плане. Во всяком случае, с задачей показа
содержимого объектов сложных классов он практически не справляется.
У меня тут библиотечка, написанная в ATL'ном стиле, показ любого
сколько-нибудь сложного объекта кончается примерно так:
(gdb) display p
1: p = {<raw_packet_ptr<server::dgram::packet>> = {
p = 0x80688d8}, <No data fields>}
gdb) display p.p
2: p.p = (packet *) 0x80688d8
(gdb) display *p.p
3: *p.p = Value can't be converted to integer.
Disabling display 3 to avoid infinite recursion.
(gdb) _
Хотя ptype на *p.p вполне себе работает.
Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
собаководы пользуются для подобных целей? А то ведь рядом сидит дружок
на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
Прям хоть на винде сервер разрабатывай...
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 4:50 [sisyphus] C++ & gdb Alexey Morozov
@ 2002-09-23 6:11 ` Sanja Byelkin
2002-09-23 6:50 ` Alexey Morozov
2002-09-23 8:20 ` Dmitry V. Levin
` (2 subsequent siblings)
3 siblings, 1 reply; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 6:11 UTC (permalink / raw)
To: sisyphus
Привет!
On Mon, Sep 23, 2002 at 11:50:44AM +0700, Alexey Morozov wrote:
> Скажите, а кто чем отлаживает программы на C++? gdb, по-моему,
> достаточно ущербный в этом плане. Во всяком случае, с задачей показа
> содержимого объектов сложных классов он практически не справляется.
> У меня тут библиотечка, написанная в ATL'ном стиле, показ любого
> сколько-нибудь сложного объекта кончается примерно так:
>
> (gdb) display p
> 1: p = {<raw_packet_ptr<server::dgram::packet>> = {
> p = 0x80688d8}, <No data fields>}
> gdb) display p.p
> 2: p.p = (packet *) 0x80688d8
> (gdb) display *p.p
> 3: *p.p = Value can't be converted to integer.
> Disabling display 3 to avoid infinite recursion.
> (gdb) _
> Хотя ptype на *p.p вполне себе работает.
> Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
> собаководы пользуются для подобных целей? А то ведь рядом сидит дружок
> на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
> Прям хоть на винде сервер разрабатывай...
Я ddd использую - это как-бы графическая надстройка над gdb (и еще
некоторыми редакторами) - смотрит все (при помощи того-же gdb, но как - я
не знаю).
У меня с местным gdb другие проблемы - отладка в multithread. Временно
полечилось нестатической линковкой но (наверно после очередного обновления)
опять поплохело. Но я твердо увекрен что 1) проблема местная 2) частые
обновления оказалось тоже зло :) 3) прийдется что-то менять.
--
Regards,
Alexander
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 6:11 ` Sanja Byelkin
@ 2002-09-23 6:50 ` Alexey Morozov
0 siblings, 0 replies; 26+ messages in thread
From: Alexey Morozov @ 2002-09-23 6:50 UTC (permalink / raw)
To: sisyphus
On Mon, Sep 23, 2002 at 09:11:52AM +0300, Sanja Byelkin wrote:
> > Скажите, а кто чем отлаживает программы на C++? gdb, по-моему,
> > достаточно ущербный в этом плане. Во всяком случае, с задачей показа
> > содержимого объектов сложных классов он практически не справляется.
> > У меня тут библиотечка, написанная в ATL'ном стиле, показ любого
> > сколько-нибудь сложного объекта кончается примерно так:
> >
> > (gdb) display p
> > 1: p = {<raw_packet_ptr<server::dgram::packet>> = {
> > p = 0x80688d8}, <No data fields>}
> > gdb) display p.p
> > 2: p.p = (packet *) 0x80688d8
> > (gdb) display *p.p
> > 3: *p.p = Value can't be converted to integer.
> > Disabling display 3 to avoid infinite recursion.
> > (gdb) _
> > Хотя ptype на *p.p вполне себе работает.
> > Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
> > собаководы пользуются для подобных целей? А то ведь рядом сидит дружок
> > на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
> > Прям хоть на винде сервер разрабатывай...
> Я ddd использую - это как-бы графическая надстройка над gdb (и еще
> некоторыми редакторами) - смотрит все (при помощи того-же gdb, но как - я
> не знаю).
Да ddd-то ничем не поможет в моем случае. Команда graph display <smth>
ничем не лучше display <smth>, то есть, как не работало, так и не
работает. Собственно, изначально я ddd и пускал...
> У меня с местным gdb другие проблемы - отладка в multithread. Временно
> полечилось нестатической линковкой но (наверно после очередного обновления)
> опять поплохело. Но я твердо увекрен что 1) проблема местная 2) частые
> обновления оказалось тоже зло :) 3) прийдется что-то менять.
Поищите в инете "Smart GDB". Правда, сдается мне, проект сдох года два
как... Но вдруг...
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 4:50 [sisyphus] C++ & gdb Alexey Morozov
2002-09-23 6:11 ` Sanja Byelkin
@ 2002-09-23 8:20 ` Dmitry V. Levin
2002-09-23 12:34 ` Alexey Morozov
2002-09-23 9:22 ` Vlad Harchev
2002-09-23 11:06 ` Vitaly Lugovsky
3 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-23 8:20 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
[-- Attachment #1: Type: text/plain, Size: 862 bytes --]
On Mon, Sep 23, 2002 at 11:50:44AM +0700, Alexey Morozov wrote:
> Скажите, а кто чем отлаживает программы на C++? gdb, по-моему,
> достаточно ущербный в этом плане. Во всяком случае, с задачей показа
> содержимого объектов сложных классов он практически не справляется.
> У меня тут библиотечка, написанная в ATL'ном стиле, показ любого
> сколько-нибудь сложного объекта кончается примерно так:
>
> (gdb) display p
> 1: p = {<raw_packet_ptr<server::dgram::packet>> = {
> p = 0x80688d8}, <No data fields>}
> gdb) display p.p
> 2: p.p = (packet *) 0x80688d8
> (gdb) display *p.p
> 3: *p.p = Value can't be converted to integer.
> Disabling display 3 to avoid infinite recursion.
> (gdb) _
> Хотя ptype на *p.p вполне себе работает.
> Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
Я не сталкивался.
Поэтому давайте testcase.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 4:50 [sisyphus] C++ & gdb Alexey Morozov
2002-09-23 6:11 ` Sanja Byelkin
2002-09-23 8:20 ` Dmitry V. Levin
@ 2002-09-23 9:22 ` Vlad Harchev
2002-09-23 12:33 ` Alexey Morozov
2002-09-23 11:06 ` Vitaly Lugovsky
3 siblings, 1 reply; 26+ messages in thread
From: Vlad Harchev @ 2002-09-23 9:22 UTC (permalink / raw)
To: sisyphus
On Mon, 23 Sep 2002, Alexey Morozov wrote:
> Скажите, а кто чем отлаживает программы на C++? gdb, по-моему,
> достаточно ущербный в этом плане. Во всяком случае, с задачей показа
> содержимого объектов сложных классов он практически не справляется.
> У меня тут библиотечка, написанная в ATL'ном стиле, показ любого
> сколько-нибудь сложного объекта кончается примерно так:
>
> (gdb) display p
> 1: p = {<raw_packet_ptr<server::dgram::packet>> = {
> p = 0x80688d8}, <No data fields>}
> gdb) display p.p
> 2: p.p = (packet *) 0x80688d8
> (gdb) display *p.p
> 3: *p.p = Value can't be converted to integer.
> Disabling display 3 to avoid infinite recursion.
> (gdb) _
> Хотя ptype на *p.p вполне себе работает.
> Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
> собаководы пользуются для подобных целей? А то ведь рядом сидит дружок
> на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
> Прям хоть на винде сервер разрабатывай...
Глупый вопрос - а программа собрана с -g3?
А gdb какой версии?
А если попробовать то же самое скомпилить и поотлаживать под rh73? (Может
программа собрана gcc-3.x а он генерит инфу о типах в немного непонятном
формате для gdb или в rh какие-либо выпрямляющие патчи приложены?)
Best regards,
-Vlad
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 4:50 [sisyphus] C++ & gdb Alexey Morozov
` (2 preceding siblings ...)
2002-09-23 9:22 ` Vlad Harchev
@ 2002-09-23 11:06 ` Vitaly Lugovsky
2002-09-23 12:37 ` Alexey Morozov
3 siblings, 1 reply; 26+ messages in thread
From: Vitaly Lugovsky @ 2002-09-23 11:06 UTC (permalink / raw)
To: sisyphus
On Mon, 23 Sep 2002, Alexey Morozov wrote:
> Скажите, а кто чем отлаживает программы на C++?
Как я многократно повторял, так называемые "дебаггеры",
вроде всяких там gdb, для отладки ни разу не годятся.
Правильный подход к отладке - ассерты, логи и формальное доказательство
для особо гадского кода. Итерационный же дебаг - лишь источник новых,
трудноуловимых ошибок. И, кстати, C++ - суксь.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 9:22 ` Vlad Harchev
@ 2002-09-23 12:33 ` Alexey Morozov
2002-09-23 12:42 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Alexey Morozov @ 2002-09-23 12:33 UTC (permalink / raw)
To: sisyphus
On Mon, Sep 23, 2002 at 02:22:25PM +0500, Vlad Harchev wrote:
> > на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
> > Прям хоть на винде сервер разрабатывай...
> Глупый вопрос - а программа собрана с -g3?
Да.
> А gdb какой версии?
5.1.1-alt1
> А если попробовать то же самое скомпилить и поотлаживать под rh73? (Может
> программа собрана gcc-3.x а он генерит инфу о типах в немного непонятном
> формате для gdb или в rh какие-либо выпрямляющие патчи приложены?)
Еще не пробовал. Попробую, спасибо за идею...
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 8:20 ` Dmitry V. Levin
@ 2002-09-23 12:34 ` Alexey Morozov
0 siblings, 0 replies; 26+ messages in thread
From: Alexey Morozov @ 2002-09-23 12:34 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
On Mon, Sep 23, 2002 at 12:20:44PM +0400, Dmitry V. Levin wrote:
> > gdb) display p.p
> > 2: p.p = (packet *) 0x80688d8
> > (gdb) display *p.p
> > 3: *p.p = Value can't be converted to integer.
> > Disabling display 3 to avoid infinite recursion.
> > (gdb) _
> > Хотя ptype на *p.p вполне себе работает.
> > Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
> Я не сталкивался.
> Поэтому давайте testcase.
Хорошо, попытаюсь вычленить суть происходящего, сам код под NDA и все
такое.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 11:06 ` Vitaly Lugovsky
@ 2002-09-23 12:37 ` Alexey Morozov
0 siblings, 0 replies; 26+ messages in thread
From: Alexey Morozov @ 2002-09-23 12:37 UTC (permalink / raw)
To: sisyphus
On Mon, Sep 23, 2002 at 03:06:50PM +0400, Vitaly Lugovsky wrote:
> Как я многократно повторял, так называемые "дебаггеры",
> вроде всяких там gdb, для отладки ни разу не годятся.
> Правильный подход к отладке - ассерты, логи и формальное доказательство
> для особо гадского кода. Итерационный же дебаг - лишь источник новых,
> трудноуловимых ошибок. И, кстати, C++ - суксь.
Виталий, я ценю Ваше мнение в области использования программных средств
и все такое, но сейчас мне не очень интересно обсуждать эту тему. В
будущем, возможно, я подискутирую с Вами, но будет это будет не сейчас,
и, предположительно в r.o.c., а не здесь :-)
Пока же спасибо за комментарий и остановимся на этом.
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 12:33 ` Alexey Morozov
@ 2002-09-23 12:42 ` Dmitry V. Levin
2002-09-23 13:28 ` Sanja Byelkin
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-23 12:42 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
[-- Attachment #1: Type: text/plain, Size: 648 bytes --]
On Mon, Sep 23, 2002 at 07:33:46PM +0700, Alexey Morozov wrote:
> > > на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
> > > Прям хоть на винде сервер разрабатывай...
> > Глупый вопрос - а программа собрана с -g3?
> Да.
> > А gdb какой версии?
> 5.1.1-alt1
Попробуйте gdb-5.2.1
> > А если попробовать то же самое скомпилить и поотлаживать под rh73? (Может
> > программа собрана gcc-3.x а он генерит инфу о типах в немного непонятном
> > формате для gdb или в rh какие-либо выпрямляющие патчи приложены?)
> Еще не пробовал. Попробую, спасибо за идею...
У нас и RH gcc/gdb в значительной степени синхронизированы.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 12:42 ` Dmitry V. Levin
@ 2002-09-23 13:28 ` Sanja Byelkin
2002-09-23 13:42 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 13:28 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
Доброе время суток!
On Mon, Sep 23, 2002 at 04:42:44PM +0400, Dmitry V. Levin wrote:
[skip]
> Попробуйте gdb-5.2.1
>
> > > А если попробовать то же самое скомпилить и поотлаживать под rh73? (Может
> > > программа собрана gcc-3.x а он генерит инфу о типах в немного непонятном
> > > формате для gdb или в rh какие-либо выпрямляющие патчи приложены?)
> > Еще не пробовал. Попробую, спасибо за идею...
>
> У нас и RH gcc/gdb в значительной степени синхронизированы.
А вы так и не попробовали глянуть на это чудо в multithread (как давно
обещали)?
(было время gdb нормально работал с динамически линкованным mysql, Теперь не
хочет и этого (gdb-5.2.1))
--
Regards,
Alexander
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 13:28 ` Sanja Byelkin
@ 2002-09-23 13:42 ` Dmitry V. Levin
2002-09-23 13:53 ` Sanja Byelkin
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-23 13:42 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list; +Cc: Sanja Byelkin
[-- Attachment #1: Type: text/plain, Size: 974 bytes --]
On Mon, Sep 23, 2002 at 04:28:31PM +0300, Sanja Byelkin wrote:
> > Попробуйте gdb-5.2.1
> >
> > > > А если попробовать то же самое скомпилить и поотлаживать под rh73? (Может
> > > > программа собрана gcc-3.x а он генерит инфу о типах в немного непонятном
> > > > формате для gdb или в rh какие-либо выпрямляющие патчи приложены?)
> > > Еще не пробовал. Попробую, спасибо за идею...
> >
> > У нас и RH gcc/gdb в значительной степени синхронизированы.
>
> А вы так и не попробовали глянуть на это чудо в multithread (как давно
> обещали)?
> (было время gdb нормально работал с динамически линкованным mysql, Теперь не
> хочет и этого (gdb-5.2.1))
Буквально на прошлой неделе отлаживал MySQL-server-3.23.52-alt1 именно в
multithread (на тему stack overflow). Никаких проблем с gdb-5.2.1-alt1, за
исключением того, что в этом режиме он не отслеживает динамически
подгружаемые разделяемые библиотеки.
Если у вас не работает, напишите, как это можно воспроизвести.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 13:42 ` Dmitry V. Levin
@ 2002-09-23 13:53 ` Sanja Byelkin
2002-09-23 14:00 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 13:53 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
Доброе время суток:
On Mon, Sep 23, 2002 at 05:42:41PM +0400, Dmitry V. Levin wrote:
> Буквально на прошлой неделе отлаживал MySQL-server-3.23.52-alt1 именно в
> multithread (на тему stack overflow). Никаких проблем с gdb-5.2.1-alt1, за
> исключением того, что в этом режиме он не отслеживает динамически
> подгружаемые разделяемые библиотеки.
>
> Если у вас не работает, напишите, как это можно воспроизвести.
собирается mysql 4.0 из bk репозитария (с помощью BUILD/compile-pentium-debug)
cd mysql-test
./mysql-test-run --ddd
ставится break point допустим на mysql_execute_command
run
потучаем что-то типа:
Program received signal SIGTRAP, Trace/breakpoint trap.
0x2aba4819 in sigsuspend () from /lib/libc.so.6
совсем не то, что хотелось :(
--
Regards,
Alexander
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 13:53 ` Sanja Byelkin
@ 2002-09-23 14:00 ` Dmitry V. Levin
2002-09-23 14:11 ` Sanja Byelkin
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-23 14:00 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list; +Cc: Sanja Byelkin
[-- Attachment #1: Type: text/plain, Size: 861 bytes --]
On Mon, Sep 23, 2002 at 04:53:36PM +0300, Sanja Byelkin wrote:
> > Буквально на прошлой неделе отлаживал MySQL-server-3.23.52-alt1 именно в
> > multithread (на тему stack overflow). Никаких проблем с gdb-5.2.1-alt1, за
> > исключением того, что в этом режиме он не отслеживает динамически
> > подгружаемые разделяемые библиотеки.
> >
> > Если у вас не работает, напишите, как это можно воспроизвести.
>
> собирается mysql 4.0 из bk репозитария (с помощью BUILD/compile-pentium-debug)
> cd mysql-test
> ./mysql-test-run --ddd
> ставится break point допустим на mysql_execute_command
> run
> получаем что-то типа:
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x2aba4819 in sigsuspend () from /lib/libc.so.6
> совсем не то, что хотелось :(
Почему же? Достаточно переключиться в нужный thread (см. info threads
при получении прерывания).
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 14:00 ` Dmitry V. Levin
@ 2002-09-23 14:11 ` Sanja Byelkin
2002-09-23 14:45 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 14:11 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
Доброго времени суток!
On Mon, Sep 23, 2002 at 06:00:06PM +0400, Dmitry V. Levin wrote:
> Почему же? Достаточно переключиться в нужный thread (см. info threads
> при получении прерывания).
1. info threads ничего не находит
2. можно подробнее где искать
3. по воспоминаниям как оно работало в ASP-linux, действительно gdb
регулярно сообщал, что переключается на thred такой-то местный этого делать
не хочет - осталось выяснить как заставить местный (если вообще возможно :)
--
Regards,
Alexander
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 14:11 ` Sanja Byelkin
@ 2002-09-23 14:45 ` Dmitry V. Levin
2002-09-23 17:59 ` Sanja Byelkin
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-23 14:45 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list; +Cc: Sanja Byelkin
[-- Attachment #1: Type: text/plain, Size: 558 bytes --]
On Mon, Sep 23, 2002 at 05:11:19PM +0300, Sanja Byelkin wrote:
> > Почему же? Достаточно переключиться в нужный thread (см. info threads
> > при получении прерывания).
>
> 1. info threads ничего не находит
> 2. можно подробнее где искать
info gdb, на тему "Debugging programs with multiple threads".
> 3. по воспоминаниям как оно работало в ASP-linux, действительно gdb
> регулярно сообщал, что переключается на thred такой-то местный этого делать
> не хочет - осталось выяснить как заставить местный (если вообще возможно :)
Думаю, что так же.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 14:45 ` Dmitry V. Levin
@ 2002-09-23 17:59 ` Sanja Byelkin
2002-09-23 18:26 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 17:59 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list, Sanja Byelkin
Боброго времени суток!
On Mon, Sep 23, 2002 at 06:45:26PM +0400, Dmitry V. Levin wrote:
> On Mon, Sep 23, 2002 at 05:11:19PM +0300, Sanja Byelkin wrote:
> > > Почему же? Достаточно переключиться в нужный thread (см. info threads
> > > при получении прерывания).
> >
> > 1. info threads ничего не находит
> > 2. можно подробнее где искать
>
> info gdb, на тему "Debugging programs with multiple threads".
>
> > 3. по воспоминаниям как оно работало в ASP-linux, действительно gdb
> > регулярно сообщал, что переключается на thred такой-то местный этого делать
> > не хочет - осталось выяснить как заставить местный (если вообще возможно :)
>
> Думаю, что так же.
Program received signal SIGTRAP, Trace/breakpoint trap.
0x2ac3ef6e in select () from /lib/libc.so.6
(gdb) info threads
(gdb)
т.е. выбирать неизчего
Кроме того в доке сказано:
Whenever GDB stops your program, due to a breakpoint or a signal, it
automatically selects the thread where that breakpoint or signal
happened. GDB alerts you to the context switch with a message of the
form `[Switching to SYSTAG]' to identify the thread.
т.е. как-бы переключать и не надо - само переключить должно.
Кроме того:
Whenever GDB detects a new thread in your program, it displays both
GDB's thread number and the target system's identification for the
thread with a message in the form ^[New SYSTAG]'. SYSTAG is a thread
identifier whose form varies depending on the particular system. For
example, on HP-UX, you see
[New thread 2 (system thread 26594)]
when GDB notices a new thread.
Я видел эти предупреждения в gdb-5.1 из updateов ASPLinux 7.2 и не вижу
здесь.
Может быть SIG32 (не помню постоянных матюков о SIG32 от моего предыдущего
отладчика) или еще какойнить сигнал не проключен куда надо по умолчанию или
еще чего - мне сказать трудно - я не разбирался в той мере с gdb, но не
работает.
--
For technical support contracts, visit https://order.mysql.com/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Mr. Oleksandr Byelkin <sanja@mysql.com>
/ /|_/ / // /\ \/ /_/ / /__ MySQL AB, Full-Time Developer
/_/ /_/\_, /___/\___\_\___/ Lugansk, Ukraine
<___/ www.mysql.com
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 17:59 ` Sanja Byelkin
@ 2002-09-23 18:26 ` Dmitry V. Levin
2002-09-23 19:57 ` Sanja Byelkin
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-23 18:26 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list; +Cc: Sanja Byelkin
[-- Attachment #1: Type: text/plain, Size: 868 bytes --]
On Mon, Sep 23, 2002 at 08:59:53PM +0300, Sanja Byelkin wrote:
> > > > Почему же? Достаточно переключиться в нужный thread (см. info threads
> > > > при получении прерывания).
> > >
> > > 1. info threads ничего не находит
> > > 2. можно подробнее где искать
> >
> > info gdb, на тему "Debugging programs with multiple threads".
> >
> > > 3. по воспоминаниям как оно работало в ASP-linux, действительно gdb
> > > регулярно сообщал, что переключается на thred такой-то местный этого делать
> > > не хочет - осталось выяснить как заставить местный (если вообще возможно :)
> >
> > Думаю, что так же.
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x2ac3ef6e in select () from /lib/libc.so.6
> (gdb) info threads
Удалось воспроизвести.
Workaround:
1. установить пакет glibc-core-debug и
2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 18:26 ` Dmitry V. Levin
@ 2002-09-23 19:57 ` Sanja Byelkin
2002-09-23 20:16 ` Sanja Byelkin
2002-09-24 9:52 ` Dmitry V. Levin
0 siblings, 2 replies; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 19:57 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
Доброе (РЕАЛЬНО!!!) время суток!
On Mon, Sep 23, 2002 at 10:26:24PM +0400, Dmitry V. Levin wrote:
[skip]
> Удалось воспроизвести.
>
> Workaround:
> 1. установить пакет glibc-core-debug и
> 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
_ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как
это пристроить удобнее - но это уже детали)
--
Regards,
Alexander
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 19:57 ` Sanja Byelkin
@ 2002-09-23 20:16 ` Sanja Byelkin
2002-09-24 9:41 ` Dmitry V. Levin
2002-09-24 9:52 ` Dmitry V. Levin
1 sibling, 1 reply; 26+ messages in thread
From: Sanja Byelkin @ 2002-09-23 20:16 UTC (permalink / raw)
To: sisyphus
On Mon, Sep 23, 2002 at 10:57:18PM +0300, Sanja Byelkin wrote:
> Доброе (РЕАЛЬНО!!!) время суток!
>
> On Mon, Sep 23, 2002 at 10:26:24PM +0400, Dmitry V. Levin wrote:
> [skip]
> > Удалось воспроизвести.
> >
> > Workaround:
> > 1. установить пакет glibc-core-debug и
> > 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
>
> _ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как
> это пристроить удобнее - но это уже детали)
В догонку - коментарий к glibc-core-debug IMHO лучше поменять - мне не
надо вроде трассировать glibc, а пакет оказался нужен => 'only' там не
совсем уместно. Что б далеко не лезть - вот текст о котором я говорю:
-----------------------------------------------------------------------------
This package contains shared libc core libraries with debugging information.
You need this only if you want to step into C library routines during
debugging. To use these libraries, you need to set
LD_LIBRARY_PATH=/usr/lib/debug
in your environment before starting debugger.
If you want to see glibc source files during debugging, you should
rpm -i glibc-2.2.6-alt0.2.src.rpm
rpm -bp %_specdir/glibc.spec
-----------------------------------------------------------------------------
--
Regards,
Alexander
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 20:16 ` Sanja Byelkin
@ 2002-09-24 9:41 ` Dmitry V. Levin
0 siblings, 0 replies; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-24 9:41 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list; +Cc: Sanja Byelkin
[-- Attachment #1: Type: text/plain, Size: 606 bytes --]
On Mon, Sep 23, 2002 at 11:16:06PM +0300, Sanja Byelkin wrote:
> > > Удалось воспроизвести.
> > >
> > > Workaround:
> > > 1. установить пакет glibc-core-debug и
> > > 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
> >
> > _ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как
> > это пристроить удобнее - но это уже детали)
>
> В догонку - коментарий к glibc-core-debug IMHO лучше поменять - мне не
> надо вроде трассировать glibc, а пакет оказался нужен => 'only' там не
> совсем уместно. Что б далеко не лезть - вот текст о котором я говорю:
Спасибо, принято.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-23 19:57 ` Sanja Byelkin
2002-09-23 20:16 ` Sanja Byelkin
@ 2002-09-24 9:52 ` Dmitry V. Levin
2002-09-24 14:00 ` Sergey Vlasov
1 sibling, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-24 9:52 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list; +Cc: Sanja Byelkin
[-- Attachment #1: Type: text/plain, Size: 694 bytes --]
On Mon, Sep 23, 2002 at 10:57:18PM +0300, Sanja Byelkin wrote:
> Доброе (РЕАЛЬНО!!!) время суток!
>
> On Mon, Sep 23, 2002 at 10:26:24PM +0400, Dmitry V. Levin wrote:
> [skip]
> > Удалось воспроизвести.
> >
> > Workaround:
> > 1. установить пакет glibc-core-debug и
> > 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
>
> _ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как
> это пристроить удобнее - но это уже детали)
Честно говоря, мне пока что не ясно, почему эту нужно делать для
многопоточных программ (для обычных - не нужно).
Возможно, в по'strip'анном libpthread удалена какая-то важная для gdb
информация. Если кто-нибудь в курсе, напишите.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-24 9:52 ` Dmitry V. Levin
@ 2002-09-24 14:00 ` Sergey Vlasov
2002-09-24 14:17 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Sergey Vlasov @ 2002-09-24 14:00 UTC (permalink / raw)
To: sisyphus; +Cc: ldv
[-- Attachment #1: Type: text/plain, Size: 1837 bytes --]
On Tue, 24 Sep 2002 13:52:31 +0400
"Dmitry V. Levin" <ldv@altlinux.org> wrote:
> On Mon, Sep 23, 2002 at 10:57:18PM +0300, Sanja Byelkin wrote:
> > Доброе (РЕАЛЬНО!!!) время суток!
> >
> > On Mon, Sep 23, 2002 at 10:26:24PM +0400, Dmitry V. Levin wrote:
> > [skip]
> > > Удалось воспроизвести.
> > >
> > > Workaround:
> > > 1. установить пакет glibc-core-debug и
> > > 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
> >
> > _ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как
> > это пристроить удобнее - но это уже детали)
>
> Честно говоря, мне пока что не ясно, почему эту нужно делать для
> многопоточных программ (для обычных - не нужно).
> Возможно, в по'strip'анном libpthread удалена какая-то важная для gdb
> информация. Если кто-нибудь в курсе, напишите.
Я, кажется, понял, в чем дело. В gdb поддержка потоков теперь сделана
через libthread_db.so.1 (linuxthreads_db в glibc), а там в коде можно
обнаружить, например, следующее:
/* Get the global event mask. This is one of the variables which
are new in the thread library to enable debugging. If it is
not available we cannot debug. */
if (ps_pglobal_lookup (ps, LIBPTHREAD_SO,
"__pthread_threads_events", &addr) != PS_OK)
return TD_NOLIBTHREAD;
Символ __pthread_threads_events встречается в libpthread.so.0 только в
отладочной информации - он не экспортируется (и правильно - программам,
кроме отладчика, нечего делать в этих внутренностях). Есть еще несколько
аналогичных символов. Поэтому после отрезания отладочной информации
libthread_db.so.1 просто не видит потоков.
В сборке glibc-2.2.5-alt12 (Master updates) /lib/libpthread.so.0
содержит отладочную информацию, поэтому там эта проблема не возникает
(если только не добавить к нему glibc-core-i686 из Сизифа - там
/lib/i686/libpthread.so.0 обрезанный).
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-24 14:00 ` Sergey Vlasov
@ 2002-09-24 14:17 ` Dmitry V. Levin
2002-09-24 15:32 ` Sergey Vlasov
0 siblings, 1 reply; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-24 14:17 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
[-- Attachment #1: Type: text/plain, Size: 1767 bytes --]
On Tue, Sep 24, 2002 at 06:00:41PM +0400, Sergey Vlasov wrote:
> > > > Workaround:
> > > > 1. установить пакет glibc-core-debug и
> > > > 2. запускать gdb/ddd с LD_LIBRARY_PATH=/usr/lib/debug
> > >
> > > _ОГРОМНОЕ_ спасибо! это действительно помогло (осталось только подумать как
> > > это пристроить удобнее - но это уже детали)
> >
> > Честно говоря, мне пока что не ясно, почему эту нужно делать для
> > многопоточных программ (для обычных - не нужно).
> > Возможно, в по'strip'анном libpthread удалена какая-то важная для gdb
> > информация. Если кто-нибудь в курсе, напишите.
>
> Я, кажется, понял, в чем дело. В gdb поддержка потоков теперь сделана
> через libthread_db.so.1 (linuxthreads_db в glibc), а там в коде можно
> обнаружить, например, следующее:
>
> /* Get the global event mask. This is one of the variables which
> are new in the thread library to enable debugging. If it is
> not available we cannot debug. */
> if (ps_pglobal_lookup (ps, LIBPTHREAD_SO,
> "__pthread_threads_events", &addr) != PS_OK)
> return TD_NOLIBTHREAD;
>
> Символ __pthread_threads_events встречается в libpthread.so.0 только в
> отладочной информации - он не экспортируется (и правильно - программам,
> кроме отладчика, нечего делать в этих внутренностях). Есть еще несколько
> аналогичных символов. Поэтому после отрезания отладочной информации
> libthread_db.so.1 просто не видит потоков.
>
> В сборке glibc-2.2.5-alt12 (Master updates) /lib/libpthread.so.0
> содержит отладочную информацию, поэтому там эта проблема не возникает
> (если только не добавить к нему glibc-core-i686 из Сизифа - там
> /lib/i686/libpthread.so.0 обрезанный).
Ok, будем документировать это как feature?
Или следует что-то сделать с /lib/libpthread.so.0?
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-24 14:17 ` Dmitry V. Levin
@ 2002-09-24 15:32 ` Sergey Vlasov
2002-09-24 16:22 ` Dmitry V. Levin
0 siblings, 1 reply; 26+ messages in thread
From: Sergey Vlasov @ 2002-09-24 15:32 UTC (permalink / raw)
To: sisyphus
[-- Attachment #1: Type: text/plain, Size: 1751 bytes --]
On Tue, 24 Sep 2002 18:17:42 +0400
"Dmitry V. Levin" <ldv@altlinux.org> wrote:
> On Tue, Sep 24, 2002 at 06:00:41PM +0400, Sergey Vlasov wrote:
> > Я, кажется, понял, в чем дело. В gdb поддержка потоков теперь сделана
> > через libthread_db.so.1 (linuxthreads_db в glibc), а там в коде можно
> > обнаружить, например, следующее:
> >
> > /* Get the global event mask. This is one of the variables which
> > are new in the thread library to enable debugging. If it is
> > not available we cannot debug. */
> > if (ps_pglobal_lookup (ps, LIBPTHREAD_SO,
> > "__pthread_threads_events", &addr) != PS_OK)
> > return TD_NOLIBTHREAD;
> >
> > Символ __pthread_threads_events встречается в libpthread.so.0 только в
> > отладочной информации - он не экспортируется (и правильно - программам,
> > кроме отладчика, нечего делать в этих внутренностях). Есть еще несколько
> > аналогичных символов. Поэтому после отрезания отладочной информации
> > libthread_db.so.1 просто не видит потоков.
> >
> > В сборке glibc-2.2.5-alt12 (Master updates) /lib/libpthread.so.0
> > содержит отладочную информацию, поэтому там эта проблема не возникает
> > (если только не добавить к нему glibc-core-i686 из Сизифа - там
> > /lib/i686/libpthread.so.0 обрезанный).
>
> Ok, будем документировать это как feature?
> Или следует что-то сделать с /lib/libpthread.so.0?
А что с ним можно сделать? Разве что не делать strip. Экспортировать так
просто не получится - pthread_keys вообще static, да и имя неподходящее,
корежить внутренности glibc лишний раз... бррр... Кстати, в glibc-2.3
все так же?
Но сделать что-то надо - иначе, например, нельзя будет отловить ошибки,
проявляющиеся только с /lib/i686/libpthread.so.0 (и там тоже надо
отключить strip).
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [sisyphus] C++ & gdb
2002-09-24 15:32 ` Sergey Vlasov
@ 2002-09-24 16:22 ` Dmitry V. Levin
0 siblings, 0 replies; 26+ messages in thread
From: Dmitry V. Levin @ 2002-09-24 16:22 UTC (permalink / raw)
To: ALT Linux Sisyphus mailing list
[-- Attachment #1: Type: text/plain, Size: 648 bytes --]
On Tue, Sep 24, 2002 at 07:32:27PM +0400, Sergey Vlasov wrote:
> > Ok, будем документировать это как feature?
> > Или следует что-то сделать с /lib/libpthread.so.0?
>
> А что с ним можно сделать? Разве что не делать strip. Экспортировать так
> просто не получится - pthread_keys вообще static, да и имя неподходящее,
> корежить внутренности glibc лишний раз... бррр... Кстати, в glibc-2.3
> все так же?
Насколько я понимаю, практически без изменений.
> Но сделать что-то надо - иначе, например, нельзя будет отловить ошибки,
> проявляющиеся только с /lib/i686/libpthread.so.0 (и там тоже надо
> отключить strip).
Какие будут варианты?
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2002-09-24 16:22 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-23 4:50 [sisyphus] C++ & gdb Alexey Morozov
2002-09-23 6:11 ` Sanja Byelkin
2002-09-23 6:50 ` Alexey Morozov
2002-09-23 8:20 ` Dmitry V. Levin
2002-09-23 12:34 ` Alexey Morozov
2002-09-23 9:22 ` Vlad Harchev
2002-09-23 12:33 ` Alexey Morozov
2002-09-23 12:42 ` Dmitry V. Levin
2002-09-23 13:28 ` Sanja Byelkin
2002-09-23 13:42 ` Dmitry V. Levin
2002-09-23 13:53 ` Sanja Byelkin
2002-09-23 14:00 ` Dmitry V. Levin
2002-09-23 14:11 ` Sanja Byelkin
2002-09-23 14:45 ` Dmitry V. Levin
2002-09-23 17:59 ` Sanja Byelkin
2002-09-23 18:26 ` Dmitry V. Levin
2002-09-23 19:57 ` Sanja Byelkin
2002-09-23 20:16 ` Sanja Byelkin
2002-09-24 9:41 ` Dmitry V. Levin
2002-09-24 9:52 ` Dmitry V. Levin
2002-09-24 14:00 ` Sergey Vlasov
2002-09-24 14:17 ` Dmitry V. Levin
2002-09-24 15:32 ` Sergey Vlasov
2002-09-24 16:22 ` Dmitry V. Levin
2002-09-23 11:06 ` Vitaly Lugovsky
2002-09-23 12:37 ` Alexey Morozov
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git