Re[5]: Проблемы с boost::coroutine
От: Evgeny.Panasyuk Россия  
Дата: 10.02.15 11:16
Оценка:
Здравствуйте, __Nicolay, Вы писали:

J>>пальцем в небо — исключение пересекает границу so? У меня такая радость с gcc безо всяких корутин — исключение из so в главной проге не всегда ловится (с gcc3 проблем не было, началось с gcc4).

__N>О! У нас та же проблема. Как боретесь?

Пальцем в небо — проблема с идентификацией типов? Можно попробовать catch(...) — ловит ли он?
Re[6]: Проблемы с boost::coroutine
От: Evgeny.Panasyuk Россия  
Дата: 10.02.15 11:26
Оценка:
J>>>пальцем в небо — исключение пересекает границу so? У меня такая радость с gcc безо всяких корутин — исключение из so в главной проге не всегда ловится (с gcc3 проблем не было, началось с gcc4).
__N>>О! У нас та же проблема. Как боретесь?
EP>Пальцем в небо — проблема с идентификацией типов? Можно попробовать catch(...) — ловит ли он?

https://gcc.gnu.org/faq.html#dso

dynamic_cast, throw, typeid don't work with shared libraries
...

Отредактировано 10.02.2015 11:27 Evgeny.Panasyuk . Предыдущая версия .
Re[6]: Проблемы с boost::coroutine
От: __Nicolay Россия  
Дата: 10.02.15 11:40
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, __Nicolay, Вы писали:


J>>>пальцем в небо — исключение пересекает границу so? У меня такая радость с gcc безо всяких корутин — исключение из so в главной проге не всегда ловится (с gcc3 проблем не было, началось с gcc4).

__N>>О! У нас та же проблема. Как боретесь?

EP>Пальцем в небо — проблема с идентификацией типов? Можно попробовать catch(...) — ловит ли он?


Да именно catch(...) и не ловит.
Re[6]: Проблемы с boost::coroutine
От: __Nicolay Россия  
Дата: 10.02.15 11:42
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, __Nicolay, Вы писали:


J>>>пальцем в небо — исключение пересекает границу so? У меня такая радость с gcc безо всяких корутин — исключение из so в главной проге не всегда ловится (с gcc3 проблем не было, началось с gcc4).


__N>>О! У нас та же проблема. Как боретесь?


J>Да никак. Запускаем еще раз под gdb и смотрим, где отвалилось. Все равно это редко и случается обычно только на этапе инициализации, когда конфиг кривой или файл не нашелся или еще чего-нибудь... в остальных случаях все летает внутри DLL и успешно ловится.


Понятно, мы тоже вообщем когда напарываемся, добавляем обработчик внутри библиотеки.
Re[10]: Проблемы с boost::coroutine
От: chaotic-good  
Дата: 10.02.15 12:24
Оценка:
N>Насколько я понимаю stream.read_string() (который RESPStream) читает строку из потока до '\0' а значит наверно проще будет дополнять buffer[bytes_read+1] = '\0'
N>А что бы гарантировать что мы не вылезем за пределы buffer можно алоцировать его на байт больше инициализировав последний '\0' значением, что наверно проще чем занулять буфер.
N>Хотя тут же в коде нет проверки на то что что bytes_read != 0 а в резултатет можно получить в value ложный 0.

Там вообще strtod нельзя вот так использовать, т.к. в случае ошибки он возвращает ноль а указатель я не проверяю. Возможно я на boost.spirit там все перепишу, так как там еще метки времени в ISO формате нужно будет парсить, так что проще притащить sprit чем велосипедить.
Отредактировано 10.02.2015 12:29 chaotic-good . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.