gcc, -fvisibility=hidden, исключения
От: DangerMan  
Дата: 10.03.08 09:05
Оценка:
В программе использую boost::program_options. Компилирую с -fvisibility=hidden. В глубинах boost::program_options генерируется исключение boost::program_options::invalid_command_line_syntax, которое наследуется от boost::program_options::invalid_syntax, которое, в свою очередь, наследуется от boost::program_options::error, который наследуется от std::logic_error. В результате получается так, что исключение не перехватывается ни по invalid_command_line_syntax, ни по invalid_syntax, ни по error, но перехватывается через std::logic_error. Без -fvisibility=hidden всё работает как и должно. В чём может быть причина такого поведения?

Ну и второй вопрос — если исключение летит за пределы main, т.е. не перехватывается в программе, то печатается диагностическое сообщение о неперехваченном исключении с указанием полного названия исключения. Можно-ли средствами gcc определить название исключения во время выполнения?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.