Я знаю, что при использовании языков, поддерживающих исключения, например С++, в среду выполнения должна быть предоставлена дополнительная информация для описания кадров вызовов, которые необходимо разматывать во время обработки исключения. Эта информация содержится в специальных разделах объектных файлов, таких как .eh_frame и .eh_frame_hdr.
Но какие структуры данных хранятся в этих разделах? Я имею в виду, их можно прочитать с помощью любой C-структуры? Имеют ли они какое-либо отношение к операторам .cfi (например, .cfi_startproc, .cfi_endproc, .cfi_offset, .cfi_def_cfa_offset, .cfi_personality и .cfi_lsda) в коде сборки GNU? Если они это сделают, что каждый из этих статей вызывает в этих разделах? Что раздел .eh_frame_hdr связан с .eh_frame одним?
Я был бы благодарен за объяснения, используя C-структуры как можно больше. Спасибо.