crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Подскажите куда копать....(сигнал SIGABRT)
Skier78rus
  опции профиля:
сообщение 13.1.2010, 10:47
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 13.1.2010
Пользователь №: 1368

Спасибо сказали: 0 раз(а)




Репутация:   0  


Подскажите пожалуйста.

Написал двупоточную программу для работы с прибором через сетевой интерфейс(UDP пакеты).
Соответственно первый поток интерфейсный, второй непосредственное получение данных.

Под данные выделен один здоровенный массив (40 Мб, больше просто данных никогда не будет).

Структура работы такая после получения данных поток работы с прибором говорит, что принят еще один пакет(или n пакетов) данных,
а интерфейсный поток входит в обработчик таймера(50 мс) и если есть новые пакеты обсчитывает их и выводит на экран.

И все было нормально пока я не дошел до нормального тестирования(суточного). И тут то и выяснилося, что переодически прога падает с сигналом SIGABRT, а в каком месте я понять не могу.
Подскажите как определить в какой функции падает. Проект под QT и под Linux у меня первый. Использую QT Creator 1.2, QT 4.5.3, gcc 4.4.3, Ubuntu 9.04.

Я пробовал через try catch, как бы делал это в студии, но как выяснилось тут они не работают...
В потоках естественно использую QMutex.

Смотрел и дебаг режиме, и через консоль....(выяснилось консоль больше показывает, но стэка функций второго потока добиться не удалось..)
Вот что выдает GDB, как это расшифровать и понять откуда ноги растут?

