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(

Заранее спасибо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
3 страниц V   1 2 3 >  
Начать новую тему
Ответов (1 - 9)
Litkevich Yuriy
  опции профиля:
сообщение 13.1.2010, 10:55
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Skier78rus @ 13.1.2010, 13:47) *
Я пробовал через try catch, как бы делал это в студии, но как выяснилось тут они не работают...
а почему не работают?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Skier78rus
  опции профиля:
сообщение 13.1.2010, 11:21
Сообщение #3


Студент
*

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

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




Репутация:   0  


поддержка полноценных try catch, как я вычитал идет только в версии 4.6, так как там есть поддержка Симбиан которая на них завязана...(могу и ошибаться)
Даже вот такой простой пример у меня не попадает в cath

try{
int a=10;
int b=0;
a/=b;
}
catch(...){
//error
}

также я проверял вылезание за границы выделенной памяти....и нигде в cath не попал. В pro файле config += exceptions прописано.

Так же на одном из форумов я вычитал, что до вышеупомянутой 4.6 к исключениям надо относиться очень аккуратно.
На том же форуме советовали какую-то библиотеку(от третьих лиц), которая сигналы (SIGSEGV, SIGABRT...) переводит в исключения для try catch, но так как под линуксом я без году неделя, то у меня не удалось ее прикрутить.

Если я в чем то ошибаюсь, поправьте меня пожалуйста. Но нигде я не нашел чтобы у кого-нибудь ловились исключения через try catch, у всех с ними только проблеммы.

Если в винде прямо в ядре имееться механизм SEH, который отображаеться в рассширениях MSVC на exception, и ошибки отображаються в пркладной слой в виде exceptions и может быть перехвачена,то в Линухе при ошибках посылаються сигналы(типо SIGABRT) и никаких exceptions не происходит.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.1.2010, 11:59
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Skier78rus @ 13.1.2010, 14:21) *
поддержка полноценных try catch,
если я правильно понимаю, то try catch относится к компилятору Си++.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 13.1.2010, 12:40
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


2 Skier78rus
Запусти программу под valgrind, он покажет больше информации.

Судя по этому:
Цитата
*** glibc detected *** /home/bizon/work/2010/January/BIZON2010_MULTI_THREADS/AMK: double free or corruption (fasttop): 0x0c2359f0 ***

где-то ты память портишь или несколько раз освобождаешь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Skier78rus
  опции профиля:
сообщение 13.1.2010, 15:05
Сообщение #6


Студент
*

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

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




Репутация:   0  


Большое спасибо, щас гляну, что это за чудо такое... 8)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 13.1.2010, 16:25
Сообщение #7


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


поток один или больше?

можна переделать проект под студию и насладиться исключениями
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Skier78rus
  опции профиля:
сообщение 13.1.2010, 17:19
Сообщение #8


Студент
*

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

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




Репутация:   0  


Потоков два....наверное и можно, но он же другие библиотеки будет использовать, или можно прикрутить к студии QT Lib?
да Valgrind мощная штука.....но либо я не разобрался(прочитал статью как использовать), но не в одной ошибке нет моих функции...
он ругаеться на

QApplication a;

в файле main.cpp и эта строчка была создана там автоматически при создании проекта....

правда я только консольную версию пока попробовал, щас с GUI версией разберусь может что и найду....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
azure
  опции профиля:
сообщение 13.1.2010, 17:21
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 24.12.2009
Пользователь №: 1332

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




Репутация:   0  


Цитата(kuler @ 13.1.2010, 15:25) *
поток один или больше?

можна переделать проект под студию и насладиться исключениями

иксепшены дает не студия, а стандартные либы с++ и компилятор. они должны быть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Skier78rus
  опции профиля:
сообщение 13.1.2010, 17:49
Сообщение #10


Студент
*

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

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




Репутация:   0  


Цитата(azure @ 13.1.2010, 17:21) *
иксепшены дает не студия, а стандартные либы с++ и компилятор. они должны быть.


Если в винде прямо в ядре имееться механизм SEH, который отображаеться в рассширениях MSVC на exception, и ошибки отображаються в пркладной слой в виде exceptions и может быть перехвачена,то в Линухе при ошибках посылаються сигналы(типо SIGABRT) и никаких exceptions не происходит.

Это я вычитал в инете, когда столкнулся с проблеммой
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 28.3.2024, 19:56