【发布时间】:2012-12-15 00:01:26
【问题描述】:
我知道,在使用支持异常的语言(例如 C++)时,必须向运行时环境提供附加信息,以描述在处理异常期间必须展开的调用帧。此信息包含在目标文件的特殊部分中,例如 .eh_frame 和 .eh_frame_hdr。
但是,这些部分中存储了什么样的数据结构?我的意思是,可以使用任何 C 结构来读取它们吗?它们与 GNU 汇编代码中的.cfi 语句(例如.cfi_startproc、.cfi_endproc、.cfi_offset、.cfi_def_cfa_offset、.cfi_personality 和.cfi_lsda)有什么关系吗?如果他们这样做,这些条款中的每一个在这些部分中导致什么? .eh_frame_hdr 部分与 .eh_frame 部分有什么关系?
我希望尽可能多地使用 C 结构进行解释。谢谢。
【问题讨论】:
标签: linux gcc exception-handling elf