The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Демон рушится в потоках, нужна помощь спеца"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Демон рушится в потоках, нужна помощь спеца"
Сообщение от Vital emailИскать по авторуВ закладки(??) on 14-Ноя-04, 00:52  (MSK)
Операционная система FreeBSD 4.10-RELEASE FreeBSD 4.10-RELEASE #0
С недавних пор демон, постоенный на потоках, стал периодически падать, gdb выдает следущее:
--------------------------------
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/mysql/libmysqlclient.so.10...done.
Reading symbols from /usr/lib/libstdc++.so.3...done.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/lib/libc_r.so.4...done.
Reading symbols from /usr/lib/libz.so.2...done.
Reading symbols from /usr/lib/libcrypt.so.2...done.
Reading symbols from /usr/lib/libc.so.4...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x28180b31 in _waitq_remove () from /usr/lib/libc_r.so.4
(gdb) up
#1  0x28182ad5 in _thread_kern_scheduler () from /usr/lib/libc_r.so.4
(gdb)
#2  0x0 in ?? ()
(gdb)
Initial frame selected; you cannot go up.
(gdb)
-----------------------------------
Программа скомпилирована с отладочной инфой, но тут как видно, рушится в системной библиотеке /usr/lib/libc_r.so.4, причем бывает прога рушится вместо функции _waitq_remove() также в _waitq_insert().
С чем связаны грабли и как с ними бороться?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Демон рушится в потоках, нужна помощь спеца"
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 14-Ноя-04, 01:09  (MSK)
Доброй ночи. Давайте разбираться вместе.
Для начала скажите, с какими параметрами вы собирали программу.
К тому же, как мне кажется, libc_r.so и libc.so несовместимы. Ибо это одна и та же библиотека, только libc.so не поддерживает многопоточность, в отличие от libc_r.so.

Жду ответов)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Демон рушится в потоках, нужна помощь спеца"
Сообщение от Vital emailИскать по авторуВ закладки(??) on 14-Ноя-04, 10:57  (MSK)
вот ключи компиляции программы:
-L/usr/lib/mysql -lmysqlclient -pthread -Wno-multichar -g -w -fno-rtti

из исходников (/usr/src/lib/) видно, что libc_r - библиотека потоков, а libc - библиотека стандартных функций

-----

если говорить о коде, вот все функции, которые у меня используются для потоков:

pthread_attr_init
pthread_attr_setstacksize
pthread_cond_signal
pthread_cond_timedwait
pthread_cond_wait
pthread_create
pthread_join
pthread_mutex_lock
pthread_mutex_unlock
pthread_rwlock_rdlock
pthread_rwlock_unlock
pthread_rwlock_wrlock

все стандартно: создание, мутексы и сигналы.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Демон рушится в потоках, нужна помощь спеца"
Сообщение от sas emailИскать по авторуВ закладки(ok) on 14-Ноя-04, 10:21  (MSK)
Уверен на 99.99999999% что проблема лежит где -то в Вашем коде.
Без него никто Вам не поможет. Судя по Вашему описанию демон работал, а это значит, что изменились данные которые он использует. Вероятно вследствии этого Вы и получаете   Segmentation Fault. Мой  совет: попробуйте отключая функциональность программы локализовать место ошибки.  Под отключением я понимаю комментарии и/или функции заглушки.

Удачи
--- sas

>Операционная система FreeBSD 4.10-RELEASE FreeBSD 4.10-RELEASE #0
>С недавних пор демон, постоенный на потоках, стал периодически падать, gdb выдает
>следущее:
>--------------------------------
>Program terminated with signal 11, Segmentation fault.
>Reading symbols from /usr/lib/mysql/libmysqlclient.so.10...done.
>Reading symbols from /usr/lib/libstdc++.so.3...done.
>Reading symbols from /usr/lib/libm.so.2...done.
>Reading symbols from /usr/lib/libc_r.so.4...done.
>Reading symbols from /usr/lib/libz.so.2...done.
>Reading symbols from /usr/lib/libcrypt.so.2...done.
>Reading symbols from /usr/lib/libc.so.4...done.
>Reading symbols from /usr/libexec/ld-elf.so.1...done.
>#0  0x28180b31 in _waitq_remove () from /usr/lib/libc_r.so.4
>(gdb) up
>#1  0x28182ad5 in _thread_kern_scheduler () from /usr/lib/libc_r.so.4
>(gdb)
>#2  0x0 in ?? ()
>(gdb)
>Initial frame selected; you cannot go up.
>(gdb)
>-----------------------------------
>Программа скомпилирована с отладочной инфой, но тут как видно, рушится в системной
>библиотеке /usr/lib/libc_r.so.4, причем бывает прога рушится вместо функции _waitq_remove() также в
>_waitq_insert().
>С чем связаны грабли и как с ними бороться?


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру