ARM的C ++异常处理 - 通用异常处理表条目的格式

时间:2015-09-28 08:06:13

标签: c++ exception-handling arm embedded

the exception handling ABI for the ARM architecture中,它给出了“ARM定义的紧凑模型”异常处理表条目的格式,但没有关于“通用模型”EHT条目的信息,超出了第一个单词是个性偏移的事实例程。

是否有任何文档可以提供超出第一个单词的这些条目的格式?我可以看到每个条目中出现的前三个单词都有一个模式,例如:

0553ff7f a908b100 ffff019c 80808000 92808080 00a48080 8000b680 80800000 ba808080 00848080 80000000

(字节顺序颠倒)

第二个词似乎在每个条目的几个值之间变化,第三个词几乎总是以ffff结尾(在一个案例中,我看到它是10ff)。 第三个单词的第一个字节有时表示条目的长度(足够的时间不是巧合,但不足以成为规则)。

我在条目之间经常重复前三次后会看到这些词语,但我不知道如何解释它们。

我看过的文件:

1 个答案:

答案 0 :(得分:0)

在ARM®Architecture的ABI异常处理部分4.3中,它说:

  

Generic - 表条目由a的位置相对偏移量组成   具有接口和定义的运行时交互协议的功能   通过这个EHABI,然后是该函数私有格式的数据。

因此,通用条目中的数据格式由个性例程确定。如果您的个性人格例程名为__gxx_personality_v0,那么您可以在libstdc ++中找到源代码(eh _ * .cc,尤其是eh_personality.cc)