ZHCADC3B February 2019 – October 2023
C28x EABI 采用表驱动的异常处理 (TDEH)。对于支持异常的语言(例如 C++),TDEH 可实现异常处理。
TDEH 使用表来编码处理异常所需的信息。这些表是程序只读数据的一部分。发生异常时,运行时支持库中的异常处理代码会通过将栈展开为表示函数的栈帧来传播异常,该函数具有捕获异常的 catch 子句。展开栈时,必须在该过程中销毁(通过调用析构函数)局部定义的对象。这些表对有关如何展开栈、何时销毁哪些对象以及最终捕获异常时将控制权转移到何处的信息进行了编码。
链接器使用由编译器生成的可重定位文件中的信息来将 TDEH 表生成为可执行文件。本节指定表的格式和编码,以及如何使用信息来传播异常。符合 ABI 的工具链必须以此处指定的格式来生成表。