C ++ исключения и раздел ELF .eh_frame

Не является ли отсутствие или повреждение раздела ELF .eh_frame причиной исключений в моем коде C ++, который перестал работать? Любое исключение, которое было успешно перехвачено, теперь вызывает std :: terminate ().

Моя ситуация:

Моя общая библиотека zzz.so имеет блоки try-catch:

try {
    throw Exc();
} catch (const Exc &e) {
    LOG("ok " << e.what());
} catch (...) {
    LOG("all");
}

Исполняемый файл, который загружает zzz.so (используя ldopen). Это вызывает функцию в zzz.so

Все исключения, сгенерированные в zzz.so, успешно перехвачены в zzz.so и помещены в мой лог-файл.Существует другой файл aaa.so, который загружается в другой двоичный файл. Это другой aaa.so загружает мой zzz.so.Все те же исключения, сгенерированные в zzz.so, приводят к вызову std :: terminate ().

Как это возможно?

Обновить

Я не знаю, КАК это возможно, но Clang 3.3 (FreeBSD clang версии 3.3 (tags / RELEASE_33 / final 183502) 20130610) решил проблему.

Ответы на вопрос(1)

Ваш ответ на вопрос