LINUX.ORG.RU

Pthreads and Debug


0

0

Юзаю SuSe 9.1. Пишу прогу с использованием pthreds. Все работает просто замечательно пока не начну дебажить тред, а именно при срабатывании бряка в треде дебагер вешается . Как это лечится???

anonymous

Ответ на: комментарий от cvv

Классный совет!!!! Да только я знаю под Линухом один дебагер - gdb. А все остальные (DDD дебагер интегрированный в KDevelop), являются по сути графическими оболочками для него.

anonymous
()
Ответ на: комментарий от anonymous

лучший кросплатформенный долбаггер почти под все языки - логгирование.

иногда не работает если требуется реальное время а так всегда ;-)

cvv ★★★★★
()
Ответ на: комментарий от anonymous

>Да только я знаю под Линухом один дебагер - gdb.

Смени один gdb на другой.

Перед этим почитай Changelog - были какие-то серьезны баги на тему multithread.

anonymous
()
Ответ на: комментарий от anonymous

pthread всегда отлаживал usleep и printf-ом и никаких проблем :)

anonymous
()

>pthreds

phreAds - это интерфейс, а не библиотека.
Чтобы о чем-то говорить было бы не плохо знать что за ядро, библиотека нитей, версия gdb. В чем проявляется "зависание" gdb (состояние gdb).

Если ядро старое и программа умудряется валить на экран из неосновных нитей, то gdb вместе с нитями может просто получать SIGTTOU(лечится снятиям TOSTOP из флажков терминала)...

anonymous
()
Ответ на: комментарий от anonymous

В общем решение правильное - смени дебаггер

Посмотри здесь:

1) http://www.hpc.sfu.ca/bugaboo/pgdbg_ug/PGDBG402.htm
2) http://sc.tamu.edu/help/intel/idb/idb_debugger_manual.htm

Лично я рекомендую TotalView (http://www.etnus.com) - обалденная штука,
кряк правда я задолбаялся искать, но можно периодически с сайта выписывать ключик на пару недель работы - примерно как с vmware.







anonymous
()
Ответ на: комментарий от anonymous

Судя по всему трабл у меня в том, что нити на том ядре шо у меня реализуются как LWP. Дебагер с одной стороны про LWP знает, есть у него какойто модуль для них, выкидывет кучу сообщений типа LWР тред создан, прибит и т д. При срабатывании бряка матерится на то, что невозможно получить из контекста процесса его регистры. Есть мысль создавать замороженый тред и аттачится к нему дебагером, как к процессу. Но хочется удобства.

За ссылки спасибо, ща гляну чего там.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.