Раскрывающийся текст
(gdb) run ./AMK
`/home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK' has changed; re-reading symbols.
Starting program: /home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK ./AMK
[Thread debugging using libthread_db enabled]
[New Thread 0xb6af6920 (LWP 30410)]
[New Thread 0xb576bb90 (LWP 30411)]
[Thread 0xb576bb90 (LWP 30411) exited]
[New Thread 0xb576bb90 (LWP 30579)]
[Thread 0xb576bb90 (LWP 30579) exited]
[New Thread 0xb576bb90 (LWP 30805)]
[Thread 0xb576bb90 (LWP 30805) exited]
[New Thread 0xb576bb90 (LWP 30806)]
[Thread 0xb576bb90 (LWP 30806) exited]
[New Thread 0xb576bb90 (LWP 30807)]
[Thread 0xb576bb90 (LWP 30807) exited]
[New Thread 0xb576bb90 (LWP 30809)]
*** glibc detected *** /home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK: double free or corruption (fasttop): 0x0c2359f0 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb6f6a604]
/lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb6f6c5b6]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb714d231]
/usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib24unregisterSocketNotifierEP15QSocketNot
ifier+0xdf)[0xb72f939f]
/usr/lib/libQtCore.so.4(_ZN15QSocketNotifier10setEnabledEb+0x3d)[0xb72e883d]
/usr/lib/libQtNetwork.so.4[0xb744f9aa]
/usr/lib/libQtNetwork.so.4[0xb7461739]
/usr/lib/libQtNetwork.so.4[0xb744e77b]
/usr/lib/libQtNetwork.so.4[0xb744fad6]
/usr/lib/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xbc)[0x
b7621e9c]
/usr/lib/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0xbe)[0xb762a19e]
/usr/lib/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x7b)[0xb
72cda3b]
/usr/lib/libQtCore.so.4[0xb72f96ca]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1e8)[0xb6d51b88]
/usr/lib/libglib-2.0.so.0[0xb6d550eb]
/usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x68)[0xb6d55268]
/usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17P
rocessEventsFlagEE+0x58)[0xb72f9438]
/usr/lib/libQtGui.so.4[0xb76c3365]
/usr/lib/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0
x4a)[0xb72cc06a]
/usr/lib/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xea)[0xb72
cc4aa]
/usr/lib/libQtGui.so.4(_ZN7QDialog4execEv+0x103)[0xb7b3c403]
/home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK[0x8050c47]
/home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK[0x8089f0f]
/usr/lib/libQtCore.so.4(_ZN14QMetaCallEvent13placeMetaCallEP7QObject+0x2b)[0xb72dc8fb]
/usr/lib/libQtCore.so.4(_ZN7QObject5eventEP6QEvent+0x2c0)[0xb72de3a0]
/usr/lib/libQtGui.so.4(_ZN7QWidget5eventEP6QEvent+0x50)[0xb7678440]
/usr/lib/libQtGui.so.4(_ZN11QMainWindow5eventEP6QEvent+0x77)[0xb7a700d7]
/usr/lib/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xbc)[0x
b7621e9c]
/usr/lib/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x1a2)[0xb762a282]
/usr/lib/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x7b)[0xb
72cda3b]
/usr/lib/libQtCore.so.4(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThre
adData+0x2a5)[0xb72ce695]
/usr/lib/libQtCore.so.4(_ZN16QCoreApplication16sendPostedEventsEP7QObjecti+0x2d)[0xb72ce8
8d]
/usr/lib/libQtCore.so.4[0xb72f97ef]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1e8)[0xb6d51b88]
/usr/lib/libglib-2.0.so.0[0xb6d550eb]
/usr/lib/libglib-2.0.so.0(g_main_context_iteration+0x68)[0xb6d55268]
/usr/lib/libQtCore.so.4(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17P
rocessEventsFlagEE+0x58)[0xb72f9438]
/usr/lib/libQtGui.so.4[0xb76c3365]
/usr/lib/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0
x4a)[0xb72cc06a]
/usr/lib/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xea)[0xb72
cc4aa]
/usr/lib/libQtCore.so.4(_ZN16QCoreApplication4execEv+0xb9)[0xb72ce959]
/usr/lib/libQtGui.so.4(_ZN12QApplication4execEv+0x27)[0xb7621d17]
/home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK[0x80507b8]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb6f11775]
/home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK[0x80506d1]
======= Memory map: ========
08048000-080a0000 r-xp 00000000 08:06 3859576 /home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK
080a0000-080a1000 r--p 00057000 08:06 3859576 /home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK
080a1000-080a2000 rw-p 00058000 08:06 3859576 /home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK
080a2000-0b0a2000 rw-p 080a2000 00:00 0
0be4f000-0c282000 rw-p 0be4f000 00:00 0 [heap]
b4e00000-b4e21000 rw-p b4e00000 00:00 0
b4e21000-b4f00000 ---p b4e21000 00:00 0
b4f6b000-b4f6c000 ---p b4f6b000 00:00 0
b4f6c000-b5891000 rw-p b4f6c000 00:00 0
b5891000-b5d25000 rw-p b5891000 00:00 0
b5d25000-b5dbd000 r--p 00000000 08:05 89713 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
b5dbd000-b5e1d000 rw-s 00000000 00:09 2293779 /SYSV00000000 (deleted)
b5e1d000-b5ea9000 r--p 00000000 08:05 89712 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
b5ea9000-b5efb000 r-xp 00000000 08:05 669681 /usr/lib/libtiff.so.4.2.1
b5efb000-b5efc000 ---p 00052000 08:05 669681 /usr/lib/libtiff.so.4.2.1
b5efc000-b5efe000 r--p 00052000 08:05 669681 /usr/lib/libtiff.so.4.2.1
b5efe000-b5eff000 rw-p 00054000 08:05 669681 /usr/lib/libtiff.so.4.2.1
b5eff000-b5f51000 r-xp 00000000 08:05 669956 /usr/lib/libQtSvg.so.4.5.0
b5f51000-b5f52000 ---p 00052000 08:05 669956 /usr/lib/libQtSvg.so.4.5.0
b5f52000-b5f53000 r--p 00052000 08:05 669956 /usr/lib/libQtSvg.so.4.5.0
b5f53000-b5f54000 rw-p 00053000 08:05 669956 /usr/lib/libQtSvg.so.4.5.0
b5f54000-b5f84000 r-xp 00000000 08:05 671064 /usr/lib/liblcms.so.1.0.18
b5f84000-b5f85000 r--p 00030000 08:05 671064 /usr/lib/liblcms.so.1.0.18
b5f85000-b5f86000 rw-p 00031000 08:05 671064 /usr/lib/liblcms.so.1.0.18
b5f86000-b5f88000 rw-p b5f86000 00:00 0
b5f88000-b5ff3000 r-xp 00000000 08:05 671097 /usr/lib/libmng.so.1.1.0.9
b5ff3000-b5ff6000 rw-p 0006a000 08:05 671097 /usr/lib/libmng.so.1.1.0.9
b6006000-b6025000 r-xp 00000000 08:05 671048 /usr/lib/libjpeg.so.62.0.0
b6025000-b6026000 rw-p 0001e000 08:05 671048 /usr/lib/libjpeg.so.62.0.0
b6029000-b602d000 r-xp 00000000 08:05 34838 /usr/lib/qt4/plugins/imageformats/libqtiff.so
b602d000-b602e000 r--p 00003000 08:05 34838 /usr/lib/qt4/plugins/imageformats/libqtiff.so
b602e000-b602f000 rw-p 00004000 08:05 34838 /usr/lib/qt4/plugins/imageformats/libqtiff.so
b602f000-b6034000 r-xp 00000000 08:05 34837 /usr/lib/qt4/plugins/imageformats/libqmng.so
b6034000-b6035000 r--p 00004000 08:05 34837 /usr/lib/qt4/plugins/imageformats/libqmng.so
b6035000-b6036000 rw-p 00005000 08:05 34837 /usr/lib/qt4/plugins/imageformats/libqmng.so
b6036000-b603f000 r-xp 00000000 08:05 34836 /usr/lib/qt4/plugins/imageformats/libqjpeg.so
b603f000-b6040000 r--p 00008000 08:05 34836 /usr/lib/qt4/plugins/imageformats/libqjpeg.so
b6040000-b6041000 rw-p 00009000 08:05 34836 /usr/lib/qt4/plugins/imageformats/libqjpeg.so
b6041000-b6047000 r-xp 00000000 08:05 34835 /usr/lib/qt4/plugins/imageformats/libqico.so
b6047000-b6048000 r--p 00005000 08:05 34835 /usr/lib/qt4/plugins/imageformats/libqico.so
b6048000-b6049000 rw-p 00006000 08:05 34835 /usr/lib/qt4/plugins/imageformats/libqico.so
b6049000-b60e1000 r--p 00000000 08:05 89713 /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
b60e1000-b6109000 r-xp 00000000 08:05 693548 /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so
b6109000-b610a000 r--p 00027000 08:05 693548 /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so
b610a000-b610b000 rw-p 00028000 08:05 693548 /usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so
b610b000-b6112000 r-xp 00000000 08:05 671078 /usr/lib/libltdl.so.7.2.0
b6112000-b6113000 r--p 00006000 08:05 671078 /usr/lib/libltdl.so.7.2.0
b6113000-b6114000 rw-p 00007000 08:05 671078 /usr/lib/libltdl.so.7.2.0
b6114000-b6120000 r-xp 00000000 08:05 671351 /usr/lib/libtdb.so.1.1.3
b6120000-b6121000
Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6af6920 (LWP 30410)]
0xb7f04430 in __kernel_vsyscall ()
(gdb) bt
#0 0xb7f04430 in __kernel_vsyscall ()
#1 0xb6f266d0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb6f28098 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb6f6424d in ?? () from /lib/tls/i686/cmov/libc.so.6
#4 0xb6f6a604 in ?? () from /lib/tls/i686/cmov/libc.so.6
#5 0xb6f6c5b6 in free () from /lib/tls/i686/cmov/libc.so.6
#6 0xb714d231 in operator delete () from /usr/lib/libstdc++.so.6
#7 0xb72f939f in QEventDispatcherGlib::unregisterSocketNotifier () from /usr/lib/libQtCore.so.4
#8 0xb72e883d in QSocketNotifier::setEnabled () from /usr/lib/libQtCore.so.4
#9 0xb744f9aa in ?? () from /usr/lib/libQtNetwork.so.4
#10 0xb7461739 in ?? () from /usr/lib/libQtNetwork.so.4
#11 0xb744e77b in ?? () from /usr/lib/libQtNetwork.so.4
#12 0xb744fad6 in ?? () from /usr/lib/libQtNetwork.so.4
#13 0xb7621e9c in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#14 0xb762a19e in QApplication::notify () from /usr/lib/libQtGui.so.4
#15 0xb72cda3b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#16 0xb72f96ca in ?? () from /usr/lib/libQtCore.so.4
#17 0xb6d51b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#18 0xb6d550eb in ?? () from /usr/lib/libglib-2.0.so.0
#19 0xb6d55268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#20 0xb72f9438 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#21 0xb76c3365 in ?? () from /usr/lib/libQtGui.so.4
#22 0xb72cc06a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#23 0xb72cc4aa in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#24 0xb7b3c403 in QDialog::exec () from /usr/lib/libQtGui.so.4
#25 0x08050c47 in MainWindow::on_connectButton_activated (this=0xbfb255a8) at mainwindow.cpp:470
#26 0x08089f0f in MainWindow::qt_metacall (this=0xbfb255a8, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xc031840)
at moc_mainwindow.cpp:85
#27 0xb72dc8fb in QMetaCallEvent::placeMetaCall () from /usr/lib/libQtCore.so.4
#28 0xb72de3a0 in QObject::event () from /usr/lib/libQtCore.so.4
#29 0xb7678440 in QWidget::event () from /usr/lib/libQtGui.so.4
#30 0xb7a700d7 in QMainWindow::event () from /usr/lib/libQtGui.so.4
#31 0xb7621e9c in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#32 0xb762a282 in QApplication::notify () from /usr/lib/libQtGui.so.4
#33 0xb72cda3b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#34 0xb72ce695 in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib/libQtCore.so.4
#35 0xb72ce88d in QCoreApplication::sendPostedEvents () from /usr/lib/libQtCore.so.4
#36 0xb72f97ef in ?? () from /usr/lib/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#37 0xb6d51b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#38 0xb6d550eb in ?? () from /usr/lib/libglib-2.0.so.0
#39 0xb6d55268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#40 0xb72f9438 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#41 0xb76c3365 in ?? () from /usr/lib/libQtGui.so.4
#42 0xb72cc06a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#43 0xb72cc4aa in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#44 0xb72ce959 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#45 0xb7621d17 in QApplication::exec () from /usr/lib/libQtGui.so.4
#46 0x080507b8 in main (argc=Cannot access memory at address 0x76ca
) at main.cpp:14


Самое главное,что программа может работать несколько суток без сбоя, а может раз в несколько часов вылетать.
Облазил кучу форумов но так и не понял, как найти место вылета..


Посоветуйте куда копать..... 8(

Заранее спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Skier78rus   Подскажите куда копать....(сигнал SIGABRT)   13.1.2010, 10:47
- - Litkevich Yuriy   Цитата(Skier78rus @ 13.1.2010, 13:47) Я п...   13.1.2010, 10:55
- - Skier78rus   поддержка полноценных try catch, как я вычитал иде...   13.1.2010, 11:21
- - Litkevich Yuriy   Цитата(Skier78rus @ 13.1.2010, 14:21) под...   13.1.2010, 11:59
- - BRE   2 Skier78rus Запусти программу под valgrind, он по...   13.1.2010, 12:40
- - Skier78rus   Большое спасибо, щас гляну, что это за чудо такое....   13.1.2010, 15:05
- - kuler   поток один или больше? можна переделать проект по...   13.1.2010, 16:25
|- - azure   Цитата(kuler @ 13.1.2010, 15:25) поток од...   13.1.2010, 17:21
- - Skier78rus   Потоков два....наверное и можно, но он же другие б...   13.1.2010, 17:19
|- - BRE   2 Skier78rus Ну тогда пора код выкладывать. Для...   13.1.2010, 17:58
- - Skier78rus   Цитата(azure @ 13.1.2010, 17:21) иксепшен...   13.1.2010, 17:49
|- - azure   Цитата(Skier78rus @ 13.1.2010, 16:49) в Л...   14.1.2010, 14:40
|- - Skier78rus   Цитата(azure @ 14.1.2010, 14:40) Цитата(S...   14.1.2010, 18:28
|- - azure   Цитата(Skier78rus @ 14.1.2010, 17:28) Вот...   15.1.2010, 14:58
- - kuler   в какой то контейнер одновременно в двух потоках о...   13.1.2010, 17:58
- - Skier78rus   Везде исрользуеться QMutex мог конечно налажать...   13.1.2010, 18:12
- - kuler   так может обращаешься в потоках с разным кодом (гл...   13.1.2010, 18:40
- - Skier78rus   мне под Линух надо......начальство сказало, что по...   13.1.2010, 19:03
- - kuler   Цитата(Skier78rus @ 13.1.2010, 19:03) Или...   13.1.2010, 19:13
- - Skier78rus   Про код соглашусь...... Я просто поудалял, там...   13.1.2010, 19:20
- - Litkevich Yuriy   Skier78rus, смотри Справка по кнопкам и тэгам фору...   13.1.2010, 23:15
- - BRE   Почитай про сигналы и их обработку в linux: man si...   14.1.2010, 18:43
- - Skier78rus   Спасибо. Прочитал про сигналы, поправьте, если я ...   15.1.2010, 12:41
- - BRE   Цитата(Skier78rus @ 15.1.2010, 12:41) Про...   15.1.2010, 12:49
- - Skier78rus   Цитата(BRE @ 15.1.2010, 12:49) Цитата(Ski...   16.1.2010, 3:11


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 22:50