Что именно хранят разделы .eh_frame и .eh_frame_hdr?
Я знаю, что при использовании языков, поддерживающих исключения, таких как C ++, в среду времени выполнения должна быть предоставлена дополнительная информация для описания фреймов вызовов, которые должны быть развернуты во время обработки исключения. Эта информация содержится в специальных разделах объектных файлов, таких как.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 структур как можно больше. Спасибо.