Excepciones de C ++ y la sección .eh_frame ELF

¿Es que la ausencia o daño de la sección .eh_frame ELF es la causa de que las excepciones en mi código C ++ dejen de funcionar? Cualquier excepción que anteriormente se detectó correctamente ahora está llamando a std :: terminate ().

Mi situación:

Mi biblioteca compartida zzz.so tiene bloques try-catch:

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

Un ejecutable que carga el zzz.so (usando ldopen). Llama a una función en zzz.so

Todas las excepciones lanzadas en zzz.so se capturan con éxito dentro de zzz.so y se descargan en mi archivo de registroHay otro aaa.so que se carga en otro binario. Que otro aaa.so está cargando mi zzz.so.Todas las mismas excepciones lanzadas en zzz.so conducen a la llamada std :: terminate ().

¿Cómo es eso posible?

actualizar

Todavía no sé CÓMO es posible, pero Clang 3.3 (FreeBSD clang versión 3.3 (tags / RELEASE_33 / final 183502) 20130610) resolvió el problema.

Respuestas a la pregunta(1)

Su respuesta a la pregunta