O que as seções .eh_frame e .eh_frame_hdr armazenam exatamente?

Eu sei que, ao usar linguagens que suportam exceções, como C ++, informações adicionais devem ser fornecidas ao ambiente de tempo de execução para descrever os quadros de chamada que devem ser desenrolados durante o processamento de uma exceção. Essas informações estão contidas em seções especiais dos arquivos de objeto, como.eh_frame e.eh_frame_hdr.

Mas, que tipo de estruturas de dados são armazenadas nessas seções? Quero dizer, eles podem ser lidos usando qualquer estrutura C? Eles têm alguma coisa a ver com o.cfi declarações (como.cfi_startproc, .cfi_endproc, .cfi_offset, .cfi_def_cfa_offset, .cfi_personality e.cfi_lsda) no código de montagem GNU? Se sim, o que cada uma dessas cláusulas causa nessas seções? O que faz o.eh_frame_hdr seção tem a ver com o.eh_frame 1?

Eu apreciaria explicações usando structs C, tanto quanto possível. Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion