【发布时间】:2019-12-18 10:39:29
【问题描述】:
我试图准确了解异常表 (.arm.extab) 的工作原理。 我知道这取决于编译器,所以我将自己限制为 armcc(因为我使用的是 Keil)。
表中的典型条目如下所示: b0aa0380 2a002c00 01000000 00000000
据我了解,第一个词编码个性例程的指令,而第三个词是 R_ARM_PREL31 重定位到 catch 块的开头。
让我感到困惑的是第二个词 - 它似乎被分成 2 个短裤,其中第二个测量距离投掷功能开始的一段距离,但我不确定到底是什么(也不知道第一个短裤是什么确实)。
是否有任何地方记录了这些条目的结构?
我找到了 2 个相关文档,但据我所知,它们没有与编译器相关的信息,因此它们还不够: http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044f/IHI0044F_aaelf.pdf http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf
【问题讨论】:
-
您确定字节顺序正确吗?即,第一个值是
0xb0aa0380而不是litte-endian0x8003aab0?