我查看了LLVM EH内在函数的文档,以及Itanium ABI,我对一些事情感到困惑。
什么 是 一个例外的人格功能?它的表现是什么?我将如何创建一个?
我查看了LLVM EH内在函数的文档,以及Itanium ABI,我对一些事情感到困惑。
什么 是 一个例外的人格功能?它的表现是什么?我将如何创建一个?
我有完全相同的问题。我刚刚找到了 这些文章 它彻底解释了它的工作原理,完整的异常处理过程,包括个性功能的确切目的和逐步实施。
为了在SO上得到答案,这里是一个异常发生时人格行为的简短摘要(但你真的应该看看这个人写的关于这个的18篇文章!):
首先,它将为每个堆栈帧调用一次(查找阶段),并且必须返回一个值(来自枚举)告诉放松,如果当前堆栈帧能够捕获异常。期望个性使用位于函数末尾的一组特定表来获取此信息。
如果堆栈帧可以捕获异常,则将使用不同的第二次调用个性 actions
参数(清理阶段)。