LINUX.ORG.RU

Почему не работают исключения в динамической библиотеке?


0

0

Hi!

в so: printf("Lets go!"); try { throw "go-go" } catch(...) { printf ("Fuck off"); }

Вот короче все скомпилится, из проги запускаю, дойдя до строчки throw "go-go" прога прерывается. В чем прикол? (под виндой тоже самое океу.) как обойти этот бред?

anonymous

Это не может компилиться: не хватает точки с запятой. А вообще исключения в шареных либах прекрасно работают. Только что проверил, все OK. gcc 3.3.1.

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

не, это понятно что ";" - это я просто набрал на примере. В общем у меня есть в шареной либе еще функции _init _fini, На тыкался в других форумах что при присутствии _init, исключения не обрабатываются и вылетает при первом throw. Вот у меня таже фишка, но решения проблемы не найдено как я понял, кто-нибудь знает? Вот такого рода: http://www.opennet.ru/openforum/vsluhforumID9/2089.html http://www.opennet.ru/openforum/vsluhforumID9/828.html http://www.opennet.ru/openforum/vsluhforumID9/1819.html

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

Попробуй в своём init вызвать сначала стандартный(__init), а в своём fini после освобождения своей части вызывать _fini.

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