x64上的Mingw dw2异常

mingw dw2 exceptions on x64

本文关键字:异常 dw2 Mingw 上的 x64      更新时间:2023-10-16

我正在使用Clang在Windows上编译一些代码。为了支持这一点,我使用了来自MinGW的libstdc++。但现在我正在考虑编译64位而不是32位,我似乎只能找到SEH或SJLJ异常模型。Windows x64没有Itanium ABI例外吗?

不支持,MinGW不支持64位的DW2异常

对于64位,您希望使用SEH异常,这优于SJLJ和DW2。当不抛出异常时(如DW2), SEH异常的开销很低,当抛出异常时的开销也很低,并且不占用过多的空间。

事实上,由于它的优点,实际上总是想使用SEH异常,即使在32位下,但不幸的是,由于Borland持有的美国专利(5,628,016),没有32位支持。

虽然我很快就会期望实现32位支持,因为该专利于1994年6月15日提交并于1997年5月6日发布。如果我读的是"1995年6月8日之前提交的申请"规则,这意味着它的有效期为发布日(2014年5月8日)后17年或申请日(2014年6月15日)后20年,以较长的为准。
换句话说,这项专利应该在一个月前就到期了。