什么是异常处理人格功能?

时间:2013-05-16 20:57:54

标签: llvm

我查看了LLVM EH内在函数的文档,以及Itanium ABI,我对一些事情感到困惑。

是什么异常人格功能?它的表现是什么?我将如何创建一个?

1 个答案:

答案 0 :(得分:10)

我有完全相同的问题。我刚刚找到了these articles,它彻底解释了它是如何工作的,完整的异常处理过程,包括个性功能的确切目的和逐步实现。

为了在SO上得到答案,这里是一个异常发生时人格行为的简短摘要(但你真的应该看看这个人写的关于这个的18篇文章!):

  • 首先,它将针对每个堆栈帧(查找阶段)调用一次,并且必须返回一个值(来自枚举)告诉要解除当前堆栈帧是否能够捕获异常。期望个性使用位于函数末尾的一组特定表来获取此信息。

  • 如果堆栈帧可以捕获异常,则将使用不同的actions参数(清理阶段)第二次调用该个性。

相关问题