The OpenNET Project / Index page

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

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

"Эксепшены в либах."
Сообщение от kashey Искать по авторуВ закладки on 30-Июн-03, 16:18  (MSK)
Всем привет.
У меня возникла проблемма - в либах не работают эксепшены, а точнее любой throw вызывает крах всей программы.
Система программы примерно такова - к исполняемому файлу статически линкуется либа, потом создается класс который в этой либе определен, он создает 2 потока и ждет команд.
Фактически компонент создан как мост между виндавсом и линухом для работы разных там служб( итого получаем сервер связи на линуксе а монитор линий на виндах).
Падать не должно. Поставил кучу проверок, но часть компонет написанны всеже с жестким использованием эксепшеном, например эмулятор виндового реестра - он в данном случае и киляет.

Читал я тут архив сего форума - там было сказано что если использовать _init\_fini эксепшены отрыбаются.
Но эти функции не используются.

компилиться вроде все правильно, по крайней мере когда код был в главной програме - он работал.
Вынес во вне - не пашет.

В чом глюк?

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

 Оглавление

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

1. "Эксепшены в либах."
Сообщение от Max Zinal emailИскать по авторуВ закладки on 03-Июл-03, 22:39  (MSK)
>В чом глюк?

Если GCC 3.0 и выше, а линкер не GNU, беда может быть
в нововведённом в третью GCC хитро оптимизированном
C++ RTTI + линкер, сей наворот не поддерживающий.

Если GCC 2.95.3 и ниже либо линкер гнусный, тогда
без примера кода вряд ли кто-нибудь (кроме разве
знатоков астрологии) чего присоветует.

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

2. "Эксепшены в либах."
Сообщение от sas emailИскать по авторуВ закладки on 11-Июл-03, 15:37  (MSK)
>Всем привет.
>У меня возникла проблемма - в либах не работают эксепшены, а точнее
>любой throw вызывает крах всей программы.
>Система программы примерно такова - к исполняемому файлу статически линкуется либа, потом
>создается класс который в этой либе определен, он создает 2 потока
>и ждет команд.
>Фактически компонент создан как мост между виндавсом и линухом для работы разных
>там служб( итого получаем сервер связи на линуксе а монитор линий
>на виндах).
>Падать не должно. Поставил кучу проверок, но часть компонет написанны всеже с
>жестким использованием эксепшеном, например эмулятор виндового реестра - он в данном
>случае и киляет.
>
>Читал я тут архив сего форума - там было сказано что если
>использовать _init\_fini эксепшены отрыбаются.
>Но эти функции не используются.
>
>компилиться вроде все правильно, по крайней мере когда код был в главной
>програме - он работал.
>Вынес во вне - не пашет.
>
>В чом глюк?

Если Вы используете несколько динамических разделяемых библиотек, то можно проверить -shared-libgcc ключ. Иногда его надо явно указать

Смотрите man gcc

Успехов
--- sas  

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


Удалить

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




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

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